From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 80059139694 for ; Wed, 2 Aug 2017 22:11:44 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E4754E0CCA; Wed, 2 Aug 2017 22:11:43 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id B9CDBE0CCA for ; Wed, 2 Aug 2017 22:11:43 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4BC7F34183E for ; Wed, 2 Aug 2017 22:11:42 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id E8A6C75D1 for ; Wed, 2 Aug 2017 22:11:40 +0000 (UTC) From: "Patrick McLean" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Patrick McLean" Message-ID: <1501711887.3bb809e1da954b79678beed5d6e06dd7907b880a.chutzpah@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/, sys-cluster/ceph/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-cluster/ceph/ceph-10.2.9-r3.ebuild sys-cluster/ceph/files/ceph-10.2.9-librados_Fix_deadlock_in_watch_flush.patch X-VCS-Directories: sys-cluster/ceph/ sys-cluster/ceph/files/ X-VCS-Committer: chutzpah X-VCS-Committer-Name: Patrick McLean X-VCS-Revision: 3bb809e1da954b79678beed5d6e06dd7907b880a X-VCS-Branch: master Date: Wed, 2 Aug 2017 22:11:40 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 8d772176-8cf4-4a17-948d-4912e2475af3 X-Archives-Hash: 90ec80072fa95b12a048835e8a1b346c commit: 3bb809e1da954b79678beed5d6e06dd7907b880a Author: Patrick McLean gentoo org> AuthorDate: Wed Aug 2 22:11:27 2017 +0000 Commit: Patrick McLean gentoo org> CommitDate: Wed Aug 2 22:11:27 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3bb809e1 sys-cluster/ceph: Pull one of the patches from 10.2.9-r3 Package-Manager: Portage-2.3.6, Repoman-2.3.3 sys-cluster/ceph/ceph-10.2.9-r3.ebuild | 1 - ....2.9-librados_Fix_deadlock_in_watch_flush.patch | 61 ---------------------- 2 files changed, 62 deletions(-) diff --git a/sys-cluster/ceph/ceph-10.2.9-r3.ebuild b/sys-cluster/ceph/ceph-10.2.9-r3.ebuild index d74301f3760..edd9ac4bbd6 100644 --- a/sys-cluster/ceph/ceph-10.2.9-r3.ebuild +++ b/sys-cluster/ceph/ceph-10.2.9-r3.ebuild @@ -118,7 +118,6 @@ PATCHES=( "${FILESDIR}/${PN}-10.2.9-libradosstriper_fix_format_injection_vulnerability.patch" "${FILESDIR}/${PN}-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch" "${FILESDIR}/${PN}-10.2.9-filestore_fix_infinit_loops_in_fiemap.patch" - "${FILESDIR}/${PN}-10.2.9-librados_Fix_deadlock_in_watch_flush.patch" "${FILESDIR}/${PN}-10.2.9-librbd_filter_expected_error_codes_from_is_exclusive_lock_owner.patch" "${FILESDIR}/${PN}-10.2.9-osd-scrub_to_specifies_clone_ver_but_transaction_include.patch" "${FILESDIR}/${PN}-10.2.9-rbd-do_not_attempt_to_load_key_if_auth_is_disabled.patch" diff --git a/sys-cluster/ceph/files/ceph-10.2.9-librados_Fix_deadlock_in_watch_flush.patch b/sys-cluster/ceph/files/ceph-10.2.9-librados_Fix_deadlock_in_watch_flush.patch deleted file mode 100644 index 77ab14b4295..00000000000 --- a/sys-cluster/ceph/files/ceph-10.2.9-librados_Fix_deadlock_in_watch_flush.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 2fb04c40804f646b4cdd3a55ec8a9e9df95b9360 Mon Sep 17 00:00:00 2001 -From: Xiaoxi Chen -Date: Sat, 10 Sep 2016 00:23:55 +0800 -Subject: [PATCH] Librados: Fix deadlock in watch_flush - -In previous code, in the watch_flush, it is waiting on conditon -with holding the "lock". The condition will only be signal by -finisher thread, but sadly, in some cases,when finisher queue -is not empty, some context need to take the "lock", thus deadlock. - -To avoid concurrent call to shutdown cause race condition, add -a shutdown_lock to ensure only one concurrent in shutdown function. - -Signed-off-by: Xiaoxi Chen ---- - src/librados/RadosClient.cc | 4 ++++ - src/librados/RadosClient.h | 1 + - 2 files changed, 5 insertions(+) - -diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc -index 8c5e8ed803fa..230e8b53ecd9 100644 ---- a/src/librados/RadosClient.cc -+++ b/src/librados/RadosClient.cc -@@ -72,6 +72,7 @@ librados::RadosClient::RadosClient(CephContext *cct_) - instance_id(0), - objecter(NULL), - lock("librados::RadosClient::lock"), -+ shutdown_lock("librados::RadosClient::shutdown_lock"), - timer(cct, lock), - refcnt(1), - log_last_version(0), log_cb(NULL), log_cb_arg(NULL), -@@ -324,6 +325,7 @@ int librados::RadosClient::connect() - - void librados::RadosClient::shutdown() - { -+ Mutex::Locker l(shutdown_lock); - lock.Lock(); - if (state == DISCONNECTED) { - lock.Unlock(); -@@ -338,7 +340,9 @@ void librados::RadosClient::shutdown() - if (state == CONNECTED) { - if (need_objecter) { - // make sure watch callbacks are flushed -+ lock.Unlock(); - watch_flush(); -+ lock.Lock(); - } - finisher.wait_for_empty(); - finisher.stop(); -diff --git a/src/librados/RadosClient.h b/src/librados/RadosClient.h -index f495ba5966c2..a8ef2070ddcb 100644 ---- a/src/librados/RadosClient.h -+++ b/src/librados/RadosClient.h -@@ -62,6 +62,7 @@ class librados::RadosClient : public Dispatcher - Objecter *objecter; - - Mutex lock; -+ Mutex shutdown_lock; - Cond cond; - SafeTimer timer; - int refcnt;