{"push_id":620081060,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"2d7288df93431338ba3139242019f48f8fdc5ce9","before":"02aa331992c6bb6bb7ea1d85b17bc6094dec44a3","commits":[{"sha":"2d7288df93431338ba3139242019f48f8fdc5ce9","author":{"email":"c62f5318c93f8dd6f57984ff4c0a8cf91040f6f9@mirantis.com","name":"Elena Ezhova"},"message":"Updated openstack/openstack\nProject: openstack/oslo-incubator  d24b65890bca9568781d05c458720358a8edc07e\n\nRevert \"Optimization of waiting subprocesses in ProcessLauncher\"\n\nThis reverts commit bf92010cc9d4c2876eaf6092713aafa94dcc8b35.\n\nAlthough this change optimized waiting for children processes\nto exit, it completely breaks neutron-server due to the following\nreasons:\n\n    1. In neutron-server eventlet monkey-patching is done in parent\n    process. That is why os.waitpid(0, 0) in _wait_child method also\n    gets monkey-patched and eventlet goes crazy. Connecting to parent\n    process with strace shows that os.waitpid(0, os.WNOHANG) is\n    called, yet it is difficult to say what is really happening\n    because the process does not react on termination signals\n    (SIGTERM, SIGHUP, SIGINT).\n\n    2. Due to the fact that neutron-server initializes two instances\n    of ProcessLauncher in one parent process, calling\n    eventlet.greenthread.sleep(self.wait_interval) seems to be the\n    only way for the process to switch contexts and allow another\n    instance of ProcessLauncher to call _wait_child.\n\nThis revert is supposed to be temporary until the way neutron\nlaunches services is reworked.\n\nConflicts:\n\topenstack/common/service.py\n\nRelated-Bug: #1438321\nChange-Id: I5c75c4bf5f060e5d345fe4800bc92f5b4ed9206e","distinct":true,"url":"https://api.github.com/repos/openstack/openstack/commits/2d7288df93431338ba3139242019f48f8fdc5ce9"}]}