)]}'
{"releasenotes/notes/graceful-09c7267360190f7a.yaml":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7ab7f6c7066415ebac7b697bc0c7b087abb459c2","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The executor now honors the ``ZUUL_EXECUTOR_SIGTERM_METHOD``"},{"line_number":5,"context_line":"    environment variable to determine whether ``SIGTERM`` should be"},{"line_number":6,"context_line":"    equivalent to the ``stop`` command (the default) or the"},{"line_number":7,"context_line":"    ``graceful`` command."},{"line_number":8,"context_line":"upgrade:"},{"line_number":9,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"deb3bc48_df06a13a","line":6,"updated":"2021-07-09 16:36:37.000000000","message":"This does not seems to be true anymore, perhaps we should drop `(the default)`","commit_id":"17abc5ff73466e03162a96e0b0763adbd185a4da"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7ab7f6c7066415ebac7b697bc0c7b087abb459c2","unresolved":true,"context_lines":[{"line_number":10,"context_line":"    The default behavior when an executor receives SIGTERM has been"},{"line_number":11,"context_line":"    changed from immediately stopping jobs to gracefully waiting for"},{"line_number":12,"context_line":"    them to finish.  See the new ``ZUUL_EXECUTOR_SIGTERM_METHOD``"},{"line_number":13,"context_line":"    environment variable to specify the behavior."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"0c1337f9_e7d07ea8","line":13,"updated":"2021-07-09 16:36:37.000000000","message":"It might be useful to indicate that setting the value to `stop` preserve the legacy behavior.","commit_id":"17abc5ff73466e03162a96e0b0763adbd185a4da"}],"zuul/cmd/executor.py":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"605704b9b2b311a636650f54e6d8f09d2b555c5c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            self.args.nodaemon \u003d True"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def exit_handler(self, signum, frame):"},{"line_number":47,"context_line":"        graceful \u003d os.environ.get(\u0027ZUUL_EXECUTOR_SIGTERM_METHOD\u0027, \u0027graceful\u0027)"},{"line_number":48,"context_line":"        if graceful.lower() \u003d\u003d \u0027graceful\u0027:"},{"line_number":49,"context_line":"            self.executor.graceful()"},{"line_number":50,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"500517e5_2c0497a9","line":47,"updated":"2021-07-09 16:52:49.000000000","message":"And just to be clear, I think this means that also setting ZUUL_EXECUTOR_SIGTERM_METHOD to an empty string will result in the non-default behavior. Might be counter-intuitive, but perhaps this is an intentional choice.","commit_id":"454fef6ab69930ad6b74916d524e1c16fdd2b024"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"0a9a60086df9187a2161e2ed5bbc570d619ae110","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            self.args.nodaemon \u003d True"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def exit_handler(self, signum, frame):"},{"line_number":47,"context_line":"        graceful \u003d os.environ.get(\u0027ZUUL_EXECUTOR_SIGTERM_METHOD\u0027, \u0027graceful\u0027)"},{"line_number":48,"context_line":"        if graceful.lower() \u003d\u003d \u0027graceful\u0027:"},{"line_number":49,"context_line":"            self.executor.graceful()"},{"line_number":50,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5269af99_2d584edf","line":47,"updated":"2021-07-09 16:50:43.000000000","message":"I suppose this makes the behavior now that not setting ZUUL_EXECUTOR_SIGTERM_METHOD at all or setting it to \"graceful\" (or alternative capitalizations thereof) will get the default graceful shutdown behavior, while setting it to any other value will abruptly stop the service at sigterm.","commit_id":"454fef6ab69930ad6b74916d524e1c16fdd2b024"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"43a097cefdab7f473368ec14ca9bafd7ec6029ad","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        elif graceful.lower() \u003d\u003d \u0027stop\u0027:"},{"line_number":51,"context_line":"            self.executor.stop()"},{"line_number":52,"context_line":"        else:"},{"line_number":53,"context_line":"            self.log.error(\"Unknown value for ZUUL_EXECUTOR_SIGTERM_METHOD:\""},{"line_number":54,"context_line":"                           f\"\u0027{graceful}\u0027. Expected \u0027graceful\u0027 or \u0027stop\u0027\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def start_log_streamer(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"586992b2_94be5fcf","line":53,"updated":"2021-07-09 16:58:45.000000000","message":"Does this also effectively mean if you get this error then the process ignores sigterm and has to be ended with sigkill?","commit_id":"90e54fc0b292a337aeb25de7133194d78fb33ef5"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"a9c359e25581dfe812de5ebbf2bbcaab4169b72a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        elif graceful.lower() \u003d\u003d \u0027stop\u0027:"},{"line_number":51,"context_line":"            self.executor.stop()"},{"line_number":52,"context_line":"        else:"},{"line_number":53,"context_line":"            self.log.error(\"Unknown value for ZUUL_EXECUTOR_SIGTERM_METHOD:\""},{"line_number":54,"context_line":"                           f\"\u0027{graceful}\u0027. Expected \u0027graceful\u0027 or \u0027stop\u0027\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def start_log_streamer(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3eecb417_0027e845","line":53,"updated":"2021-07-09 17:24:00.000000000","message":"Yes to the first part, but to the second, the process can also be exited with the \u0027stop\u0027 or \u0027graceful\u0027 zuul-executor commands.","commit_id":"90e54fc0b292a337aeb25de7133194d78fb33ef5"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"4e857afcb5a05103187effd0b5192ed200b2e10f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.executor.start()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        if self.args.nodaemon:"},{"line_number":116,"context_line":"            signal.signal(signal.SIGTERM, self.exit_handler)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        self.executor.join()"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f42d40ea_74ce9586","line":116,"updated":"2021-07-09 17:01:19.000000000","message":"Jeremy: we only register exit_handler for sigterm","commit_id":"90e54fc0b292a337aeb25de7133194d78fb33ef5"}]}
