[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#985818: marked as done (unblock: swift/2.26.0-10)



Your message dated Wed, 24 Mar 2021 19:57:24 +0000
with message-id <E1lP9d6-0006n4-K3@respighi.debian.org>
and subject line unblock swift
has caused the Debian Bug report #985818,
regarding unblock: swift/2.26.0-10
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
985818: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=985818
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package swift

There's 2 changes. First, python3-dnspython is added as recommends, otherise
without it, the cname_lookup module of swift wouldn't work. But that's the
least important change.

The 2nd change is a patch from upstream, which avoids the swift processes to
fall into deadlocks. We experienced it in production, and that's not fun,
and it's also very hard to understand what's happening. I would really like
to have the patch included in Bullseye.

Debdiff attached.

Please unblock swift/2.26.0-9

Cheers,

Thomas Goirand (zigo)
diff -Nru swift-2.26.0/debian/changelog swift-2.26.0/debian/changelog
--- swift-2.26.0/debian/changelog	2021-02-23 14:11:16.000000000 +0100
+++ swift-2.26.0/debian/changelog	2021-03-24 10:12:53.000000000 +0100
@@ -1,3 +1,11 @@
+swift (2.26.0-9) unstable; urgency=medium
+
+  * Add python3-dnspython as Recommends for the proxy, as this is needed for
+    the cname_lookup middleware.
+  * Add Turn_off_logging.logThreads_when_monkey-patched.patch.
+
+ -- Thomas Goirand <zigo@debian.org>  Wed, 24 Mar 2021 10:12:53 +0100
+
 swift (2.26.0-8) unstable; urgency=medium
 
   * Kill the autopkgtests. The team has other means of testing swift anyways.
diff -Nru swift-2.26.0/debian/control swift-2.26.0/debian/control
--- swift-2.26.0/debian/control	2021-02-23 14:11:16.000000000 +0100
+++ swift-2.26.0/debian/control	2021-03-24 10:12:53.000000000 +0100
@@ -356,6 +356,7 @@
  python3-barbicanclient,
  python3-castellan,
  python3-keystonemiddleware,
+ python3-dnspython,
 Description: distributed virtual object store - proxy server
  OpenStack Object Storage (code-named Swift) creates redundant, scalable object
  storage using clusters of standardized servers to store petabytes of
diff -Nru swift-2.26.0/debian/patches/series swift-2.26.0/debian/patches/series
--- swift-2.26.0/debian/patches/series	2021-02-23 14:11:16.000000000 +0100
+++ swift-2.26.0/debian/patches/series	2021-03-24 10:12:53.000000000 +0100
@@ -4,3 +4,4 @@
 set-default-workers-value.patch
 fix-eventlet-monkey-patching-with-py3.7.patch
 Fix__exit__calls.patch
+Turn_off_logging.logThreads_when_monkey-patched.patch
diff -Nru swift-2.26.0/debian/patches/Turn_off_logging.logThreads_when_monkey-patched.patch swift-2.26.0/debian/patches/Turn_off_logging.logThreads_when_monkey-patched.patch
--- swift-2.26.0/debian/patches/Turn_off_logging.logThreads_when_monkey-patched.patch	1970-01-01 01:00:00.000000000 +0100
+++ swift-2.26.0/debian/patches/Turn_off_logging.logThreads_when_monkey-patched.patch	2021-03-24 10:12:53.000000000 +0100
@@ -0,0 +1,31 @@
+Description: Turn off logging.logThreads when monkey-patched
+ We've seen proxy-servers lock up while trying to log client disconnects.
+ The trouble is that we happen to do this while we're *already*
+ trying to log *something else*. If the timing works out particularly
+ badly, we end up with a double-call to (an eventlet-patched)
+ threading.current_thread(), which needs to enumerate all pthreads, which
+ uses a non-re-entrant lock in CPython.
+ .
+ The most expedient solution seems to be disabling logThreads so we never
+ call threading.current_thread().
+Author: Tim Burke <tim.burke@gmail.com>
+Date: Thu, 17 Sep 2020 17:41:03 -0700
+Change-Id: Ida9418a1bd30ed300a8a850cda567d60c9889ec7
+Origin: https://review.opendev.org/c/openstack/swift/+/752593
+Last-Update: 2021-03-24
+
+diff --git a/swift/common/utils.py b/swift/common/utils.py
+index 83417ff..b31e9af 100644
+--- a/swift/common/utils.py
++++ b/swift/common/utils.py
+@@ -554,6 +554,10 @@
+     #         if thread is monkey-patched.
+     eventlet.patcher.monkey_patch(all=False, socket=True, select=True,
+                                   thread=True)
++    # Trying to log threads while monkey-patched can lead to deadlocks; see
++    # https://bugs.launchpad.net/swift/+bug/1895739
++    logging.logThreads = 0
++
+     import __original_module_threading as orig_threading
+     import threading
+     orig_threading.current_thread.__globals__['_active'] = threading._active

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: