)]}'
{"/PATCHSET_LEVEL":[{"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":"ce016e83ea98ed8d078e5e968dca790e8fc9b8d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4018096b_e9c813f5","updated":"2021-12-16 11:01:13.000000000","message":"I\u0027m not sure I like the idea of rebooting instead of spinning/waiting forever - it effectively causes us to do an uncontrolled (non-exponentially-backed-off) retry loop of the entire installer logic, which might makes things worse in the long term (for example if we continue thrashing EFI variables we might make some firmware unhappy). \n\nIt also seems like it will make the life of the operator more painful, because they won\u0027t see the error unless they wait for a small n-second window where it\u0027s visible.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e615d68ed7d71b4e3e6494dc902d03d583b69495","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8c5e5372_59781740","updated":"2021-12-15 19:15:59.000000000","message":"This needs to go in after the deflaking patch, as it makes tests even flakier.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"f731cbdbde8fc983e0965e2739bbb51bab4400ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f1efd368_1df8ee75","in_reply_to":"4018096b_e9c813f5","updated":"2021-12-16 11:37:29.000000000","message":"Are there error conditions that are likely to resolve upon reboot? If not, halting may be more friendly.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4decf022752c2a03413456f888ceb96f07a73017","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6d896379_eb9a7846","updated":"2021-12-23 19:09:01.000000000","message":"changelog:\n- The commit message was updated to reflect current behavior (will hang after displaying status report)\n- The \"Installation completed\" installer message now includes a newline to flush the linebuffer.\n- runQemu function in the installer test was changed to use a buffered line channel to fix frequent deadlocks caused by the deffered outBuffer.Close calling the linebuffer\u0027s commitLine.","commit_id":"270842f11d99e5512bf57c54b75d8dd10c593ff6"},{"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":"9c6c96b6d37fb68b29e0ee85d307fd7ee1317065","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f694e45_9829fa0d","in_reply_to":"3557afb3_431aac6f","updated":"2021-12-24 12:17:27.000000000","message":"This is good enough.","commit_id":"270842f11d99e5512bf57c54b75d8dd10c593ff6"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"bd6172c27a1fbc178dcd87588f1d8e57b31178cb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3557afb3_431aac6f","in_reply_to":"6d896379_eb9a7846","updated":"2021-12-23 19:12:24.000000000","message":"Should this loop run in a separate goroutine instead?","commit_id":"270842f11d99e5512bf57c54b75d8dd10c593ff6"}],"metropolis/node/installer/main.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":"ce016e83ea98ed8d078e5e968dca790e8fc9b8d1","unresolved":true,"context_lines":[{"line_number":181,"context_line":"\t// Reboot on panic after a delay. The error string will have been printed"},{"line_number":182,"context_line":"\t// before recover is called."},{"line_number":183,"context_line":"\tdefer func() {"},{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"}],"source_content_type":"text/x-go","patch_set":2,"id":"d6f1768b_cb0fd16a","line":184,"range":{"start_line":184,"start_character":2,"end_line":184,"end_character":23},"updated":"2021-12-16 11:01:13.000000000","message":"Don\u0027t we want to print whatever has been recovered here, perhaps skipping if it was due to a log.Panicf? In case we have a panic for some other reason we\u0027ll silence whatever it was trying to tell us.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cca0a25a33c20140bd2da0230fed767132b6df3e","unresolved":true,"context_lines":[{"line_number":181,"context_line":"\t// Reboot on panic after a delay. The error string will have been printed"},{"line_number":182,"context_line":"\t// before recover is called."},{"line_number":183,"context_line":"\tdefer func() {"},{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"}],"source_content_type":"text/x-go","patch_set":2,"id":"fa72fd5c_3b645d1a","line":184,"range":{"start_line":184,"start_character":2,"end_line":184,"end_character":23},"in_reply_to":"d6f1768b_cb0fd16a","updated":"2021-12-16 17:19:01.000000000","message":"I\u0027ll look into this.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9b9047f59dac0069712892ed849e1649a633beff","unresolved":false,"context_lines":[{"line_number":181,"context_line":"\t// Reboot on panic after a delay. The error string will have been printed"},{"line_number":182,"context_line":"\t// before recover is called."},{"line_number":183,"context_line":"\tdefer func() {"},{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"}],"source_content_type":"text/x-go","patch_set":2,"id":"bd4006a4_19b56b5e","line":184,"range":{"start_line":184,"start_character":2,"end_line":184,"end_character":23},"in_reply_to":"fa72fd5c_3b645d1a","updated":"2021-12-23 19:09:29.000000000","message":"Done","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"f731cbdbde8fc983e0965e2739bbb51bab4400ef","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"ed19f41b_448b8690","line":187,"range":{"start_line":187,"start_character":20,"end_line":187,"end_character":44},"updated":"2021-12-16 11:37:29.000000000","message":"How about making this LINUX_REBOOT_CMD_HALT to resolve the concern of crash-looping?","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"ce016e83ea98ed8d078e5e968dca790e8fc9b8d1","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"10c9eb61_152e4124","line":187,"range":{"start_line":187,"start_character":3,"end_line":187,"end_character":14},"updated":"2021-12-16 11:01:13.000000000","message":"Is this synchronous? Any chance we can accidentally race to the kernel\u0027s \u0027init exited\u0027 handler instead of gracefully rebooting?","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"d8a9b64a67bcb804b49409495a20731651a33ce8","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"8bd188f1_a26c2ae5","line":187,"range":{"start_line":187,"start_character":3,"end_line":187,"end_character":14},"in_reply_to":"10c9eb61_152e4124","updated":"2021-12-16 11:34:51.000000000","message":"This sounds very synchronous, not even flushing buffers:\n\n  LINUX_REBOOT_CMD_RESTART\n    (RB_AUTOBOOT, 0x1234567).  The message \"Restarting\n    system.\" is printed, and a default restart is performed\n    immediately.  If not preceded by a sync(2), data will be\n    lost.\n\n\n(https://man7.org/linux/man-pages/man2/reboot.2.html)","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"9bca086efabdd846cfcbc0587435c040326790be","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"7c2b9bb9_c606e139","line":187,"range":{"start_line":187,"start_character":20,"end_line":187,"end_character":44},"in_reply_to":"56278afd_03eb6567","updated":"2021-12-17 11:49:01.000000000","message":"IMO making the installer have poor UX (and I do think rebooting automatically after a failure is poor UX) just to make our tests simpler is exactly the opposite of what we want to ship as a product, and definitely think the extra effort to either get output parsing to work correctly (or move away from output parsing to some other mechanism) is worth it.\n\nI\u0027ve filed a change to make the test harness look at streamed output instead of having to run qemu fully first: https://review.monogon.dev/c/monogon/+/490 . This should unblock this.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"97a18355fa33edff1565b534ff2408a0ccdc0152","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"ce41e787_dc72c2b6","line":187,"range":{"start_line":187,"start_character":20,"end_line":187,"end_character":44},"in_reply_to":"7c2b9bb9_c606e139","updated":"2021-12-17 13:49:19.000000000","message":"Cool. I\u0027ll rebase it on top of that and update the behavior here.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9b9047f59dac0069712892ed849e1649a633beff","unresolved":false,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"e711dfe3_9691fa11","line":187,"range":{"start_line":187,"start_character":3,"end_line":187,"end_character":14},"in_reply_to":"8bd188f1_a26c2ae5","updated":"2021-12-23 19:09:29.000000000","message":"Done","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"d41f0773e18836188a77b0abae608c9bc9e1c33f","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"f7f330a2_bbd7fd9c","line":187,"range":{"start_line":187,"start_character":20,"end_line":187,"end_character":44},"in_reply_to":"a6f8f4b4_d06ffc6f","updated":"2021-12-16 12:03:42.000000000","message":"Or well, just select{} I guess :-)\n\nI thought HALT would literally halt the system, and POWER_OFF would shut it down. But perhaps that\u0027s no longer the case on modern platforms?","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9b9047f59dac0069712892ed849e1649a633beff","unresolved":false,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"1ff311dc_b0bf791f","line":187,"range":{"start_line":187,"start_character":20,"end_line":187,"end_character":44},"in_reply_to":"ce41e787_dc72c2b6","updated":"2021-12-23 19:09:29.000000000","message":"Done","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"844be9df9d981645a298a6eff5dc048b0ea29f3f","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"a6f8f4b4_d06ffc6f","line":187,"range":{"start_line":187,"start_character":20,"end_line":187,"end_character":44},"in_reply_to":"ed19f41b_448b8690","updated":"2021-12-16 11:40:51.000000000","message":"I think I would find that even more confusing and unexpected, as that would just lead to a power off on most platforms.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cca0a25a33c20140bd2da0230fed767132b6df3e","unresolved":true,"context_lines":[{"line_number":184,"context_line":"\t\tif recover() !\u003d nil {"},{"line_number":185,"context_line":"\t\t\tlog.Print(\"The installation could not be finalized. This system will reboot in 3 seconds.\")"},{"line_number":186,"context_line":"\t\t\ttime.Sleep(3)"},{"line_number":187,"context_line":"\t\t\tunix.Reboot(unix.LINUX_REBOOT_CMD_RESTART)"},{"line_number":188,"context_line":"\t\t}"},{"line_number":189,"context_line":"\t}()"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-go","patch_set":2,"id":"56278afd_03eb6567","line":187,"range":{"start_line":187,"start_character":20,"end_line":187,"end_character":44},"in_reply_to":"f7f330a2_bbd7fd9c","updated":"2021-12-16 17:19:01.000000000","message":"The thing is, waiting indefinitely here would involve rewriting the test harness to handle Qemu serial output in realtime, assuming it would even flush this message reliably.\n\nOTOH it might turn out to be trivial, but I didn\u0027t want to get bogged down by opening yet another can of worms. I can change this if you\u0027ve got strong feelings about it.\n\nI\u0027d rather have the installer enter reboot loop than make an impression of doing something by halting, in the absence of console access.","commit_id":"1ba2a10f9aad9f7398fa647698f655e66ddbd19f"},{"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":"9c6c96b6d37fb68b29e0ee85d307fd7ee1317065","unresolved":true,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"// Panicf is a replacement for log.Panicf that doesn\u0027t print the error message"},{"line_number":180,"context_line":"// before calling panic."},{"line_number":181,"context_line":"func Panicf(format string, v ...interface{}) {"},{"line_number":182,"context_line":"\ts :\u003d fmt.Sprintf(format, v...)"},{"line_number":183,"context_line":"\tpanic(s)"},{"line_number":184,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"60497bfc_17420c2e","line":181,"range":{"start_line":181,"start_character":5,"end_line":181,"end_character":6},"updated":"2021-12-24 12:17:27.000000000","message":"Go: If you\u0027re not exporting this (and I don\u0027t think you are, considering this is a \u0027main\u0027 package), start this with a lower case letter.","commit_id":"270842f11d99e5512bf57c54b75d8dd10c593ff6"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1ed686ac8e38123c7a4f3491fbb21d2a29a52cd","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"// Panicf is a replacement for log.Panicf that doesn\u0027t print the error message"},{"line_number":180,"context_line":"// before calling panic."},{"line_number":181,"context_line":"func Panicf(format string, v ...interface{}) {"},{"line_number":182,"context_line":"\ts :\u003d fmt.Sprintf(format, v...)"},{"line_number":183,"context_line":"\tpanic(s)"},{"line_number":184,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"14d40e79_b27c8336","line":181,"range":{"start_line":181,"start_character":5,"end_line":181,"end_character":6},"in_reply_to":"60497bfc_17420c2e","updated":"2021-12-24 15:31:05.000000000","message":"oops","commit_id":"270842f11d99e5512bf57c54b75d8dd10c593ff6"}],"metropolis/test/installer/main.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":"9c6c96b6d37fb68b29e0ee85d307fd7ee1317065","unresolved":true,"context_lines":[{"line_number":88,"context_line":"\t// Since LineBuffer can write its buffered contents on a deferred Close,"},{"line_number":89,"context_line":"\t// after the reader loop is broken, avoid deadlocks by making lineC a"},{"line_number":90,"context_line":"\t// buffered channel."},{"line_number":91,"context_line":"\tlineC :\u003d make(chan string, 1)"},{"line_number":92,"context_line":"\toutBuffer :\u003d logbuffer.NewLineBuffer(1024, func(l *logbuffer.Line) {"},{"line_number":93,"context_line":"\t\tlineC \u003c- l.Data"},{"line_number":94,"context_line":"\t})"}],"source_content_type":"text/x-go","patch_set":3,"id":"781461b6_17ffdc0e","line":91,"range":{"start_line":91,"start_character":28,"end_line":91,"end_character":29},"updated":"2021-12-24 12:17:27.000000000","message":"2, because there\u0027s two things writing here.","commit_id":"270842f11d99e5512bf57c54b75d8dd10c593ff6"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1ed686ac8e38123c7a4f3491fbb21d2a29a52cd","unresolved":false,"context_lines":[{"line_number":88,"context_line":"\t// Since LineBuffer can write its buffered contents on a deferred Close,"},{"line_number":89,"context_line":"\t// after the reader loop is broken, avoid deadlocks by making lineC a"},{"line_number":90,"context_line":"\t// buffered channel."},{"line_number":91,"context_line":"\tlineC :\u003d make(chan string, 1)"},{"line_number":92,"context_line":"\toutBuffer :\u003d logbuffer.NewLineBuffer(1024, func(l *logbuffer.Line) {"},{"line_number":93,"context_line":"\t\tlineC \u003c- l.Data"},{"line_number":94,"context_line":"\t})"}],"source_content_type":"text/x-go","patch_set":3,"id":"fc261d1d_9b176662","line":91,"range":{"start_line":91,"start_character":28,"end_line":91,"end_character":29},"in_reply_to":"781461b6_17ffdc0e","updated":"2021-12-24 15:31:05.000000000","message":"Done","commit_id":"270842f11d99e5512bf57c54b75d8dd10c593ff6"}]}
