)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98a66a8eb1646b4f7134a0eec96786dd8d28396a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Matthew Oliver \u003cmatt@oliver.net.au\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-04-04 17:50:47 +1000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DNM: Add an emit_timeout to proxy logging"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We\u0027ve noticed that sometimes a single proxy workers accept-queue gets"},{"line_number":10,"context_line":"filled up. When we look at the process it\u0027s sitting there polling on the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"d52bb5a9_af7a7cfd","line":7,"updated":"2023-04-04 14:49:15.000000000","message":"is it really just proxy-logging tho?","commit_id":"c910f2696428ad95572b039a5eb680b012cdaad4"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98a66a8eb1646b4f7134a0eec96786dd8d28396a","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This patch wraps the socket.send in a timeout that can be configured in"},{"line_number":37,"context_line":"proxy_logging as emit_timeout. When the value is \u003e0, a timeout is used"},{"line_number":38,"context_line":"which will raise an OSError causing the socket cleanup and reconnect."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Hopefully this will work as a workaround patch until we can find the"},{"line_number":41,"context_line":"underlying cause."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bd476b6e_9e7eff2f","line":38,"updated":"2023-04-04 14:49:15.000000000","message":"I think this paragraph should come up to the top","commit_id":"c910f2696428ad95572b039a5eb680b012cdaad4"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98a66a8eb1646b4f7134a0eec96786dd8d28396a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"cafbe37e_517fe7e9","updated":"2023-04-04 14:49:15.000000000","message":"this could be interesting, i like that it\u0027s optional\n\ni think that logging is typically fast, so a small timeout could help find problems \n\ni think that timeouts have some overhead, and logging is already a bottleneck concern, maybe we wouldn\u0027t have to run with the timeout for long","commit_id":"c910f2696428ad95572b039a5eb680b012cdaad4"}],"swift/common/utils.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98a66a8eb1646b4f7134a0eec96786dd8d28396a","unresolved":true,"context_lines":[{"line_number":6740,"context_line":"        try:"},{"line_number":6741,"context_line":"            self.emit_timeout \u003d config_float_value(emit_timeout, 0)"},{"line_number":6742,"context_line":"        except ValueError:"},{"line_number":6743,"context_line":"            self.emit_timeout \u003d 0"},{"line_number":6744,"context_line":""},{"line_number":6745,"context_line":"    def createLock(self):"},{"line_number":6746,"context_line":"        if config_true_value(os.environ.get("}],"source_content_type":"text/x-python","patch_set":2,"id":"27d70965_a692cf92","line":6743,"updated":"2023-04-04 14:49:15.000000000","message":"i think maybe better to let the value error pop out, having it silently noop might be more confusing to debug","commit_id":"c910f2696428ad95572b039a5eb680b012cdaad4"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98a66a8eb1646b4f7134a0eec96786dd8d28396a","unresolved":true,"context_lines":[{"line_number":6770,"context_line":"            prio \u003d prio.encode(\u0027utf-8\u0027)"},{"line_number":6771,"context_line":"            # Message is a string. Convert to bytes as required by RFC 5424"},{"line_number":6772,"context_line":"            msg \u003d msg.encode(\u0027utf-8\u0027)"},{"line_number":6773,"context_line":"            msg \u003d prio + msg"},{"line_number":6774,"context_line":"            if self.unixsocket:"},{"line_number":6775,"context_line":"                try:"},{"line_number":6776,"context_line":"                    if self.emit_timeout:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ab1b0609_1c6a6c66","line":6773,"updated":"2023-04-04 14:49:15.000000000","message":"I don\u0027t like to see all this cargo-cult, maybe just have this emit wrap a timeout around a call into super.emit","commit_id":"c910f2696428ad95572b039a5eb680b012cdaad4"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98a66a8eb1646b4f7134a0eec96786dd8d28396a","unresolved":true,"context_lines":[{"line_number":6777,"context_line":"                        with Timeout(self.emit_timeout):"},{"line_number":6778,"context_line":"                            self.socket.send(msg)"},{"line_number":6779,"context_line":"                    else:"},{"line_number":6780,"context_line":"                        self.socket.send(msg)"},{"line_number":6781,"context_line":"                except (OSError, IOError, Timeout):"},{"line_number":6782,"context_line":"                    # IOError is the base class for socket.error in py2"},{"line_number":6783,"context_line":"                    self.socket.close()"}],"source_content_type":"text/x-python","patch_set":2,"id":"51d4c21d_9d0a81bd","line":6780,"updated":"2023-04-04 14:49:15.000000000","message":"so you\u0027ve inlined most of this so you can add this with Timeout here","commit_id":"c910f2696428ad95572b039a5eb680b012cdaad4"}]}
