)]}'
{"swift/common/wsgi.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4eeb95044604dd7601e97b93199dc7eb30aec40d","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"        os.killpg(0, signal.SIGTERM)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"    strategy.shutdown_sockets()"},{"line_number":1008,"context_line":"    signal.signal(signal.SIGTERM, signal.SIG_IGN)"},{"line_number":1009,"context_line":"    logger.notice(\u0027Exited (%s)\u0027, os.getpid())"},{"line_number":1010,"context_line":"    return 0"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_6bbdf766","side":"PARENT","line":1008,"updated":"2018-05-21 19:04:41.000000000","message":"I think if we can make the signal handling idempotent enough we could loose this and be no worse for the wear.. it\u0027s kinda weird anyway?\n\nI mean... we don\u0027t want to shutdown if we\u0027re already shutting down - we just want to finish shutting down... but other than that I don\u0027t think we have some magical altruistic reason to clean up our associated signal handlers.","commit_id":"ea92e499801db231771fdae80943e5c9b1344926"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"535b7207591edd4727265978f447ed9af85bbdfb","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"        os.killpg(0, signal.SIGTERM)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"    strategy.shutdown_sockets()"},{"line_number":1008,"context_line":"    signal.signal(signal.SIGTERM, signal.SIG_IGN)"},{"line_number":1009,"context_line":"    logger.notice(\u0027Exited (%s)\u0027, os.getpid())"},{"line_number":1010,"context_line":"    return 0"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_0eca516d","side":"PARENT","line":1008,"in_reply_to":"5f7c97a3_6bbdf766","updated":"2018-05-21 20:03:01.000000000","message":"I think previously (back before sharding) it was there so if you sent a bunch of SIGHUPs while waiting for connections to close, you wouldn\u0027t get multiple log lines... probably right that it could go? IDK man...","commit_id":"ea92e499801db231771fdae80943e5c9b1344926"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4eeb95044604dd7601e97b93199dc7eb30aec40d","unresolved":false,"context_lines":[{"line_number":946,"context_line":"        running_context[1] \u003d signum"},{"line_number":947,"context_line":"        if signum \u003d\u003d signal.SIGTERM:"},{"line_number":948,"context_line":"            os.killpg(0, signal.SIGTERM)"},{"line_number":949,"context_line":"        signal.signal(signum, signal.SIG_IGN)"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"    # context to hold boolean running state and stop signum"},{"line_number":952,"context_line":"    running_context \u003d [True, None]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_4bba7b6e","line":949,"updated":"2018-05-21 19:04:41.000000000","message":"There was some reason we tried to move system calls out of the system handler... or maybe it was just logging/io?  Is there another way to avoid the race?","commit_id":"fb1c9decd7b24b715f387b3901a461d1d66c39c5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"535b7207591edd4727265978f447ed9af85bbdfb","unresolved":false,"context_lines":[{"line_number":946,"context_line":"        running_context[1] \u003d signum"},{"line_number":947,"context_line":"        if signum \u003d\u003d signal.SIGTERM:"},{"line_number":948,"context_line":"            os.killpg(0, signal.SIGTERM)"},{"line_number":949,"context_line":"        signal.signal(signum, signal.SIG_IGN)"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"    # context to hold boolean running state and stop signum"},{"line_number":952,"context_line":"    running_context \u003d [True, None]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_ce71b946","line":949,"in_reply_to":"5f7c97a3_4bba7b6e","updated":"2018-05-21 20:03:01.000000000","message":"So we *know* logging can cause problems because of locks -- if we get a SIGTERM, break out of the loop, and block waiting to log the fact that we received a SIGTERM... then get a SIGHUP while we\u0027re blocked on logging... I don\u0027t think we ever kill the process group.","commit_id":"fb1c9decd7b24b715f387b3901a461d1d66c39c5"}]}
