)]}'
{"metropolis/node/core/update/update.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":"2e584d28d5498d12d2e5d88e1e79be27ab4d48ec","unresolved":true,"context_lines":[{"line_number":424,"context_line":"\t\treturn fmt.Errorf(\"while reading .cmdline PE section: %w\", err)"},{"line_number":425,"context_line":"\t}"},{"line_number":426,"context_line":"\tcmdline :\u003d string(bytes.TrimRight(cmdlineRaw, \"\\x00\"))"},{"line_number":427,"context_line":"\tcmdline \u003d strings.ReplaceAll(cmdline, \"METROPOLIS-SYSTEM-X\", fmt.Sprintf(\"METROPOLIS-SYSTEM-%s\", targetSlot))"},{"line_number":428,"context_line":"\tfmt.Printf(\"cmdline: %x\\n\", cmdline)"},{"line_number":429,"context_line":"\tkernelFile, err :\u003d newMemfile(\"kernel\", 0)"},{"line_number":430,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":1,"id":"0c878d6c_4d3b366c","line":427,"range":{"start_line":427,"start_character":1,"end_line":427,"end_character":8},"updated":"2023-07-31 16:05:27.000000000","message":"Should we check that anything was actually replaced?","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"dff60314d09c57d4ff1b3beaf65168008dde22a7","unresolved":true,"context_lines":[{"line_number":424,"context_line":"\t\treturn fmt.Errorf(\"while reading .cmdline PE section: %w\", err)"},{"line_number":425,"context_line":"\t}"},{"line_number":426,"context_line":"\tcmdline :\u003d string(bytes.TrimRight(cmdlineRaw, \"\\x00\"))"},{"line_number":427,"context_line":"\tcmdline \u003d strings.ReplaceAll(cmdline, \"METROPOLIS-SYSTEM-X\", fmt.Sprintf(\"METROPOLIS-SYSTEM-%s\", targetSlot))"},{"line_number":428,"context_line":"\tfmt.Printf(\"cmdline: %x\\n\", cmdline)"},{"line_number":429,"context_line":"\tkernelFile, err :\u003d newMemfile(\"kernel\", 0)"},{"line_number":430,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":1,"id":"f5844ebd_40562fc9","line":427,"range":{"start_line":427,"start_character":1,"end_line":427,"end_character":8},"in_reply_to":"0c878d6c_4d3b366c","updated":"2023-08-02 10:27:03.000000000","message":"No, this mirrors the behavior in the EFI stub.","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"4a8d04017dba70f3570318b39cd1195cd7a45506","unresolved":false,"context_lines":[{"line_number":424,"context_line":"\t\treturn fmt.Errorf(\"while reading .cmdline PE section: %w\", err)"},{"line_number":425,"context_line":"\t}"},{"line_number":426,"context_line":"\tcmdline :\u003d string(bytes.TrimRight(cmdlineRaw, \"\\x00\"))"},{"line_number":427,"context_line":"\tcmdline \u003d strings.ReplaceAll(cmdline, \"METROPOLIS-SYSTEM-X\", fmt.Sprintf(\"METROPOLIS-SYSTEM-%s\", targetSlot))"},{"line_number":428,"context_line":"\tfmt.Printf(\"cmdline: %x\\n\", cmdline)"},{"line_number":429,"context_line":"\tkernelFile, err :\u003d newMemfile(\"kernel\", 0)"},{"line_number":430,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":1,"id":"e129b5a2_f6f04a98","line":427,"range":{"start_line":427,"start_character":1,"end_line":427,"end_character":8},"in_reply_to":"f5844ebd_40562fc9","updated":"2023-08-03 13:51:04.000000000","message":"Ack","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"2e584d28d5498d12d2e5d88e1e79be27ab4d48ec","unresolved":true,"context_lines":[{"line_number":425,"context_line":"\t}"},{"line_number":426,"context_line":"\tcmdline :\u003d string(bytes.TrimRight(cmdlineRaw, \"\\x00\"))"},{"line_number":427,"context_line":"\tcmdline \u003d strings.ReplaceAll(cmdline, \"METROPOLIS-SYSTEM-X\", fmt.Sprintf(\"METROPOLIS-SYSTEM-%s\", targetSlot))"},{"line_number":428,"context_line":"\tfmt.Printf(\"cmdline: %x\\n\", cmdline)"},{"line_number":429,"context_line":"\tkernelFile, err :\u003d newMemfile(\"kernel\", 0)"},{"line_number":430,"context_line":"\tif err !\u003d nil {"},{"line_number":431,"context_line":"\t\treturn fmt.Errorf(\"failed to create kernel memfile: %w\", err)"}],"source_content_type":"text/x-go","patch_set":1,"id":"e623ae25_5f23e2e1","line":428,"range":{"start_line":428,"start_character":1,"end_line":428,"end_character":37},"updated":"2023-07-31 16:05:27.000000000","message":"Leftover debug.","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"dff60314d09c57d4ff1b3beaf65168008dde22a7","unresolved":false,"context_lines":[{"line_number":425,"context_line":"\t}"},{"line_number":426,"context_line":"\tcmdline :\u003d string(bytes.TrimRight(cmdlineRaw, \"\\x00\"))"},{"line_number":427,"context_line":"\tcmdline \u003d strings.ReplaceAll(cmdline, \"METROPOLIS-SYSTEM-X\", fmt.Sprintf(\"METROPOLIS-SYSTEM-%s\", targetSlot))"},{"line_number":428,"context_line":"\tfmt.Printf(\"cmdline: %x\\n\", cmdline)"},{"line_number":429,"context_line":"\tkernelFile, err :\u003d newMemfile(\"kernel\", 0)"},{"line_number":430,"context_line":"\tif err !\u003d nil {"},{"line_number":431,"context_line":"\t\treturn fmt.Errorf(\"failed to create kernel memfile: %w\", err)"}],"source_content_type":"text/x-go","patch_set":1,"id":"b6f058a2_0808059f","line":428,"range":{"start_line":428,"start_character":1,"end_line":428,"end_character":37},"in_reply_to":"e623ae25_5f23e2e1","updated":"2023-08-02 10:27:03.000000000","message":"Done","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"2e584d28d5498d12d2e5d88e1e79be27ab4d48ec","unresolved":true,"context_lines":[{"line_number":426,"context_line":"\tcmdline :\u003d string(bytes.TrimRight(cmdlineRaw, \"\\x00\"))"},{"line_number":427,"context_line":"\tcmdline \u003d strings.ReplaceAll(cmdline, \"METROPOLIS-SYSTEM-X\", fmt.Sprintf(\"METROPOLIS-SYSTEM-%s\", targetSlot))"},{"line_number":428,"context_line":"\tfmt.Printf(\"cmdline: %x\\n\", cmdline)"},{"line_number":429,"context_line":"\tkernelFile, err :\u003d newMemfile(\"kernel\", 0)"},{"line_number":430,"context_line":"\tif err !\u003d nil {"},{"line_number":431,"context_line":"\t\treturn fmt.Errorf(\"failed to create kernel memfile: %w\", err)"},{"line_number":432,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":1,"id":"8956fabf_aa1d9f42","line":429,"range":{"start_line":429,"start_character":1,"end_line":429,"end_character":11},"updated":"2023-07-31 16:05:27.000000000","message":"Clean this up on failure.","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"dff60314d09c57d4ff1b3beaf65168008dde22a7","unresolved":false,"context_lines":[{"line_number":426,"context_line":"\tcmdline :\u003d string(bytes.TrimRight(cmdlineRaw, \"\\x00\"))"},{"line_number":427,"context_line":"\tcmdline \u003d strings.ReplaceAll(cmdline, \"METROPOLIS-SYSTEM-X\", fmt.Sprintf(\"METROPOLIS-SYSTEM-%s\", targetSlot))"},{"line_number":428,"context_line":"\tfmt.Printf(\"cmdline: %x\\n\", cmdline)"},{"line_number":429,"context_line":"\tkernelFile, err :\u003d newMemfile(\"kernel\", 0)"},{"line_number":430,"context_line":"\tif err !\u003d nil {"},{"line_number":431,"context_line":"\t\treturn fmt.Errorf(\"failed to create kernel memfile: %w\", err)"},{"line_number":432,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":1,"id":"940916eb_8a7141e9","line":429,"range":{"start_line":429,"start_character":1,"end_line":429,"end_character":11},"in_reply_to":"8956fabf_aa1d9f42","updated":"2023-08-02 10:27:03.000000000","message":"Can even be deferred, the files are no longer needed after the kexec staging syscall is over.","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"2e584d28d5498d12d2e5d88e1e79be27ab4d48ec","unresolved":true,"context_lines":[{"line_number":449,"context_line":"\t\t\treturn fmt.Errorf(\"while copying .initrd PE section: %w\", err)"},{"line_number":450,"context_line":"\t\t}"},{"line_number":451,"context_line":"\t}"},{"line_number":452,"context_line":"\tif err :\u003d kexec.FileLoad(kernelFile, initramfsFile, cmdline); err !\u003d nil {"},{"line_number":453,"context_line":"\t\treturn fmt.Errorf(\"while staging new kexec kernel: %w\", err)"},{"line_number":454,"context_line":"\t}"},{"line_number":455,"context_line":"\treturn nil"}],"source_content_type":"text/x-go","patch_set":1,"id":"85c6f096_a1d64019","line":452,"range":{"start_line":452,"start_character":11,"end_line":452,"end_character":25},"updated":"2023-07-31 16:05:27.000000000","message":"This can race with another kexec.FileLoad in case there\u0027s multiple InstallBundle/UpdateNode requests in parallel. That\u0027s actually true for many points of this process. Take a global lock in UpdateNode to make sure we don\u0027t serve more than one of these in parallel?","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"},{"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":"dff60314d09c57d4ff1b3beaf65168008dde22a7","unresolved":false,"context_lines":[{"line_number":449,"context_line":"\t\t\treturn fmt.Errorf(\"while copying .initrd PE section: %w\", err)"},{"line_number":450,"context_line":"\t\t}"},{"line_number":451,"context_line":"\t}"},{"line_number":452,"context_line":"\tif err :\u003d kexec.FileLoad(kernelFile, initramfsFile, cmdline); err !\u003d nil {"},{"line_number":453,"context_line":"\t\treturn fmt.Errorf(\"while staging new kexec kernel: %w\", err)"},{"line_number":454,"context_line":"\t}"},{"line_number":455,"context_line":"\treturn nil"}],"source_content_type":"text/x-go","patch_set":1,"id":"890de201_7ca3d843","line":452,"range":{"start_line":452,"start_character":11,"end_line":452,"end_character":25},"in_reply_to":"85c6f096_a1d64019","updated":"2023-08-02 10:27:03.000000000","message":"Done","commit_id":"08d56d029ed1eba2bde0a9c8e40e4d3fae22653b"}]}
