)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4135f054c21dfcd42a9c2276f4137a035ed940f1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b3240c2c_515db7fd","updated":"2023-10-04 15:38:06.000000000","message":"I did find one issue while deploying:\n```\n          supervisor E root.role.kubernetes.controller.run.metricsproxy: could not run sub-service\n                     | \"kubernetes-scheduler\": cannot run new runnable on non-NEW node\n```","commit_id":"3982b19fd842d8c350165bfd85e29008aa63d4af"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94643f461d7702203218541f090416cac5b07a8d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"89e6e3f0_9df73bbb","in_reply_to":"b3240c2c_515db7fd","updated":"2023-10-04 16:15:51.000000000","message":"Done","commit_id":"3982b19fd842d8c350165bfd85e29008aa63d4af"}],"metropolis/node/core/metrics/discovery.go":[{"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":"fb34e04ecb0eb07feba62ab4d681c33a4b719398","unresolved":true,"context_lines":[{"line_number":82,"context_line":"\t\ts.sdRespMtx.Lock()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"\t\t// reset the existing response slice"},{"line_number":85,"context_line":"\t\ts.sdResp \u003d s.sdResp[:0]"},{"line_number":86,"context_line":"\t\tfor _, n :\u003d range nodes {"},{"line_number":87,"context_line":"\t\t\t// Only care about nodes that have all required configuration set."},{"line_number":88,"context_line":"\t\t\tif n.Status \u003d\u003d nil || n.Status.ExternalAddress \u003d\u003d \"\" || n.Roles \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":4,"id":"1dfbde28_4bb81e78","line":85,"updated":"2023-08-29 11:33:24.000000000","message":"Why not `s.sdResp \u003d nil`?","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b483e87cd63852f81d5d94a105ec1f5fb5d1cbc4","unresolved":false,"context_lines":[{"line_number":82,"context_line":"\t\ts.sdRespMtx.Lock()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"\t\t// reset the existing response slice"},{"line_number":85,"context_line":"\t\ts.sdResp \u003d s.sdResp[:0]"},{"line_number":86,"context_line":"\t\tfor _, n :\u003d range nodes {"},{"line_number":87,"context_line":"\t\t\t// Only care about nodes that have all required configuration set."},{"line_number":88,"context_line":"\t\t\tif n.Status \u003d\u003d nil || n.Status.ExternalAddress \u003d\u003d \"\" || n.Roles \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":4,"id":"8e80dc66_4f207189","line":85,"in_reply_to":"1dfbde28_4bb81e78","updated":"2023-08-29 17:56:13.000000000","message":"Didnt want to reallocate the underlying array but since we arent doing that anyway. Lets just reduce complexity 😊","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"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":"fb34e04ecb0eb07feba62ab4d681c33a4b719398","unresolved":true,"context_lines":[{"line_number":110,"context_line":"\t// If sdResp is nil, which only happens if we are not a master node"},{"line_number":111,"context_line":"\t// or we are still booting, we respond with NotImplemented."},{"line_number":112,"context_line":"\tif s.sdResp \u003d\u003d nil {"},{"line_number":113,"context_line":"\t\tw.WriteHeader(http.StatusNotImplemented)"},{"line_number":114,"context_line":"\t\treturn"},{"line_number":115,"context_line":"\t}"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":4,"id":"22edcb91_f971abfa","line":113,"range":{"start_line":113,"start_character":21,"end_line":113,"end_character":41},"updated":"2023-08-29 11:33:24.000000000","message":"501 is cacheable by default, perhaps we want to use 503 or use cache control?\n\nhttps://datatracker.ietf.org/doc/html/rfc7231#section-6.6.2","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b483e87cd63852f81d5d94a105ec1f5fb5d1cbc4","unresolved":false,"context_lines":[{"line_number":110,"context_line":"\t// If sdResp is nil, which only happens if we are not a master node"},{"line_number":111,"context_line":"\t// or we are still booting, we respond with NotImplemented."},{"line_number":112,"context_line":"\tif s.sdResp \u003d\u003d nil {"},{"line_number":113,"context_line":"\t\tw.WriteHeader(http.StatusNotImplemented)"},{"line_number":114,"context_line":"\t\treturn"},{"line_number":115,"context_line":"\t}"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":4,"id":"f4a57a10_4adca986","line":113,"range":{"start_line":113,"start_character":21,"end_line":113,"end_character":41},"in_reply_to":"22edcb91_f971abfa","updated":"2023-08-29 17:56:13.000000000","message":"Done","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"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":"ba3d99a899bc7358172dd343cffd07affbd166e5","unresolved":true,"context_lines":[{"line_number":29,"context_line":"\tLabels  map[string]string `json:\"labels\"`"},{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"// Run is the sub-runnable responsible for fetching node updates."},{"line_number":33,"context_line":"func (s *Discovery) Run(ctx context.Context) error {"},{"line_number":34,"context_line":"\tsupervisor.Signal(ctx, supervisor.SignalHealthy)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-go","patch_set":9,"id":"6b17c2bb_64fdd035","line":32,"updated":"2023-10-10 11:09:37.000000000","message":"... and serving ...","commit_id":"3982b19fd842d8c350165bfd85e29008aa63d4af"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4fbb38e13156ddd5c0db8b9f343aa586a0d1d411","unresolved":false,"context_lines":[{"line_number":29,"context_line":"\tLabels  map[string]string `json:\"labels\"`"},{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"// Run is the sub-runnable responsible for fetching node updates."},{"line_number":33,"context_line":"func (s *Discovery) Run(ctx context.Context) error {"},{"line_number":34,"context_line":"\tsupervisor.Signal(ctx, supervisor.SignalHealthy)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-go","patch_set":9,"id":"0672e1b6_27e9c5f0","line":32,"in_reply_to":"6b17c2bb_64fdd035","updated":"2023-10-10 14:02:18.000000000","message":"Done","commit_id":"3982b19fd842d8c350165bfd85e29008aa63d4af"}],"metropolis/node/core/roleserve/worker_metrics.go":[{"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":"fb34e04ecb0eb07feba62ab4d681c33a4b719398","unresolved":true,"context_lines":[{"line_number":37,"context_line":"\tsvc :\u003d metrics.Service{"},{"line_number":38,"context_line":"\t\tCredentials: cc.credentials,"},{"line_number":39,"context_line":"\t\tDiscovery: metrics.Discovery{"},{"line_number":40,"context_line":"\t\t\t// We can always create a new curator client as it will only"},{"line_number":41,"context_line":"\t\t\t// be used when the runnable is started."},{"line_number":42,"context_line":"\t\t\tCurator: ipb.NewCuratorClient(cc.conn),"},{"line_number":43,"context_line":"\t\t},"},{"line_number":44,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":4,"id":"9a5cb874_e6ed5728","line":41,"range":{"start_line":40,"start_character":0,"end_line":41,"end_character":43},"updated":"2023-08-29 11:33:24.000000000","message":"A client stub (eg. a CuratorClient) is just a thin wrapper around a connection, so you can generally create as many of these as you wish anyway.","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b483e87cd63852f81d5d94a105ec1f5fb5d1cbc4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\tsvc :\u003d metrics.Service{"},{"line_number":38,"context_line":"\t\tCredentials: cc.credentials,"},{"line_number":39,"context_line":"\t\tDiscovery: metrics.Discovery{"},{"line_number":40,"context_line":"\t\t\t// We can always create a new curator client as it will only"},{"line_number":41,"context_line":"\t\t\t// be used when the runnable is started."},{"line_number":42,"context_line":"\t\t\tCurator: ipb.NewCuratorClient(cc.conn),"},{"line_number":43,"context_line":"\t\t},"},{"line_number":44,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":4,"id":"44cb55ed_2f27b825","line":41,"range":{"start_line":40,"start_character":0,"end_line":41,"end_character":43},"in_reply_to":"9a5cb874_e6ed5728","updated":"2023-08-29 17:56:13.000000000","message":"Ack","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"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":"fb34e04ecb0eb07feba62ab4d681c33a4b719398","unresolved":true,"context_lines":[{"line_number":43,"context_line":"\t\t},"},{"line_number":44,"context_line":"\t}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"\t// Channels are used as intermediaries between map stages and the final reduce,"},{"line_number":47,"context_line":"\t// which is okay as long as the entire tree restarts simultaneously (which we"},{"line_number":48,"context_line":"\t// ensure via RunGroup)."},{"line_number":49,"context_line":"\trolesC :\u003d make(chan *cpb.NodeRoles)"}],"source_content_type":"text/x-go","patch_set":4,"id":"3697f186_133816df","line":46,"updated":"2023-08-29 11:33:24.000000000","message":"Hold up, the logic below looks quite complex and I\u0027m not exactly sure what you\u0027re trying to achieve here. If you spell it out we can maybe find some simpler way?","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b483e87cd63852f81d5d94a105ec1f5fb5d1cbc4","unresolved":true,"context_lines":[{"line_number":43,"context_line":"\t\t},"},{"line_number":44,"context_line":"\t}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"\t// Channels are used as intermediaries between map stages and the final reduce,"},{"line_number":47,"context_line":"\t// which is okay as long as the entire tree restarts simultaneously (which we"},{"line_number":48,"context_line":"\t// ensure via RunGroup)."},{"line_number":49,"context_line":"\trolesC :\u003d make(chan *cpb.NodeRoles)"}],"source_content_type":"text/x-go","patch_set":4,"id":"f2d52fec_79ef2282","line":46,"in_reply_to":"3697f186_133816df","updated":"2023-08-29 17:56:13.000000000","message":"This part is why I wanted you to look over the change 😊 We only want to run the kubernetes endpoints when a local consensus exists, as only then it is possible to retrieve the certificates. This way too complicate piece of code is just to start the Kubernetes.Run runnable and stop it when the role is removed.","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94643f461d7702203218541f090416cac5b07a8d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"\t\t},"},{"line_number":44,"context_line":"\t}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"\t// Channels are used as intermediaries between map stages and the final reduce,"},{"line_number":47,"context_line":"\t// which is okay as long as the entire tree restarts simultaneously (which we"},{"line_number":48,"context_line":"\t// ensure via RunGroup)."},{"line_number":49,"context_line":"\trolesC :\u003d make(chan *cpb.NodeRoles)"}],"source_content_type":"text/x-go","patch_set":4,"id":"3c0f33a2_17810fe9","line":46,"in_reply_to":"f2d52fec_79ef2282","updated":"2023-10-04 16:15:51.000000000","message":"Done","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"},{"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":"ba3d99a899bc7358172dd343cffd07affbd166e5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"\t\t},"},{"line_number":44,"context_line":"\t}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"\t// Channels are used as intermediaries between map stages and the final reduce,"},{"line_number":47,"context_line":"\t// which is okay as long as the entire tree restarts simultaneously (which we"},{"line_number":48,"context_line":"\t// ensure via RunGroup)."},{"line_number":49,"context_line":"\trolesC :\u003d make(chan *cpb.NodeRoles)"}],"source_content_type":"text/x-go","patch_set":4,"id":"8b3c078e_6361d77a","line":46,"in_reply_to":"f2d52fec_79ef2282","updated":"2023-10-10 11:09:37.000000000","message":"Done","commit_id":"78b64c25aa1f3a0379762779627d487c81e61ab7"}],"metropolis/node/kubernetes/metricsproxy/metricsproxy.go":[{"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":"ba3d99a899bc7358172dd343cffd07affbd166e5","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"\tlogger.V(1).Infof(\"%s: forwarding %s to %s\", r.RemoteAddr, r.URL.String(), outreq.URL.String())"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"\tif r.ContentLength \u003d\u003d 0 {"},{"line_number":73,"context_line":"\t\toutreq.Body \u003d nil"},{"line_number":74,"context_line":"\t}"},{"line_number":75,"context_line":"\tif outreq.Body !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":11,"id":"45b9047d_8aa46e09","line":72,"updated":"2023-10-10 11:09:37.000000000","message":"Since we\u0027re only really supporting `GET /metrics`, we can probably simplify this to not include support for client bodies.","commit_id":"2ebe78ef1da93eb5d2f528d4b5e8ec8d674fafa1"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4fbb38e13156ddd5c0db8b9f343aa586a0d1d411","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"\tlogger.V(1).Infof(\"%s: forwarding %s to %s\", r.RemoteAddr, r.URL.String(), outreq.URL.String())"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"\tif r.ContentLength \u003d\u003d 0 {"},{"line_number":73,"context_line":"\t\toutreq.Body \u003d nil"},{"line_number":74,"context_line":"\t}"},{"line_number":75,"context_line":"\tif outreq.Body !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":11,"id":"4e4178f8_9f91359d","line":72,"in_reply_to":"45b9047d_8aa46e09","updated":"2023-10-10 14:02:18.000000000","message":"Yeah we could also remove that from the exporters forwarder too tbh.","commit_id":"2ebe78ef1da93eb5d2f528d4b5e8ec8d674fafa1"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b8ce54090b7011700f703d2db86d971342f3d8f2","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"\tlogger.V(1).Infof(\"%s: forwarding %s to %s\", r.RemoteAddr, r.URL.String(), outreq.URL.String())"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"\tif r.ContentLength \u003d\u003d 0 {"},{"line_number":73,"context_line":"\t\toutreq.Body \u003d nil"},{"line_number":74,"context_line":"\t}"},{"line_number":75,"context_line":"\tif outreq.Body !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":11,"id":"e09321d7_46c2f043","line":72,"in_reply_to":"4e4178f8_9f91359d","updated":"2023-10-10 16:46:56.000000000","message":"Done","commit_id":"2ebe78ef1da93eb5d2f528d4b5e8ec8d674fafa1"},{"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":"ba3d99a899bc7358172dd343cffd07affbd166e5","unresolved":true,"context_lines":[{"line_number":110,"context_line":"\t}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"\tgo func() {"},{"line_number":113,"context_line":"\t\t\u003c-ctx.Done()"},{"line_number":114,"context_line":"\t\tsrv.Close()"},{"line_number":115,"context_line":"\t}()"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":11,"id":"d699154b_66a564d7","line":113,"range":{"start_line":113,"start_character":2,"end_line":113,"end_character":14},"updated":"2023-10-10 11:09:37.000000000","message":"That should be already done by the supervisor.","commit_id":"2ebe78ef1da93eb5d2f528d4b5e8ec8d674fafa1"},{"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":"45bce7e4f8fa366025a14bbbf746e248c4c6b20b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"\t}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"\tgo func() {"},{"line_number":113,"context_line":"\t\t\u003c-ctx.Done()"},{"line_number":114,"context_line":"\t\tsrv.Close()"},{"line_number":115,"context_line":"\t}()"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":11,"id":"bc0fa11c_4f243652","line":113,"range":{"start_line":113,"start_character":2,"end_line":113,"end_character":14},"in_reply_to":"00fc1f59_1dbb57e4","updated":"2023-10-10 15:15:27.000000000","message":"Oh sorry, I misread this as a context cancel. Ignore me :).","commit_id":"2ebe78ef1da93eb5d2f528d4b5e8ec8d674fafa1"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4fbb38e13156ddd5c0db8b9f343aa586a0d1d411","unresolved":true,"context_lines":[{"line_number":110,"context_line":"\t}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"\tgo func() {"},{"line_number":113,"context_line":"\t\t\u003c-ctx.Done()"},{"line_number":114,"context_line":"\t\tsrv.Close()"},{"line_number":115,"context_line":"\t}()"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-go","patch_set":11,"id":"00fc1f59_1dbb57e4","line":113,"range":{"start_line":113,"start_character":2,"end_line":113,"end_character":14},"in_reply_to":"d699154b_66a564d7","updated":"2023-10-10 14:02:18.000000000","message":"How? This is running a different listener which isn\u0027t being closed elsewhere.","commit_id":"2ebe78ef1da93eb5d2f528d4b5e8ec8d674fafa1"}]}
