)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2aae667393991f673df18beb7b40892141489827","unresolved":true,"context_lines":[{"line_number":7,"context_line":"trivial: Inline add_keepalives decorator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is only used twice. Inlining its functionality makes the users"},{"line_number":10,"context_line":"simpler to grok at a slight *decrease* in LOC count."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5df10cdca8fc6f5e64f4eb7b0b1a2409cbca1293"},{"line_number":13,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f829fcda_f94c553b","line":10,"updated":"2026-05-01 16:36:26.000000000","message":"it was out of line because i didnt want to duplciate the code.","commit_id":"c9df0e87951f7336ba33ae9ee2f68c57b09c6741"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d617ba544631d7982ba0c70eb047ab5a89e5ca9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"trivial: Inline add_keepalives decorator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is only used twice. Inlining its functionality makes the users"},{"line_number":10,"context_line":"simpler to grok at a slight *decrease* in LOC count."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5df10cdca8fc6f5e64f4eb7b0b1a2409cbca1293"},{"line_number":13,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ec7ed8c9_43e7a743","line":10,"in_reply_to":"f829fcda_f94c553b","updated":"2026-05-01 17:00:49.000000000","message":"[It\u0027s only used twice](https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming) and the bit of duplication makes this much easier to read, but okay, if you insist.","commit_id":"c9df0e87951f7336ba33ae9ee2f68c57b09c6741"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2aae667393991f673df18beb7b40892141489827","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0c18c401_b29d368d","updated":"2026-05-01 16:36:26.000000000","message":"i would prefer to not do this","commit_id":"c9df0e87951f7336ba33ae9ee2f68c57b09c6741"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b7302755b54bb5d114667c0e686fb04f323c7f03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7207ea96_17c35234","updated":"2026-05-06 13:21:21.000000000","message":"ok i guess if someone report it in the future we can backport it then","commit_id":"bde5c2954e496a690a0a1901b81ecc9d5ed6024c"}],"vif_plug_ovs/ovsdb/impl_idl.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"83df142364a54b2b3c0d69edde6d93b70ba4a9e0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"class TCPStream(stream.TCPStream, NoProbesMixin):"},{"line_number":80,"context_line":"    @classmethod"},{"line_number":81,"context_line":"    def _open(cls, suffix, dscp):"},{"line_number":82,"context_line":"        error, sock \u003d super()._open(suffix, dscp)"},{"line_number":83,"context_line":"        if error:"},{"line_number":84,"context_line":"            return error, sock"},{"line_number":85,"context_line":"        error \u003d add_keepalives(sock)"},{"line_number":86,"context_line":"        return error, sock"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7076e222_4e2053d4","line":84,"range":{"start_line":82,"start_character":49,"end_line":84,"end_character":30},"updated":"2026-05-01 17:09:10.000000000","message":"This was a bug in the original code.","commit_id":"bde5c2954e496a690a0a1901b81ecc9d5ed6024c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7cb94455acc6d3759368dfeb19028b158a7043e6","unresolved":true,"context_lines":[{"line_number":79,"context_line":"class TCPStream(stream.TCPStream, NoProbesMixin):"},{"line_number":80,"context_line":"    @classmethod"},{"line_number":81,"context_line":"    def _open(cls, suffix, dscp):"},{"line_number":82,"context_line":"        error, sock \u003d super()._open(suffix, dscp)"},{"line_number":83,"context_line":"        if error:"},{"line_number":84,"context_line":"            return error, sock"},{"line_number":85,"context_line":"        error \u003d add_keepalives(sock)"},{"line_number":86,"context_line":"        return error, sock"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bc582af7_0b51cc43","line":84,"range":{"start_line":82,"start_character":49,"end_line":84,"end_character":30},"in_reply_to":"69d89934_d01762df","updated":"2026-05-06 13:06:25.000000000","message":"In theory we should, but if no one has hit this so far I\u0027m not sure it\u0027s worth the effort? I can post a fix for neutron though","commit_id":"bde5c2954e496a690a0a1901b81ecc9d5ed6024c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6ead0268713170766f6426dfa855c0dbcda1f45e","unresolved":true,"context_lines":[{"line_number":79,"context_line":"class TCPStream(stream.TCPStream, NoProbesMixin):"},{"line_number":80,"context_line":"    @classmethod"},{"line_number":81,"context_line":"    def _open(cls, suffix, dscp):"},{"line_number":82,"context_line":"        error, sock \u003d super()._open(suffix, dscp)"},{"line_number":83,"context_line":"        if error:"},{"line_number":84,"context_line":"            return error, sock"},{"line_number":85,"context_line":"        error \u003d add_keepalives(sock)"},{"line_number":86,"context_line":"        return error, sock"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fafc9e59_9aa5a4e8","line":84,"range":{"start_line":82,"start_character":49,"end_line":84,"end_character":30},"in_reply_to":"7076e222_4e2053d4","updated":"2026-05-06 12:56:10.000000000","message":"in the neutorn code \n\nthe bug being that socket migyt be None? \n\nthis was originally a direct port of the neutron code so we kept the decorator pattern to have the two be the saem\n\nhttps://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py#L77\n\nit looks like the socket access if ti is a bug is still present there.\n\nLooking athe the ovs code\n\nhttps://github.com/openvswitch/ovs/blob/main/python/ovs/stream.py#L761\nthe do have a similar if\n\nit woudl be good to actully file a bug for this and tag neturon","commit_id":"bde5c2954e496a690a0a1901b81ecc9d5ed6024c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"77304ebde3bf1ed5d63ff6d7fd64cfb2fd0c6069","unresolved":false,"context_lines":[{"line_number":79,"context_line":"class TCPStream(stream.TCPStream, NoProbesMixin):"},{"line_number":80,"context_line":"    @classmethod"},{"line_number":81,"context_line":"    def _open(cls, suffix, dscp):"},{"line_number":82,"context_line":"        error, sock \u003d super()._open(suffix, dscp)"},{"line_number":83,"context_line":"        if error:"},{"line_number":84,"context_line":"            return error, sock"},{"line_number":85,"context_line":"        error \u003d add_keepalives(sock)"},{"line_number":86,"context_line":"        return error, sock"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"840c8694_80ef4838","line":84,"range":{"start_line":82,"start_character":49,"end_line":84,"end_character":30},"in_reply_to":"bc582af7_0b51cc43","updated":"2026-05-06 13:12:35.000000000","message":"https://review.opendev.org/c/openstack/neutron/+/987498","commit_id":"bde5c2954e496a690a0a1901b81ecc9d5ed6024c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"86a8577b47c4cfed7319b8b0966460ab153c9b4b","unresolved":true,"context_lines":[{"line_number":79,"context_line":"class TCPStream(stream.TCPStream, NoProbesMixin):"},{"line_number":80,"context_line":"    @classmethod"},{"line_number":81,"context_line":"    def _open(cls, suffix, dscp):"},{"line_number":82,"context_line":"        error, sock \u003d super()._open(suffix, dscp)"},{"line_number":83,"context_line":"        if error:"},{"line_number":84,"context_line":"            return error, sock"},{"line_number":85,"context_line":"        error \u003d add_keepalives(sock)"},{"line_number":86,"context_line":"        return error, sock"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"69d89934_d01762df","line":84,"range":{"start_line":82,"start_character":49,"end_line":84,"end_character":30},"in_reply_to":"fafc9e59_9aa5a4e8","updated":"2026-05-06 12:56:53.000000000","message":"if we are doing this it shoudl be backported.","commit_id":"bde5c2954e496a690a0a1901b81ecc9d5ed6024c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"83df142364a54b2b3c0d69edde6d93b70ba4a9e0","unresolved":false,"context_lines":[{"line_number":89,"context_line":"class SSLStream(stream.SSLStream, NoProbesMixin):"},{"line_number":90,"context_line":"    @classmethod"},{"line_number":91,"context_line":"    def _open(cls, suffix, dscp):"},{"line_number":92,"context_line":"        error, sock \u003d super()._open(suffix, dscp)"},{"line_number":93,"context_line":"        if error:"},{"line_number":94,"context_line":"            return error, sock"},{"line_number":95,"context_line":"        error \u003d add_keepalives(sock)"},{"line_number":96,"context_line":"        return error, sock"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"e29aa898_6c5056ec","line":94,"range":{"start_line":92,"start_character":49,"end_line":94,"end_character":30},"updated":"2026-05-01 17:09:10.000000000","message":"Ditto","commit_id":"bde5c2954e496a690a0a1901b81ecc9d5ed6024c"}]}
