)]}'
{"id":"openstack%2Fnova~8228","triplet_id":"openstack%2Fnova~master~Icd8ee48ec7b6405af21c915fb95f89466750ffd4","project":"openstack/nova","branch":"master","topic":"bp/multi-process-api-service","hashtags":[],"change_id":"Icd8ee48ec7b6405af21c915fb95f89466750ffd4","subject":"blueprint multi-process-api-service","status":"ABANDONED","created":"2012-06-06 14:23:28.000000000","updated":"2012-07-13 08:44:41.000000000","total_comment_count":50,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c9d47fb3d84fb0a2511b8f73ed963c500fb83bdc","_number":8228,"virtual_id_number":8228,"owner":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"all":[{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":1,"date":"2012-06-27 22:39:18.000000000","_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},{"value":1,"date":"2012-06-27 18:55:20.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"}],"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":{"rejected":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":-2,"date":"2012-07-03 21:42:37.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"}],"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":[{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"date":"2012-07-03 21:42:37.000000000","_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},{"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2012-06-14 17:16:33.000000000","updated_by":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"reviewer":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"state":"REVIEWER"},{"updated":"2012-06-15 19:47:49.000000000","updated_by":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"reviewer":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"state":"REVIEWER"},{"updated":"2012-06-20 16:56:54.000000000","updated_by":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"reviewer":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"state":"REVIEWER"},{"updated":"2012-06-27 18:55:20.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2012-06-27 22:39:18.000000000","updated_by":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"reviewer":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2012-07-03 21:42:37.000000000","updated_by":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"reviewer":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"state":"REVIEWER"}],"messages":[{"id":"67d0d9a975df8a5138a84ee28be957556401b527","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-06 14:36:55.000000000","message":"Patch Set 1: Works for me\n\nBuild successful\n\n- https://jenkins.openstack.org/job/gate-nova-merge/2744/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4149/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/351/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python27/359/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/4585/ : SUCCESS\n","accounts_in_message":[],"_revision_number":1},{"id":"f5db88b402b9fd7d72c37756548e23d00c68c931","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2012-06-06 15:07:52.000000000","message":"Patch Set 1: Works for me\n\nSmokeStack Results (patch set 1):\n\tUnit Success: http://smokestack.openstack.org/?go\u003d/jobs/22342\n\tLibvirt (Fedora 16) Success: http://smokestack.openstack.org/?go\u003d/jobs/22341\n","accounts_in_message":[],"_revision_number":1},{"id":"cc24b91a8403cedef1fd0ca3b96205e70fb4e480","author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"date":"2012-06-06 15:19:16.000000000","message":"Patch Set 1:\n\nI checked the hosts the check jobs ran on, and this version does not forkbomb Jenkins.","accounts_in_message":[],"_revision_number":1},{"id":"82557b6e3b077da1e387cd31c122121ca34bd64d","author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"date":"2012-06-06 15:27:56.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\n(13 inline comments)\n\nI see you fixed some of the comments I made on the previous patch, but I have some more questions and comments...","accounts_in_message":[],"_revision_number":1},{"id":"1545a72282efa73811e2ccb5e08d3373e093e23f","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-06 17:15:29.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"4acfce8dd84b5108516b3d35d4be0e0d657c2eaa","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-06 17:29:18.000000000","message":"Patch Set 2: Doesn\u0027t seem to work\n\nBuild failed\n\n- https://jenkins.openstack.org/job/gate-nova-merge/2748/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4153/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/355/ : FAILURE\n- https://jenkins.openstack.org/job/gate-nova-python27/363/ : FAILURE\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/4594/ : FAILURE\n","accounts_in_message":[],"_revision_number":2},{"id":"38723ccde9f050069b603921c732c71ca2ef9019","author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"date":"2012-06-06 17:44:16.000000000","message":"Patch Set 2:\n\nlooks like a test failure:\n\nFAIL: test_number_of_workers (nova.tests.integrated.test_multiprocess_api.MultiprocessWSGITest)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n  File \"/home/jenkins/workspace/gate-nova-python27/nova/tests/integrated/test_multiprocess_api.py\", line 150, in test_number_of_workers\n    \u0027Num of children \u003d %d.\u0027 % self.workers)\nAssertionError: Num of children \u003d 2.","accounts_in_message":[],"_revision_number":2},{"id":"e6fb64d966bdf64a34fc9e228cdbff4f129015ba","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2012-06-06 18:02:16.000000000","message":"Patch Set 2: Doesn\u0027t seem to work\n\nSmokeStack Results (patch set 2):\n\tUnit Failed:Nova tests failed.  http://smokestack.openstack.org/?go\u003d/jobs/22350\n\tLibvirt (Fedora 16) Success: http://smokestack.openstack.org/?go\u003d/jobs/22349\n","accounts_in_message":[],"_revision_number":2},{"id":"6628cd85ecc7349b8d14fae34458b3e0240eb15e","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-06 18:08:52.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"95ddca0a77a9ddfd52f742393163a8850dba8dc1","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-06 18:22:23.000000000","message":"Patch Set 3: Works for me\n\nBuild successful\n\n- https://jenkins.openstack.org/job/gate-nova-merge/2752/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4157/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/359/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python27/367/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/4598/ : SUCCESS\n","accounts_in_message":[],"_revision_number":3},{"id":"dee5b499c68914b47f1c776e2f46d661bf8063bd","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2012-06-06 18:41:09.000000000","message":"Patch Set 3: Works for me\n\nSmokeStack Results (patch set 3):\n\tUnit Success: http://smokestack.openstack.org/?go\u003d/jobs/22354\n\tLibvirt (Fedora 16) Success: http://smokestack.openstack.org/?go\u003d/jobs/22353\n","accounts_in_message":[],"_revision_number":3},{"id":"7dc226fae4374cc9d9262b48d8e613c2bac6fcfb","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2012-06-06 20:47:48.000000000","message":"Patch Set 3: I would prefer that you didn\u0027t merge this\n\nMultiprocessEC2Test.test_ec2  doesn\u0027t work for me  (OS X).","accounts_in_message":[],"_revision_number":3},{"id":"58f6191ce62e9f46836da40c6036b603dab95eac","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-07 00:50:21.000000000","message":"Patch Set 3:\n\nJoe, do you mind share more details of unittest failure?","accounts_in_message":[],"_revision_number":3},{"id":"491be894e50f03785e1336a270ff6f79aa31b004","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2012-06-07 00:54:16.000000000","message":"Patch Set 3:\n\nHuang,\n\nThe unit test keeps running and one of the python processes slowly grows.  I killed the test after the python process got to 600MB of memory.\n\nI ran the test using \u0027./run_tests.sh -f\u0027","accounts_in_message":[],"_revision_number":3},{"id":"2fef22008258b9c1dde6e5109592fa415eb4c37e","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-07 00:58:45.000000000","message":"Patch Set 3:\n\nJoe, thx for the info.  I haven\u0027t met such problem before. I\u0027ll find a OS X to reproduce this issue. What version are you using?","accounts_in_message":[],"_revision_number":3},{"id":"771d5145e786260e9b5199ad9377e5eecb7eaebd","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2012-06-07 01:02:35.000000000","message":"Patch Set 3:\n\nPython 2.7.1 on OS x 10.7.3 (with brew installed)","accounts_in_message":[],"_revision_number":3},{"id":"0330adba99adea98cd7ce6ee8f54c72ef6e6d731","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-11 14:22:02.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"e405c49bdf4f3a2d2a7d2000b976267758037174","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-11 14:36:46.000000000","message":"Patch Set 4: Works for me\n\nBuild successful\n\n- https://jenkins.openstack.org/job/gate-nova-merge/2915/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4317/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/519/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python27/527/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/4912/ : SUCCESS\n","accounts_in_message":[],"_revision_number":4},{"id":"48d5fce6389b399b25f704131ce3586c8df757be","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2012-06-11 15:02:34.000000000","message":"Patch Set 4: Works for me\n\nSmokeStack Results (patch set 4):\n\tUnit Success: http://smokestack.openstack.org/?go\u003d/jobs/22679\n\tLibvirt (Fedora 16) Success: http://smokestack.openstack.org/?go\u003d/jobs/22678\n","accounts_in_message":[],"_revision_number":4},{"id":"ee117d75521f7c2eb4fd11fcdfd2287fb2de72a2","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-14 03:08:41.000000000","message":"Patch Set 4:\n\nJohannes, Joe and Kevin, please help and review new patch set.","accounts_in_message":[],"_revision_number":4},{"id":"ee08bde9aeafcf89874c37f385a7020e41243dc1","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2012-06-14 14:59:20.000000000","message":"Patch Set 4: I would prefer that you didn\u0027t merge this\n\n(3 inline comments)\n\nMy biggest concern is just a HACKING compliance concern in wsgi.py, although I am concerned about the ps ordering issue in test_multiprocess_api.py.","accounts_in_message":[],"_revision_number":4},{"id":"47eca69cf6328ad3e71a3ec144f52491743081a3","author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"date":"2012-06-14 15:13:25.000000000","message":"Patch Set 4: I would prefer that you didn\u0027t merge this\n\n(6 inline comments)\n\n","accounts_in_message":[],"_revision_number":4},{"id":"c3c714df1fe53dc3c9ba5bd61c0c65a3890b2088","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2012-06-14 17:16:33.000000000","message":"Patch Set 4:\n\nConfirmed unit tests work on OS X now.","accounts_in_message":[],"_revision_number":4},{"id":"820568a404b756b8a282c4f185b1232f7cfcc848","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-15 06:27:05.000000000","message":"Patch Set 4: (9 inline comments)\n\nThanks for the feedback. All comments have been addressed in new version patch.","accounts_in_message":[],"_revision_number":4},{"id":"afb48fb542a7ec195a0ea0c0d870a4b81c41be5a","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-15 08:51:17.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"e86d12a1ee0cb683be78c4a8975e9993945dafcb","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-15 09:05:10.000000000","message":"Patch Set 5: Works for me\n\nBuild successful\n\n- https://jenkins.openstack.org/job/gate-nova-merge/3059/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4460/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/662/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python27/670/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/5297/ : SUCCESS\n","accounts_in_message":[],"_revision_number":5},{"id":"d3782682fb21cfc33ea9c4a05d137cfee1185ee7","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2012-06-15 19:47:49.000000000","message":"Patch Set 5: I would prefer that you didn\u0027t merge this\n\n(2 inline comments)\n\nSorry, I should have caught the boto import before…","accounts_in_message":[],"_revision_number":5},{"id":"943aed5a23893298196ab340a2d6012ab7740491","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-15 23:36:54.000000000","message":"Patch Set 5: (2 inline comments)\n\nThanks, Kevin.  I\u0027ve addressed import issue in next patch set.","accounts_in_message":[],"_revision_number":5},{"id":"bb1b0b2f20a1a395857baf5c64c256ba9a4125bb","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-15 23:37:28.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"dc73b8514af4e886dd6847f815addb06c5d96d74","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-15 23:51:28.000000000","message":"Patch Set 6: Doesn\u0027t seem to work\n\nBuild failed\n\n- https://jenkins.openstack.org/job/gate-nova-merge/3100/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4497/ : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/699/ : FAILURE\n- https://jenkins.openstack.org/job/gate-nova-python27/707/ : FAILURE\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/5388/ : SUCCESS\n","accounts_in_message":[],"_revision_number":6},{"id":"da731275bde63a9421fb00a7912117124ef090aa","author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"date":"2012-06-20 14:49:36.000000000","message":"Patch Set 6: I would prefer that you didn\u0027t merge this\n\nSo I\u0027ve been testing this patch out and the use of a \"master worker\" process confuses me.\n\nFirst, killing the parent (original) pid will leave all of the children still running, this is because the \"master worker\" is the only process that catches signals and stops it\u0027s children. \n\nSecond, since the os module is no longer monkey patched, the call to join the \"master worker\" ends up blocking the original pid.\n\nAs a result, I don\u0027t see the point of the \"master worker\" process. It doesn\u0027t seem to add any value and only makes it harder to kill the service.","accounts_in_message":[],"_revision_number":6},{"id":"feca5c955be367df9c1a0987be43aaa6c2a732ee","author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"date":"2012-06-20 16:52:03.000000000","message":"Patch Set 6: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":6},{"id":"b1eb0fd35ec6d0f9385c51eacc413e2f131e25a4","author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"date":"2012-06-20 16:56:54.000000000","message":"Patch Set 6:\n\nAnswering Johannes\u0027 question... that is from Swift, where much of this code originates:\n\nhttps://github.com/openstack/swift/blob/95786e577c328778de9a734bcd664dd7a7daf46b/swift/common/wsgi.py#L139\n\nShould be able to remove that line.\n\nBest,\n-jay","accounts_in_message":[],"_revision_number":6},{"id":"dadefdaf4b4bdb9dc3aeffc301aff476c04bbe20","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-21 19:04:43.000000000","message":"Patch Set 6: (1 inline comment)\n\nHi Johannes,\nThanks for actually trying out this patch and sorry for the confusion (of master_worker). Let me explain a little bit of why master_worker is needed: (could be TL;DR)\nSo Nova comes with several API services: EC2, OSAPI_compute, OSAPI_volume, Metadata. (All of them can benefit from being multiprocess.)  When multiprocess is enabled, user is able to decide which service(s) run in mulitprocess mode and # of workers, via configuring API_workers flag. \n\nEverything looks fine but there is this \u0027nova-api\u0027 application inside nova/bin, which would launch all enabled API services. Without this patch, all API services are basically green threads running in one process. With my patch, if one runs OSAPI_compute with 2 processes,  OSAPI_volume with 2 process and the rest without multiprocess, the parent (original) process has to record children\u0027s pid for different services, has to wait for different services children (which isn\u0027t possible since os isn\u0027t monkey patched). Adding a master_worker is my attempt to have better isolation on this and handle the case of running multiple API services with on application (nova-api): each service has their own master worker to handle signal, check children status. As a side effect, one is able to terminate one API service (by killing its master worker) without affecting other service. \n\nSo your first concern is actually expected behaviour. And the join master worker block parent process can be fixed. I\u0027ll do that in next patch set.\n\nPlease let me know if you have any question/suggestion.  Thanks!","accounts_in_message":[],"_revision_number":6},{"id":"bdf53286059839f6d05cbecf98b170421a3c00be","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-21 19:12:28.000000000","message":"Patch Set 6:\n\nBtw, glance multiprocess patch doesn\u0027t have master_worker since glance-control put glance-registry and glance-api into different process in the first place.\n\nKeystone is using similar way of Nova to launch public/admin service. So my patch to keystone has master worker too. (https://review.openstack.org/#/c/7017/)\n\nMaybe fixing up nova-api/keystone-all to spawn enabled services into their own process can be an alternative to master_worker?","accounts_in_message":[],"_revision_number":6},{"id":"701a1aa5e529421b886cc2ac6c85f55d0f564b2d","author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"date":"2012-06-21 19:38:45.000000000","message":"Patch Set 6:\n\nI don\u0027t like the current design of this patch since it appears to have two conflicting goals: keeping nova-api multi-service, but then running services completely separately of nova-api.\n\nFor instance, if you kill the original parent process, then all of the services that have more than 0 workers will become orphaned and continue running.\n\nThis makes init script very difficult since it has to figure out what these other PIDs are to fully stop all of the services.\n\nEither nova-api should be split into separate executables for each service, or we should pull the process management down into the lower layer so we don\u0027t have the problem of services becoming orphaned.\n\nI\u0027m leaning towards splitting each API service into a separate executable. I don\u0027t see the value in having all of the services run in one process and it complicates things quite a bit.\n\nIt\u0027s also simpler than trying to force process management down a layer.","accounts_in_message":[],"_revision_number":6},{"id":"e514c1dd2fca5c0f8665860e468449bf8b4d09e1","author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"date":"2012-06-21 19:45:24.000000000","message":"Patch Set 6:\n\nThere are already separate workers for each service. The combined nova-api is just a convenience binary to run them all together. Volume-api is going away and metadata is most commonly run on its own so eventually nova-api will probably just be compute api again. For now, I would suggest that we change nova-api to run each service in its own process and skip the master_worker concept.","accounts_in_message":[],"_revision_number":6},{"id":"1f8e47cd066a3685cb9db874ec857a29b1d37348","author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"date":"2012-06-21 20:01:33.000000000","message":"Patch Set 6:\n\nSo nova-api would effectively just fork off and manage children? A worker count of 0 would effectively be 1 then (when run under nova-api, presumably 0 would still mean no forking if run under nova-api-os-compute).\n\nThat seems like a reasonable alternative.","accounts_in_message":[],"_revision_number":6},{"id":"32bd08653c0e2098ab6fd7da4518143dda21b368","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-25 17:47:47.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"3b742627791c2d299da14a38e7cc66211f3b7f42","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-25 17:59:26.000000000","message":"Patch Set 7: Doesn\u0027t seem to work\n\nBuild failed\n\n- https://jenkins.openstack.org/job/gate-nova-merge/3361/consoleFull : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4757/consoleFull : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/959/consoleFull : FAILURE\n- https://jenkins.openstack.org/job/gate-nova-python27/967/consoleFull : FAILURE\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/6097/consoleFull : SUCCESS\n","accounts_in_message":[],"_revision_number":7},{"id":"b908824ecbf16702ffe0d468e54c582b789fc7bd","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-25 18:06:17.000000000","message":"Patch Set 7:\n\nThere\u0027s dependency on this patch: https://review.openstack.org/#/c/8945/","accounts_in_message":[],"_revision_number":7},{"id":"17c5cf0f89472190b213a4a96da3682464345a74","author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"date":"2012-06-26 21:46:26.000000000","message":"Patch Set 7: I would prefer that you didn\u0027t merge this\n\nWhile you\u0027ve removed the master_worker variable, you still end up with 3 levels of processes, the original process, the multiprocess.Process processes and the children from that.\n\nAs a result, processes can still leak out since there\u0027s nothing to kill the children if the original process dies.\n\nI took the opportunity to make some changes to your patch to implement what I think is a better cleaner solution. There are only two levels of processes (parent and children for all services) and it uses a pipe to ensure that the children die even if the parent is killed without having a chance to cleanup.\n\nhttps://review.openstack.org/#/c/9033/","accounts_in_message":[],"_revision_number":7},{"id":"fcc5701a622b4dcadce092800522c8ca3094edf3","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-27 14:49:57.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"4c064a334a67fbc9db2f56f07a6e66eae6569ce6","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-27 14:59:12.000000000","message":"Patch Set 8:\n\nIn patch set 8, modification has been made to handle the case when parent process has been killed/terminated. And about the 3 level process, I don\u0027t see it have any real issue.","accounts_in_message":[],"_revision_number":8},{"id":"2219591347979933748cc04f23b1788c848d5e1d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-27 15:01:00.000000000","message":"Patch Set 8: Doesn\u0027t seem to work\n\nBuild failed\n\n- https://jenkins.openstack.org/job/gate-nova-merge/3524/consoleFull : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4906/consoleFull : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/1103/consoleFull : FAILURE\n- https://jenkins.openstack.org/job/gate-nova-python27/1116/consoleFull : FAILURE\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/6403/consoleFull : SUCCESS\n","accounts_in_message":[],"_revision_number":8},{"id":"165ed1211cd1ada3b73b0f39fc7da50541c6304f","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-06-27 18:38:00.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"9bd6b9606eb102e3d525043b78d97488b935d9e5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-27 18:55:20.000000000","message":"Patch Set 9: Works for me\n\nBuild successful\n\n- https://jenkins.openstack.org/job/gate-nova-merge/3657/consoleFull : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-pep8/4956/consoleFull : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python26/1153/testReport : SUCCESS\n- https://jenkins.openstack.org/job/gate-nova-python27/1166/testReport : SUCCESS\n- https://jenkins.openstack.org/job/gate-integration-tests-devstack-vm/6518/consoleFull : SUCCESS\n","accounts_in_message":[],"_revision_number":9},{"id":"5395359f198fb4ec31fa3a42231be16129320882","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2012-06-27 22:39:18.000000000","message":"Patch Set 9: Works for me\n\nSmokeStack Results (patch set 9):\n\tUnit Success: http://smokestack.openstack.org/?go\u003d/jobs/23895\n\tLibvirt (Fedora 17) Success: http://smokestack.openstack.org/?go\u003d/jobs/23894\n","accounts_in_message":[],"_revision_number":9},{"id":"518859edd3ef9ff8043db51d0cdfe89c9a988580","author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"date":"2012-07-03 21:42:37.000000000","message":"Patch Set 9: Do not merge\n\nsuperseeded by https://review.openstack.org/#/c/9033/","accounts_in_message":[],"_revision_number":9},{"id":"aaa5cbbb1b36d756ebb6a2b706bef7bd4efa4982","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2012-07-13 08:44:41.000000000","message":"Patch Set 9: Abandoned\n\nThis patch has been replaced.","accounts_in_message":[],"_revision_number":9}],"current_revision_number":9,"current_revision":"2e93c2bc3d8cce9b7a903d715669de51e7f2cb8b","revisions":{"dc56f3314ffa103acd6ed50dd37524d4250ec656":{"kind":"REWORK","_number":1,"created":"2012-06-06 14:23:28.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/1"}}},"commit":{"parents":[{"commit":"1a007651c40b8f959fab9e3d5c431f65b4728950","subject":"Migrate instance_metadata to use a uuid to refer to instances.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/1a007651c40b8f959fab9e3d5c431f65b4728950"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-06 14:22:55.000000000","tz":480},"subject":"blueprint \u003cmulti-process-api-service\u003e","message":"blueprint \u003cmulti-process-api-service\u003e\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-6 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to make sure running state is sychronized between processes.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es). There\n    is also a master_worker process spawned for managing all workers (handling\n    signal/termination).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/dc56f3314ffa103acd6ed50dd37524d4250ec656"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/dc56f3314ffa103acd6ed50dd37524d4250ec656"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"1a007651c40b8f959fab9e3d5c431f65b4728950","is_merged_in_target_branch":true,"change_id":"I64302d0abb2e734422e6b0fee8f12e90f4ce711a","change_number":8171,"patch_set_number":4,"change_status":"MERGED"}],"branch":"refs/heads/master"},"a8871c800da0989893fb25be22e9f5251bbe7400":{"kind":"REWORK","_number":2,"created":"2012-06-06 17:15:29.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/2"}}},"commit":{"parents":[{"commit":"1a007651c40b8f959fab9e3d5c431f65b4728950","subject":"Migrate instance_metadata to use a uuid to refer to instances.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/1a007651c40b8f959fab9e3d5c431f65b4728950"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-06 17:14:12.000000000","tz":480},"subject":"blueprint \u003cmulti-process-api-service\u003e","message":"blueprint \u003cmulti-process-api-service\u003e\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-6 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es). There\n    is also a master_worker process spawned for managing all workers (handling\n    signal/termination).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a8871c800da0989893fb25be22e9f5251bbe7400"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a8871c800da0989893fb25be22e9f5251bbe7400"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"1a007651c40b8f959fab9e3d5c431f65b4728950","is_merged_in_target_branch":true,"change_id":"I64302d0abb2e734422e6b0fee8f12e90f4ce711a","change_number":8171,"patch_set_number":4,"change_status":"MERGED"}],"branch":"refs/heads/master"},"f425dafbd9da1011cbea99dbb8ecf2a6afe624ac":{"kind":"REWORK","_number":3,"created":"2012-06-06 18:08:52.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/3"}}},"commit":{"parents":[{"commit":"1a007651c40b8f959fab9e3d5c431f65b4728950","subject":"Migrate instance_metadata to use a uuid to refer to instances.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/1a007651c40b8f959fab9e3d5c431f65b4728950"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-06 18:08:37.000000000","tz":480},"subject":"blueprint \u003cmulti-process-api-service\u003e","message":"blueprint \u003cmulti-process-api-service\u003e\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-6 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es). There\n    is also a master_worker process spawned for managing all workers (handling\n    signal/termination).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f425dafbd9da1011cbea99dbb8ecf2a6afe624ac"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f425dafbd9da1011cbea99dbb8ecf2a6afe624ac"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"1a007651c40b8f959fab9e3d5c431f65b4728950","is_merged_in_target_branch":true,"change_id":"I64302d0abb2e734422e6b0fee8f12e90f4ce711a","change_number":8171,"patch_set_number":4,"change_status":"MERGED"}],"branch":"refs/heads/master"},"d826f35a9d9041196f253ae4fbf2f31570562d6b":{"kind":"REWORK","_number":4,"created":"2012-06-11 14:22:02.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/4"}}},"commit":{"parents":[{"commit":"7bdf35eb11e41624aa1888dfe9eb4ebae330ff33","subject":"Merge \"Do not attempt to kill already-dead dnsmasq\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/7bdf35eb11e41624aa1888dfe9eb4ebae330ff33"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-11 14:21:10.000000000","tz":480},"subject":"blueprint multi-process-api-service","message":"blueprint multi-process-api-service\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-11 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n    * Fixed error found on Mac OS X.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es). There\n    is also a master_worker process spawned for managing all workers (handling\n    signal/termination).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d826f35a9d9041196f253ae4fbf2f31570562d6b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d826f35a9d9041196f253ae4fbf2f31570562d6b"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"7bdf35eb11e41624aa1888dfe9eb4ebae330ff33","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"70f9141229a7d236765a5b9eb7bd6c5e576b56dc":{"kind":"REWORK","_number":5,"created":"2012-06-15 08:51:17.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/5"}}},"commit":{"parents":[{"commit":"76636056d29b87f8bac95ca302621d9158d615e4","subject":"Merge \"Add missing ack to impl_qpid.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/76636056d29b87f8bac95ca302621d9158d615e4"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-15 08:50:40.000000000","tz":480},"subject":"blueprint multi-process-api-service","message":"blueprint multi-process-api-service\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-11 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n    * Fixed error found on Mac OS X.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es). There\n    is also a master_worker process spawned for managing all workers (handling\n    signal/termination).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/70f9141229a7d236765a5b9eb7bd6c5e576b56dc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/70f9141229a7d236765a5b9eb7bd6c5e576b56dc"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"76636056d29b87f8bac95ca302621d9158d615e4","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"306cdf3e1e71f0a65a1a89848aaf091e5a42213e":{"kind":"REWORK","_number":6,"created":"2012-06-15 23:37:28.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/6"}}},"commit":{"parents":[{"commit":"fb9abcc83935b01746aeba0db4c431fe72b921fc","subject":"Merge \"Present correct ec2id format for volumes and snaps\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fb9abcc83935b01746aeba0db4c431fe72b921fc"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-15 23:37:06.000000000","tz":480},"subject":"blueprint multi-process-api-service","message":"blueprint multi-process-api-service\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-11 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n    * Fixed error found on Mac OS X.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es). There\n    is also a master_worker process spawned for managing all workers (handling\n    signal/termination).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/306cdf3e1e71f0a65a1a89848aaf091e5a42213e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/306cdf3e1e71f0a65a1a89848aaf091e5a42213e"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"fb9abcc83935b01746aeba0db4c431fe72b921fc","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"a278faf1c5efe94a62fae1966fe27791a11329f2":{"kind":"REWORK","_number":7,"created":"2012-06-25 17:47:47.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/7"}}},"commit":{"parents":[{"commit":"259cf1cd39a46b36f47014d1b9770b52a563e9df","subject":"Merge \"XenAPI: Fixes Bug 1012878\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/259cf1cd39a46b36f47014d1b9770b52a563e9df"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-25 17:34:29.000000000","tz":480},"subject":"blueprint multi-process-api-service","message":"blueprint multi-process-api-service\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-25 v7:\n    * Put API services into its own process (bin/nova-api, bin/nova-all).\n    * Remove master_worker.\n2012-06-11 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n    * Fixed error found on Mac OS X.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a278faf1c5efe94a62fae1966fe27791a11329f2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a278faf1c5efe94a62fae1966fe27791a11329f2"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"259cf1cd39a46b36f47014d1b9770b52a563e9df","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"fa461007e0b06532088369dfc67fa641c82cc75d":{"kind":"REWORK","_number":8,"created":"2012-06-27 14:49:57.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/8"}}},"commit":{"parents":[{"commit":"ec99e30c9a61fd18ff4a936646e965bdc125180a","subject":"Merge \"Allow access to metadata server \u0027/\u0027 without IP check\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/ec99e30c9a61fd18ff4a936646e965bdc125180a"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-27 11:01:31.000000000","tz":480},"subject":"blueprint multi-process-api-service","message":"blueprint multi-process-api-service\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-27 v7:\n    * Put API services into its own process (bin/nova-api, bin/nova-all).\n    * Remove master_worker.\n2012-06-11 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n    * Fixed error found on Mac OS X.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fa461007e0b06532088369dfc67fa641c82cc75d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fa461007e0b06532088369dfc67fa641c82cc75d"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"ec99e30c9a61fd18ff4a936646e965bdc125180a","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"2e93c2bc3d8cce9b7a903d715669de51e7f2cb8b":{"kind":"REWORK","_number":9,"created":"2012-06-27 18:38:00.000000000","uploader":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"ref":"refs/changes/28/8228/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/28/8228/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/28/8228/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/28/8228/9"}}},"commit":{"parents":[{"commit":"257dc91a7d65cbe70384dfd6865378e51fe1bcb6","subject":"Merge \"Avoid reset on hard reboot if not supported.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/257dc91a7d65cbe70384dfd6865378e51fe1bcb6"}]}],"author":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-03-24 18:06:01.000000000","tz":480},"committer":{"name":"Zhiteng Huang","email":"zhiteng.huang@intel.com","date":"2012-06-27 18:37:43.000000000","tz":480},"subject":"blueprint multi-process-api-service","message":"blueprint multi-process-api-service\n\nAdd multiprocess support for API serivces (EC2/OSAPI_Compute/OSAPI_Volume/Metadata).\n\n2012-06-27 v7:\n    * Put API services into its own process (bin/nova-api, bin/nova-all).\n    * Remove master_worker.\n2012-06-11 v6:\n    * Fixed process leak issue by putting self.running onto shared memory to\n    make sure running state is sychronized between processes.\n    * Add new unittest to check whether correct # of workers are started.\n    * Fixed error found on Mac OS X.\n2012-06-1 v5:\n    * Add unittest to cover worker recovery, service termination functionality\n    in wsgi.py, fix python 2.6 compatibility issue.\n    * Modify generate_uid() to introduce per-process seeds in utils.py to avoid\n    collisions.\n    * Add worker session to nova.conf.sample.\n2012-04-28 v4:\n    * Add SIGINT handler and fix child-parent race condition when Ctrl+C is\n    pressed.\n2012-03-30 v3:\n    * Added metadata test.\n    * nova/wsgi.py:Server: use the greenthread pool created for each process.\n    * nova/service.py: remove debug code\n2012-03-27 v2:\n    * Fixed unittest error.\n    * nova/wsgi.py:Server: Use self._logger to do logging in multiprocess mode.\n    * nova/wsgi.py:Server: Move self._pool creation into proper place.\n    * code style fix.\n2012-03-25 v1:\n    * Modification to nova/service.py and nova/wsgi.py in order to support\n    multiprocess (a.k.a. workers) for various API services.  If multiprocess\n    mode is enabled, (i.e. flags \u0027APINAME_workers\u0027 set to positive numbers),\n    corresponding API service will run in target number of process(es).\n    * Add unittest for multiprocess API service, also alter testing/runner.py\n    to adopt new unittest.\n\nChange-Id: Icd8ee48ec7b6405af21c915fb95f89466750ffd4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2e93c2bc3d8cce9b7a903d715669de51e7f2cb8b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2e93c2bc3d8cce9b7a903d715669de51e7f2cb8b"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"257dc91a7d65cbe70384dfd6865378e51fe1bcb6","is_merged_in_target_branch":true}],"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
