)]}'
{"id":"openstack%2Fswift~753446","triplet_id":"openstack%2Fswift~master~Ia764f5ac8ff5e87a85e0a466bfac918599374039","project":"openstack/swift","branch":"master","hashtags":[],"change_id":"Ia764f5ac8ff5e87a85e0a466bfac918599374039","subject":"Sanity check that PipeMutex actually read data during acquire()","status":"NEW","created":"2020-09-22 20:23:15.000000000","updated":"2020-09-25 05:23:08.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"d8c9647bf91441fdbbfc86a546e407a544175fa6","_number":753446,"virtual_id_number":753446,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"date":"2020-09-22 20:57:35.000000000","_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":1,"date":"2020-09-25 05:23:08.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"date":"2020-09-25 04:05:08.000000000","_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-09-22 20:57:35.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2020-09-25 05:23:08.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"00086143de5b140dd451eec6dd97b13ca9d1699b","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-09-22 20:23:15.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f0a29ac3d2efb85193ce2121797dc0c5f97e12b3","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-09-22 20:57:35.000000000","message":"Patch Set 1:\n\nidk, maybe blowing up is the smart thing to do  - but the write fd wasn\u0027t closed - I could write to it, and it was reading from other end that seemed to unblock things...\n\nI was thinking:\n\n\tdiff --git a/swift/common/utils.py b/swift/common/utils.py\n\tindex 83417ff9e..ce64ef6db 100644\n\t--- a/swift/common/utils.py\n\t+++ b/swift/common/utils.py\n\t@@ -5678,20 +5678,20 @@ class PipeMutex(object):\n\t\t\t # If there is a byte available, this will read it and remove\n\t\t\t # it from the pipe. If not, this will raise OSError with\n\t\t\t # errno\u003dEAGAIN.\n\t-                os.read(self.rfd, 1)\n\t-                self.owner \u003d current_greenthread_id\n\t-                return True\n\t+                key \u003d os.read(self.rfd, 1)\n\t+                if key:\n\t+                    self.owner \u003d current_greenthread_id\n\t+                    return True\n\t\t     except OSError as err:\n\t\t\t if err.errno !\u003d errno.EAGAIN:\n\t\t\t     raise\n\t+            if not blocking:\n\t+                return False\n\t \n\t-                if not blocking:\n\t-                    return False\n\t-\n\t-                # Tell eventlet to suspend the current greenthread until\n\t-                # self.rfd becomes readable. This will happen when someone\n\t-                # else writes to self.wfd.\n\t-                eventlet.hubs.trampoline(self.rfd, read\u003dTrue)\n\t+            # Tell eventlet to suspend the current greenthread until\n\t+            # self.rfd becomes readable. This will happen when someone\n\t+            # else writes to self.wfd.\n\t+            eventlet.hubs.trampoline(self.rfd, read\u003dTrue)\n\t \n\t     def release(self):\n\t\t \"\"\"","accounts_in_message":[],"_revision_number":1},{"id":"9390ba3c1628df1429570fc44378e28441b62995","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-09-23 00:57:45.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/387eaf2dbdd4441fbd6509184608cfb2 : SUCCESS in 8m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/1e4944f42cfb42e59e266b3741b94b4b : SUCCESS in 56m 08s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6ed74c8f0413415a8910b3f7928fb1cc : FAILURE in 44m 23s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/33bf2d5c474f45b394f642d3ab88d13d : SUCCESS in 8m 40s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/8f7061c462a84cfaa852cf0578f0bd31 : SUCCESS in 8m 24s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/577ff25e34174f31be1f0b0780abad9a : SUCCESS in 12m 20s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/c7e77edb9b424b6392f2e0093310b925 : SUCCESS in 13m 40s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/367ecd2477bf4e98867fb102ebf0ae3e : SUCCESS in 12m 10s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/fd04e29163ff46838e1318bc7a072133 : SUCCESS in 14m 53s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/0058c38a99494276a2739dfaa475bcf9 : SUCCESS in 19m 17s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/5aa7f0b575f846e3bc0d7d4240f82b4f : SUCCESS in 17m 09s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/957d6cdb17a04fb698a2eb04f00486e8 : SUCCESS in 16m 33s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/c072751cc3904a3bafb826cbd7e7c85a : SUCCESS in 18m 14s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/f32a40053b7744b59edbf038c520ea7c : SUCCESS in 20m 15s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/9b06a38767ce4dd6871916f497d1ac8d : SUCCESS in 18m 44s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/262a509e108d40c4b960ff8da8e283ec : SUCCESS in 33m 59s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/2b21a338dad14e34bfdc15016312b69e : FAILURE in 42m 23s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/ecacca7720f444298e73d4c938e819e1 : SUCCESS in 40m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/83764351ac854b24a5b26f8d209301d1 : SUCCESS in 45m 13s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/53edf311f933458ea53c58b7200d9000 : SUCCESS in 12m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b2b846910d1843f09aa942deb5d04248 : SUCCESS in 6m 06s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8e6d750ae941476ca5399a5d51575f64 : SUCCESS in 27m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f7533559743543cb964415b0cba05c06 : SUCCESS in 53m 49s","accounts_in_message":[],"_revision_number":1},{"id":"77d7ca2b41a7165265ec06c1eadc059226b6de46","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-09-25 04:05:08.000000000","message":"Patch Set 1:\n\nrecheck\n\nIDK -- the only way I\u0027ve seen that read return empty is if the write end of the pipe got closed. If there\u0027s no data currently, I\u0027ve only ever seen it block. Even if the process got a no-op signal, it\u0027d end up raising an OSError w/ EINTR.\n\nI guess maybe I should test again after setting the fd non-blocking... but I\u0027d expect the blocking to just turn into raising EAGAIN and we\u0027d loop. I really *don\u0027t* want a closed fd to make *all the listeners* think it\u0027s unlocked -- but at the same time I don\u0027t wnat it to cause them to spin in a tight loop, either. Blowing up seems like the most-reasonable behavior to me...","accounts_in_message":[],"_revision_number":1},{"id":"d8c9647bf91441fdbbfc86a546e407a544175fa6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-09-25 05:23:08.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ed003b5812d44319a94cc01158e3b97a : SUCCESS in 9m 05s\n- grenade https://zuul.opendev.org/t/openstack/build/8888f930ddbe4a3e96f268f457a1bf7e : SUCCESS in 1h 12m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/cfa5333332d14b91a00d45a5c6402540 : SUCCESS in 47m 57s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/58ef4aa83902447683bd0c3e1ab557fb : SUCCESS in 8m 56s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/8d42d775176448d1bd8e03d8f1354e76 : SUCCESS in 9m 45s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/c290cf59a3f742d69012333c52562611 : SUCCESS in 13m 39s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/0b2276cb575e4231b7a84175c6af596b : SUCCESS in 14m 16s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4278b288b5684e53bcd08ae822930d16 : SUCCESS in 14m 11s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/3f5685d0b7fc497bbcf4b7d772038de1 : SUCCESS in 11m 56s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/eb00de89c49c4135af90332423f3c74e : SUCCESS in 15m 20s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/1e8cbf9dda9249aaa310012446021b71 : SUCCESS in 15m 48s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/922823e0a9314d53a62b8d1f5eeefa12 : SUCCESS in 15m 53s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/915df7ed1f984e9d89ea082ee5a34fa1 : SUCCESS in 15m 45s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/0766528a403f4f4895562ee20771deab : SUCCESS in 17m 30s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/098e276c1cc44fe4947e17537eb10027 : SUCCESS in 17m 33s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2c1d2ee6d84e453d9cc6a2e86590311a : SUCCESS in 22m 48s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/5adf24cc72f64a59b708a63ddb09304a : SUCCESS in 43m 00s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c78e237f5ae848a396925acff0c6f91b : SUCCESS in 39m 26s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/9d288acd2ba2428d84efad26b19b7b08 : SUCCESS in 38m 05s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/bf48f37b4c61486094ead5e24b256811 : SUCCESS in 13m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cb6fa901421747e29589f4d2b2e72c25 : SUCCESS in 5m 37s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/0fb1be5353044c898014f3d782298cfc : SUCCESS in 38m 46s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f18cf521c730438eba6b2ca3036d2943 : SUCCESS in 59m 30s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"85498c8dddf8e8b7cd90c1b1778d8fa22fdfb040","revisions":{"85498c8dddf8e8b7cd90c1b1778d8fa22fdfb040":{"kind":"REWORK","_number":1,"created":"2020-09-22 20:23:15.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/46/753446/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/46/753446/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/46/753446/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/46/753446/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/46/753446/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/46/753446/1"}}},"commit":{"parents":[{"commit":"41335f7b476dcb04d8100081aeadc74c9f0b45a8","subject":"Revert \"Make rolling-upgrade job non-voting\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/41335f7b476dcb04d8100081aeadc74c9f0b45a8"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-09-22 20:06:10.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-09-22 20:06:10.000000000","tz":-420},"subject":"Sanity check that PipeMutex actually read data during acquire()","message":"Sanity check that PipeMutex actually read data during acquire()\n\nChange-Id: Ia764f5ac8ff5e87a85e0a466bfac918599374039\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/85498c8dddf8e8b7cd90c1b1778d8fa22fdfb040"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/85498c8dddf8e8b7cd90c1b1778d8fa22fdfb040"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
