)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"13db7ee716a4a51b24499917f61af6b802600cc9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"19c89df1_db6ade36","updated":"2022-06-16 18:09:42.000000000","message":"Fancy. Can we test this somehow?","commit_id":"650e65f246552411651316228bd7cab91774476e"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8bd53343b16fc3390afa83a6235b3e9f1777e50d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7b401ca7_fa475809","in_reply_to":"19c89df1_db6ade36","updated":"2022-06-16 18:10:14.000000000","message":"Perhaps we could add a \"PleasePanic\" RPC to the debug service?","commit_id":"650e65f246552411651316228bd7cab91774476e"}],"metropolis/node/core/panichandler.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":"885a5f17f536c09ce833fac40201c2760ea3c54e","unresolved":true,"context_lines":[{"line_number":67,"context_line":"\t\treturn"},{"line_number":68,"context_line":"\t}"},{"line_number":69,"context_line":"\truntimeFd \u003d *file"},{"line_number":70,"context_line":"\t// Make sure the Fd is in blocking mode. This means that runtimeFd.Fd() in"},{"line_number":71,"context_line":"\t// runtimeWrite does not have any side effects. Keeping the raw fd is not"},{"line_number":72,"context_line":"\t// possible as Go\u0027s runtime would eventually garbage-collect the backing"},{"line_number":73,"context_line":"\t// os.File."}],"source_content_type":"text/x-go","patch_set":2,"id":"a3848ceb_6b8f31b4","line":70,"range":{"start_line":70,"start_character":4,"end_line":70,"end_character":41},"updated":"2022-06-20 10:36:17.000000000","message":"I don\u0027t understand what\u0027s going on here. Can you explain what \u0027blocking mode\u0027 is and how calling \u0027.Fd()\u0027 relates to that?","commit_id":"650e65f246552411651316228bd7cab91774476e"},{"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":"265c927f4c41e7a4ee936a4dfcadee1bda212989","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\t\treturn"},{"line_number":68,"context_line":"\t}"},{"line_number":69,"context_line":"\truntimeFd \u003d *file"},{"line_number":70,"context_line":"\t// Make sure the Fd is in blocking mode. This means that runtimeFd.Fd() in"},{"line_number":71,"context_line":"\t// runtimeWrite does not have any side effects. Keeping the raw fd is not"},{"line_number":72,"context_line":"\t// possible as Go\u0027s runtime would eventually garbage-collect the backing"},{"line_number":73,"context_line":"\t// os.File."}],"source_content_type":"text/x-go","patch_set":2,"id":"5f99778e_d6e48494","line":70,"range":{"start_line":70,"start_character":4,"end_line":70,"end_character":41},"in_reply_to":"2db5aa8a_8e45d096","updated":"2022-06-21 11:27:28.000000000","message":"Done","commit_id":"650e65f246552411651316228bd7cab91774476e"},{"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":"8c8bcfc61dbc6bebaa89aaf269ed675612c76966","unresolved":true,"context_lines":[{"line_number":67,"context_line":"\t\treturn"},{"line_number":68,"context_line":"\t}"},{"line_number":69,"context_line":"\truntimeFd \u003d *file"},{"line_number":70,"context_line":"\t// Make sure the Fd is in blocking mode. This means that runtimeFd.Fd() in"},{"line_number":71,"context_line":"\t// runtimeWrite does not have any side effects. Keeping the raw fd is not"},{"line_number":72,"context_line":"\t// possible as Go\u0027s runtime would eventually garbage-collect the backing"},{"line_number":73,"context_line":"\t// os.File."}],"source_content_type":"text/x-go","patch_set":2,"id":"2db5aa8a_8e45d096","line":70,"range":{"start_line":70,"start_character":4,"end_line":70,"end_character":41},"in_reply_to":"3417ca83_5bc134d4","updated":"2022-06-21 11:05:19.000000000","message":"Please describe this in the comment.","commit_id":"650e65f246552411651316228bd7cab91774476e"},{"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":"eaad7e7d62dbf0f6cb883312717fd8c329e92974","unresolved":true,"context_lines":[{"line_number":67,"context_line":"\t\treturn"},{"line_number":68,"context_line":"\t}"},{"line_number":69,"context_line":"\truntimeFd \u003d *file"},{"line_number":70,"context_line":"\t// Make sure the Fd is in blocking mode. This means that runtimeFd.Fd() in"},{"line_number":71,"context_line":"\t// runtimeWrite does not have any side effects. Keeping the raw fd is not"},{"line_number":72,"context_line":"\t// possible as Go\u0027s runtime would eventually garbage-collect the backing"},{"line_number":73,"context_line":"\t// os.File."}],"source_content_type":"text/x-go","patch_set":2,"id":"3417ca83_5bc134d4","line":70,"range":{"start_line":70,"start_character":4,"end_line":70,"end_character":41},"in_reply_to":"a3848ceb_6b8f31b4","updated":"2022-06-20 11:46:53.000000000","message":"Go (as of ~1.11) opens all underlying FDs with O_NONBLOCK. This interferes with the expectations of other code that the FD behaves \"normally\". So the first time Fd() is called on an os.File Go switches it back to blocking mode. Switching this entails a syscall (a non-raw one) which involves the Go scheduler and other more global resources. Calling Fd() here performs all this work before an eventual panic. This makes Fd() just perform a memory access at the time a panic is logged.","commit_id":"650e65f246552411651316228bd7cab91774476e"}]}
