)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8509fb0cb289c61c159c69c550dbc2762e60eb6b","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Because server_per_port can change with a ring reload we have to be"},{"line_number":10,"context_line":"careful about shutting down."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"TODO: what if just a single port fails over and over again?"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-Bug: #1940694"},{"line_number":15,"context_line":"Change-Id: I39306fa2109516855931a9850dac3e25188f3cad"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"eaa1a1a5_9d49ac08","line":12,"updated":"2021-08-20 17:27:57.000000000","message":"maybe exponential backoff?  we might already have some state for the ports we *want* - maybe we could model that lifecycle to add some \"last time we tried\" tracking","commit_id":"8349d0518699e70c4ba11d8c4a1e03252bf60c81"}],"swift/common/wsgi.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8509fb0cb289c61c159c69c550dbc2762e60eb6b","unresolved":true,"context_lines":[{"line_number":1113,"context_line":"    signal.signal(signal.SIGHUP, stop_with_signal)"},{"line_number":1114,"context_line":"    signal.signal(signal.SIGUSR1, stop_with_signal)"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"    no_children \u003d False"},{"line_number":1117,"context_line":"    while running_context[0]:"},{"line_number":1118,"context_line":"        for sock, sock_info in strategy.new_worker_socks():"},{"line_number":1119,"context_line":"            read_fd, write_fd \u003d os.pipe()"}],"source_content_type":"text/x-python","patch_set":1,"id":"4ef73372_251be221","line":1116,"updated":"2021-08-20 17:27:57.000000000","message":"I normally hate boolean var names that start with a negative... maybe we could lie optimistically and make this \"has_children \u003d True\" until the ENOCHLD flips it","commit_id":"8349d0518699e70c4ba11d8c4a1e03252bf60c81"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8509fb0cb289c61c159c69c550dbc2762e60eb6b","unresolved":true,"context_lines":[{"line_number":1150,"context_line":"                        \u0027worker did not start normally: %r\u0027 % worker_status)"},{"line_number":1151,"context_line":"                no_children \u003d False"},{"line_number":1152,"context_line":"        if no_children:"},{"line_number":1153,"context_line":"            raise Exception(\u0027what are we even doing here?\u0027)"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"        # TODO: signal_ready() as soon as we have at least one new worker for"},{"line_number":1156,"context_line":"        # each port, instead of waiting for all of them"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ba40a3b_0e4e59aa","line":1153,"updated":"2021-08-20 17:27:57.000000000","message":"we raise Exception other places in here; but the shutdown isn\u0027t that graceful and the traceback here is expecially not useful","commit_id":"8349d0518699e70c4ba11d8c4a1e03252bf60c81"}]}
