)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"96c5a7698efe9fdcf6b0feb9cc161634f8b27aa3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1abb21d2_be390edf","updated":"2023-03-22 10:21:33.000000000","message":"One more nit, otherwise this is now good","commit_id":"e0966bccef0c1b212ad4de5ac5ec744a9d6b3e5d"}],"go/net/tinylb/connection_pool.go":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"29b046bcfd117f24d5360c84d2ad539b7635d84c","unresolved":true,"context_lines":[{"line_number":25,"context_line":"\t// connsById maps connection IDs back to underlying connections."},{"line_number":26,"context_line":"\tconnsById map[int64]net.Conn"},{"line_number":27,"context_line":"\t// targetsById maps connections IDs to the backend target name."},{"line_number":28,"context_line":"\ttargetsById map[int64]string"},{"line_number":29,"context_line":"\t// idsByTarget maps a target name to all connection IDs that opened to it."},{"line_number":30,"context_line":"\tidsByTarget map[string][]int64"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-go","patch_set":7,"id":"b24a95eb_da622a6d","line":28,"range":{"start_line":28,"start_character":1,"end_line":28,"end_character":12},"updated":"2023-03-21 17:31:59.000000000","message":"I noticed that connsById and targetsById both share a key and are always operated on together. It might be beneficial to have a (potentially anonymous) struct as the value of one map. Not sure if this is a worthwhile optimization so I\u0027ll leave it up top you.","commit_id":"687de5beb44199dcd9f3bf9c4b26d35b82edc085"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4ccba1b22f64355d95bf967e0162b299670783d6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\t// connsById maps connection IDs back to underlying connections."},{"line_number":26,"context_line":"\tconnsById map[int64]net.Conn"},{"line_number":27,"context_line":"\t// targetsById maps connections IDs to the backend target name."},{"line_number":28,"context_line":"\ttargetsById map[int64]string"},{"line_number":29,"context_line":"\t// idsByTarget maps a target name to all connection IDs that opened to it."},{"line_number":30,"context_line":"\tidsByTarget map[string][]int64"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-go","patch_set":7,"id":"ca66d62f_28bd4f02","line":28,"range":{"start_line":28,"start_character":1,"end_line":28,"end_character":12},"in_reply_to":"b24a95eb_da622a6d","updated":"2023-03-21 22:50:26.000000000","message":"Done","commit_id":"687de5beb44199dcd9f3bf9c4b26d35b82edc085"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"96c5a7698efe9fdcf6b0feb9cc161634f8b27aa3","unresolved":true,"context_lines":[{"line_number":87,"context_line":"\t\t}"},{"line_number":88,"context_line":"\t}"},{"line_number":89,"context_line":"\tif ix \u003d\u003d -1 {"},{"line_number":90,"context_line":"\t\tpanic(\"Programming error: connection present in targetsById but not in idsByTarget\")"},{"line_number":91,"context_line":"\t}"},{"line_number":92,"context_line":"\tc.idsByTarget[cd.target] \u003d append(ids[:ix], ids[ix+1:]...)"},{"line_number":93,"context_line":"\tcd.conn.Close()"}],"source_content_type":"text/x-go","patch_set":9,"id":"2e08c1ad_60ec2113","line":90,"range":{"start_line":90,"start_character":50,"end_line":90,"end_character":61},"updated":"2023-03-22 10:21:33.000000000","message":"detailsById","commit_id":"e0966bccef0c1b212ad4de5ac5ec744a9d6b3e5d"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9e49f8f334e02aa35c8c4495f4331c0d9ca2b3a6","unresolved":false,"context_lines":[{"line_number":87,"context_line":"\t\t}"},{"line_number":88,"context_line":"\t}"},{"line_number":89,"context_line":"\tif ix \u003d\u003d -1 {"},{"line_number":90,"context_line":"\t\tpanic(\"Programming error: connection present in targetsById but not in idsByTarget\")"},{"line_number":91,"context_line":"\t}"},{"line_number":92,"context_line":"\tc.idsByTarget[cd.target] \u003d append(ids[:ix], ids[ix+1:]...)"},{"line_number":93,"context_line":"\tcd.conn.Close()"}],"source_content_type":"text/x-go","patch_set":9,"id":"c492489b_76bdd84f","line":90,"range":{"start_line":90,"start_character":50,"end_line":90,"end_character":61},"in_reply_to":"2e08c1ad_60ec2113","updated":"2023-03-22 11:09:56.000000000","message":"Done","commit_id":"e0966bccef0c1b212ad4de5ac5ec744a9d6b3e5d"}],"go/net/tinylb/tinylb.go":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"29b046bcfd117f24d5360c84d2ad539b7635d84c","unresolved":true,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// BackendSet is the main structure used to provide the current set of backends"},{"line_number":24,"context_line":"// that should be targeted by tinylb. The key is some unique backend identifier."},{"line_number":25,"context_line":"type BackendSet \u003d mapsets.OrderedMap[string, Backend]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"// Backend is to be implemented by different kinds of loadbalancing backends, eg."},{"line_number":28,"context_line":"// one per network protocol."}],"source_content_type":"text/x-go","patch_set":8,"id":"b6365330_e3187520","line":25,"range":{"start_line":25,"start_character":5,"end_line":25,"end_character":15},"updated":"2023-03-21 17:31:59.000000000","message":"Reorder after Backend?","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4ccba1b22f64355d95bf967e0162b299670783d6","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// BackendSet is the main structure used to provide the current set of backends"},{"line_number":24,"context_line":"// that should be targeted by tinylb. The key is some unique backend identifier."},{"line_number":25,"context_line":"type BackendSet \u003d mapsets.OrderedMap[string, Backend]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"// Backend is to be implemented by different kinds of loadbalancing backends, eg."},{"line_number":28,"context_line":"// one per network protocol."}],"source_content_type":"text/x-go","patch_set":8,"id":"1b8b3baf_0b462f98","line":25,"range":{"start_line":25,"start_character":5,"end_line":25,"end_character":15},"in_reply_to":"b6365330_e3187520","updated":"2023-03-21 22:50:26.000000000","message":"Done","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"29b046bcfd117f24d5360c84d2ad539b7635d84c","unresolved":true,"context_lines":[{"line_number":60,"context_line":"type Server struct {"},{"line_number":61,"context_line":"\t// Provider is some event Value which provides the current BackendSet for the"},{"line_number":62,"context_line":"\t// loadbalancer to use. As the BackendSet is updated, the internal loadbalancing"},{"line_number":63,"context_line":"\t// algorithm will be reflected to update this set, and any connections to backend"},{"line_number":64,"context_line":"\t// TargetNames that are not present in the set anymore will be closed."},{"line_number":65,"context_line":"\tProvider event.Value[BackendSet]"},{"line_number":66,"context_line":"\t// Listener is where the loadbalancer will listen on. After the loadbalancer"}],"source_content_type":"text/x-go","patch_set":8,"id":"7d85a5dd_8972ac30","line":63,"range":{"start_line":63,"start_character":14,"end_line":63,"end_character":50},"updated":"2023-03-21 17:31:59.000000000","message":"```suggestion\n\t// algorithm will adjust to the updated set, and any connections to backend\n```","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4ccba1b22f64355d95bf967e0162b299670783d6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"type Server struct {"},{"line_number":61,"context_line":"\t// Provider is some event Value which provides the current BackendSet for the"},{"line_number":62,"context_line":"\t// loadbalancer to use. As the BackendSet is updated, the internal loadbalancing"},{"line_number":63,"context_line":"\t// algorithm will be reflected to update this set, and any connections to backend"},{"line_number":64,"context_line":"\t// TargetNames that are not present in the set anymore will be closed."},{"line_number":65,"context_line":"\tProvider event.Value[BackendSet]"},{"line_number":66,"context_line":"\t// Listener is where the loadbalancer will listen on. After the loadbalancer"}],"source_content_type":"text/x-go","patch_set":8,"id":"e55a4d93_146750f7","line":63,"range":{"start_line":63,"start_character":14,"end_line":63,"end_character":50},"in_reply_to":"7d85a5dd_8972ac30","updated":"2023-03-21 22:50:26.000000000","message":"Done","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"29b046bcfd117f24d5360c84d2ad539b7635d84c","unresolved":true,"context_lines":[{"line_number":95,"context_line":"\t\tfor {"},{"line_number":96,"context_line":"\t\t\tconn, err :\u003d s.Listener.Accept()"},{"line_number":97,"context_line":"\t\t\tif err !\u003d nil {"},{"line_number":98,"context_line":"\t\t\t\tif ctx.Err() !\u003d nil {"},{"line_number":99,"context_line":"\t\t\t\t\treturn err"},{"line_number":100,"context_line":"\t\t\t\t}"},{"line_number":101,"context_line":"\t\t\t\treturn err"},{"line_number":102,"context_line":"\t\t\t}"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"\t\t\t// Get next backend."}],"source_content_type":"text/x-go","patch_set":8,"id":"4acc124f_f68d407d","line":101,"range":{"start_line":98,"start_character":4,"end_line":101,"end_character":14},"updated":"2023-03-21 17:31:59.000000000","message":"This doesn\u0027t make sense to me. Maybe you wanted to return `ctx.Err()` in the first return statement? But even then you probably want to exit the loop in case of a context cancel irrespectively of the return value of Accept().","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4ccba1b22f64355d95bf967e0162b299670783d6","unresolved":false,"context_lines":[{"line_number":95,"context_line":"\t\tfor {"},{"line_number":96,"context_line":"\t\t\tconn, err :\u003d s.Listener.Accept()"},{"line_number":97,"context_line":"\t\t\tif err !\u003d nil {"},{"line_number":98,"context_line":"\t\t\t\tif ctx.Err() !\u003d nil {"},{"line_number":99,"context_line":"\t\t\t\t\treturn err"},{"line_number":100,"context_line":"\t\t\t\t}"},{"line_number":101,"context_line":"\t\t\t\treturn err"},{"line_number":102,"context_line":"\t\t\t}"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"\t\t\t// Get next backend."}],"source_content_type":"text/x-go","patch_set":8,"id":"a3e214e2_f587fb2e","line":101,"range":{"start_line":98,"start_character":4,"end_line":101,"end_character":14},"in_reply_to":"4acc124f_f68d407d","updated":"2023-03-21 22:50:26.000000000","message":"Done","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"29b046bcfd117f24d5360c84d2ad539b7635d84c","unresolved":true,"context_lines":[{"line_number":114,"context_line":"\t\t\t// Dial backend."},{"line_number":115,"context_line":"\t\t\tr, err :\u003d backend.Dial()"},{"line_number":116,"context_line":"\t\t\tif err !\u003d nil {"},{"line_number":117,"context_line":"\t\t\t\tsupervisor.Logger(ctx).Warningf(\"Balancing %s: failed tue to backend %s error: %v\", conn.RemoteAddr(), id, err)"},{"line_number":118,"context_line":"\t\t\t\tconn.Close()"},{"line_number":119,"context_line":"\t\t\t\tcontinue"},{"line_number":120,"context_line":"\t\t\t}"}],"source_content_type":"text/x-go","patch_set":8,"id":"81e1a232_070e9670","line":117,"range":{"start_line":117,"start_character":58,"end_line":117,"end_character":61},"updated":"2023-03-21 17:31:59.000000000","message":"```suggestion\n\t\t\t\tsupervisor.Logger(ctx).Warningf(\"Balancing %s: failed due to backend %s error: %v\", conn.RemoteAddr(), id, err)\n```","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4ccba1b22f64355d95bf967e0162b299670783d6","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\t\t\t// Dial backend."},{"line_number":115,"context_line":"\t\t\tr, err :\u003d backend.Dial()"},{"line_number":116,"context_line":"\t\t\tif err !\u003d nil {"},{"line_number":117,"context_line":"\t\t\t\tsupervisor.Logger(ctx).Warningf(\"Balancing %s: failed tue to backend %s error: %v\", conn.RemoteAddr(), id, err)"},{"line_number":118,"context_line":"\t\t\t\tconn.Close()"},{"line_number":119,"context_line":"\t\t\t\tcontinue"},{"line_number":120,"context_line":"\t\t\t}"}],"source_content_type":"text/x-go","patch_set":8,"id":"9a373557_c58379c9","line":117,"range":{"start_line":117,"start_character":58,"end_line":117,"end_character":61},"in_reply_to":"81e1a232_070e9670","updated":"2023-03-21 22:50:26.000000000","message":"Done","commit_id":"dd1cae1438efce793cedf588cd92a133b787fa36"}]}
