)]}'
{"id":"openstack%2Fglance~745763","triplet_id":"openstack%2Fglance~master~Ie0e91e2ee86f33bcdb63eed74f2d9948108acfd4","project":"openstack/glance","branch":"master","topic":"bug/1891190","hashtags":[],"change_id":"Ie0e91e2ee86f33bcdb63eed74f2d9948108acfd4","subject":"Make wait_for_fork() more robust against infinite deadlock","status":"MERGED","created":"2020-08-11 23:49:26.000000000","updated":"2020-08-12 21:15:23.000000000","submitted":"2020-08-12 21:13:54.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"745763-1597266834402-5080a3ed","meta_rev_id":"16da2bbf666d82e44de352ebd91f552ee4299e3c","_number":745763,"virtual_id_number":745763,"owner":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"date":"2020-08-12 13:55:39.000000000","_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-08-12 21:13:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"all":[{"value":0,"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"value":2,"date":"2020-08-12 20:03:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":2,"date":"2020-08-12 14:22:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"approved":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"all":[{"value":0,"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"value":1,"date":"2020-08-12 20:03:54.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"recommended":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"all":[{"value":0,"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":1,"date":"2020-08-12 14:22:54.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Top Priority / Holds Gate"},"description":"","value":1,"default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-08-12 13:55:39.000000000","updated_by":{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},"reviewer":{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-08-12 14:22:54.000000000","updated_by":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"reviewer":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"state":"REVIEWER"},{"updated":"2020-08-12 20:03:54.000000000","updated_by":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"reviewer":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"state":"REVIEWER"},{"updated":"2020-08-12 21:13:54.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":"94823a96df5286e011dd01c594e57b9f2d852201","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-08-11 23:49:26.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ba162c8245393a1b743233aef89f7eb7ffb37705","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-08-11 23:51:33.000000000","message":"Patch Set 1:\n\nI\u0027ve been running this for hours now and haven\u0027t seen a deadlock yet. I also poked against the wsgi server a lot and didn\u0027t get it to leak any workers (although I wasn\u0027t making requests). I\u0027m wondering if the masking of signals during the SIGHUP handling means it\u0027s just missing our SIGTERM occasionally or something, and my previous patch to kill the children was sometimes doing so in an order that caused an orphan to be reparented. I will still keep poking on that, but this seems to make the tests not lock up for me.","accounts_in_message":[],"_revision_number":1},{"id":"e369def79106ff2808ee0aef6ae441fa02268faa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-12 00:02:20.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8fbca972f8aa423a9d6dde08bedd9d4f : SUCCESS in 4m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d4fca57aa5d6470a9ef94a090bafdd10 : SUCCESS in 6m 05s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/a22d01a73d7241e1852e0c62a02542c4 : SUCCESS in 4m 40s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/d76a808d4a14411b843c8c696ad38366 : SUCCESS in 5m 17s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a3ca14b8e6cf413fb483d0723ace4185 : SUCCESS in 5m 27s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/43b589553b2c4fb585d009cba3c72dbd : SUCCESS in 6m 59s\n- openstack-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/0e739121befd4b06a4fbaf58a6c70cbb : SUCCESS in 7m 47s\n- glance-code-constants-check https://zuul.opendev.org/t/openstack/build/ff11a54829164da5ad11f4c31de382bd : SUCCESS in 4m 02s","accounts_in_message":[],"_revision_number":1},{"id":"2b16b5aed2f3fcd8c31a77a995a01455604f8a29","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2020-08-12 13:53:08.000000000","message":"Patch Set 1:\n\nshould we add Related-Bug or partial fix tag to the patch?","accounts_in_message":[],"_revision_number":1},{"id":"98f18b41ab43674ebec7f59b8a6caa49644dbf9f","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-08-12 13:55:17.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"b9e13b9970e2dfc4c57b69de1acc6d0698993d9c","author":{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},"date":"2020-08-12 13:55:39.000000000","message":"Patch Set 2:\n\nBuild failed\n\n- ext-glance-zuul : NOT_REGISTERED","accounts_in_message":[],"_revision_number":2},{"id":"5b58b766ab0409da32ccbd7c40d47f3456281a00","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-12 14:20:29.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8299ad903a6e451e8d9e9e286ab3d3f0 : SUCCESS in 6m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dacfc0acae754bd989bd1d2982d2373f : SUCCESS in 5m 16s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/22246ae1adce4e92adc2f2002dc6cc4d : SUCCESS in 6m 35s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/7553fc4cdfb14c6caef94101230e49a0 : SUCCESS in 10m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4b27388a09554b31b7dd2a9b63c70bfb : SUCCESS in 6m 50s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/f0f3d770f6b144b1aeb9a8409278d652 : SUCCESS in 11m 23s\n- openstack-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/3cfcbc33735345cf8e9711bfd7ac683d : SUCCESS in 9m 18s\n- glance-code-constants-check https://zuul.opendev.org/t/openstack/build/6730dbf2a66a4358a30a30276555cb1c : SUCCESS in 9m 00s","accounts_in_message":[],"_revision_number":2},{"id":"a518888f598f25aa483db67f72d6e8ec41f0e356","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2020-08-12 14:22:54.000000000","message":"Patch Set 2: Code-Review+2 Review-Priority+1","accounts_in_message":[],"_revision_number":2},{"id":"c969643cb2cdb2564db5331e21cf4afbd802ba5c","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2020-08-12 20:03:54.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\nLogic looks good to me.","accounts_in_message":[],"_revision_number":2},{"id":"0c98566d5596a7c46a0bf1b78068810ff016bbc3","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-12 20:04:08.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"10f0529d48ad6d8b3728e4919f585dcb4395c5a7","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-12 21:13:54.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":2},{"id":"7b13de98dcaa23744d93e33b62f6836aebf53b2a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-12 21:13:54.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/863803f7c241497ba7d0947e2104c203 : SUCCESS in 6m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/396d5fe34ffc4d9988aed4a13d033ee5 : SUCCESS in 5m 40s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/360d14e78574441f9116a66ca402db9c : SUCCESS in 6m 39s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/b0d73f6319b64719ba5fdf72df40e82f : SUCCESS in 6m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b9cc7fa50e4e4545bbe94b4ac95268fe : SUCCESS in 7m 24s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/79ec5675f3fe48a2b0352b3cbbdad83c : SUCCESS in 10m 50s\n- openstack-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/4915bba00c31491d8fcb906d74295955 : SUCCESS in 7m 37s","accounts_in_message":[],"_revision_number":2},{"id":"d3591f20672ff2fc17a58262cdc28667ee26e10a","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-12 21:15:23.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c2a18948dcb94c10acbd1c8568d9a162 : SUCCESS in 1m 01s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"8e8072c16a63ee652b6cc383f6ad81808b319c2f","revisions":{"88473d9397f80ccdcded792395c691c9648fb777":{"kind":"REWORK","_number":1,"created":"2020-08-11 23:49:26.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/63/745763/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/63/745763/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/63/745763/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/63/745763/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/63/745763/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/63/745763/1"}}},"commit":{"parents":[{"commit":"ed3296b23a452391bbe11116e060d4b49235523e","subject":"Merge \"Inspect upload/import stream and set virtual_size\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/ed3296b23a452391bbe11116e060d4b49235523e"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2020-08-11 23:45:38.000000000","tz":-420},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2020-08-11 23:45:38.000000000","tz":-420},"subject":"Make wait_for_fork() more robust against infinite deadlock","message":"Make wait_for_fork() more robust against infinite deadlock\n\nThere is something about the process handling in the functional test base\nthat opens the scenario where we might signal our API master child,\nwaitpid() on it and never return (see bug 1891190). Specifically the\ntest_reload() case, where the API master is being sent SIGHUP various times,\nwhich may cause it to temporarily mask out SIGTERM or something, which\nmeans it ignores our request. Either way, a deadlock in the tests can\noccur when the cleanup() routine goes to waitpid() on that master,\nforever.\n\nThis change makes our wait_for_fork() helper call waitpid() with WNOHANG\nand progressively ramp up the aggression on asking it to stop. First, it\nwaits for the original signal to be honored, then it starts sending SIGTERM,\nfollowed by SIGKILLs until the overall timeout expires, after which it\nfails the test. The latter should only ever happen if something gets\nwedged in uninterruptible sleep.\n\nChange-Id: Ie0e91e2ee86f33bcdb63eed74f2d9948108acfd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/88473d9397f80ccdcded792395c691c9648fb777"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/88473d9397f80ccdcded792395c691c9648fb777"}]},"branch":"refs/heads/master"},"8e8072c16a63ee652b6cc383f6ad81808b319c2f":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2020-08-12 13:55:17.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/63/745763/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/63/745763/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/63/745763/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/63/745763/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/63/745763/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/63/745763/2"}}},"commit":{"parents":[{"commit":"ed3296b23a452391bbe11116e060d4b49235523e","subject":"Merge \"Inspect upload/import stream and set virtual_size\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/ed3296b23a452391bbe11116e060d4b49235523e"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2020-08-11 23:45:38.000000000","tz":-420},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2020-08-12 13:55:06.000000000","tz":-420},"subject":"Make wait_for_fork() more robust against infinite deadlock","message":"Make wait_for_fork() more robust against infinite deadlock\n\nThere is something about the process handling in the functional test base\nthat opens the scenario where we might signal our API master child,\nwaitpid() on it and never return (see bug 1891190). Specifically the\ntest_reload() case, where the API master is being sent SIGHUP various times,\nwhich may cause it to temporarily mask out SIGTERM or something, which\nmeans it ignores our request. Either way, a deadlock in the tests can\noccur when the cleanup() routine goes to waitpid() on that master,\nforever.\n\nThis change makes our wait_for_fork() helper call waitpid() with WNOHANG\nand progressively ramp up the aggression on asking it to stop. First, it\nwaits for the original signal to be honored, then it starts sending SIGTERM,\nfollowed by SIGKILLs until the overall timeout expires, after which it\nfails the test. The latter should only ever happen if something gets\nwedged in uninterruptible sleep.\n\nRelated-Bug: #1891190\nChange-Id: Ie0e91e2ee86f33bcdb63eed74f2d9948108acfd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/8e8072c16a63ee652b6cc383f6ad81808b319c2f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/8e8072c16a63ee652b6cc383f6ad81808b319c2f"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
