)]}'
{"/COMMIT_MSG":[{"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":"56a2983f7adaf8d6adbd2a340ec73e55af66b9c8","unresolved":true,"context_lines":[{"line_number":7,"context_line":"m/p/logtree: add kmsg pipe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This allows ingesting Linux kernel (kmsg) logs into logtree with"},{"line_number":10,"context_line":"the original metadata (timestamp, severity) perserved."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibb6e3a7a0ae4a008b8e9c98beccb3a95c067cb75"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d5898e40_cbba9c6c","line":10,"range":{"start_line":10,"start_character":44,"end_line":10,"end_character":53},"updated":"2023-08-09 16:15:29.000000000","message":"*preserved","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"ff003105024b2816ba160e1a72bac2fcbf6e04cc","unresolved":false,"context_lines":[{"line_number":7,"context_line":"m/p/logtree: add kmsg pipe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This allows ingesting Linux kernel (kmsg) logs into logtree with"},{"line_number":10,"context_line":"the original metadata (timestamp, severity) perserved."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibb6e3a7a0ae4a008b8e9c98beccb3a95c067cb75"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"13fc6f7e_9c069580","line":10,"range":{"start_line":10,"start_character":44,"end_line":10,"end_character":53},"in_reply_to":"d5898e40_cbba9c6c","updated":"2023-08-09 16:47:53.000000000","message":"Done","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"}],"metropolis/pkg/logtree/kmsg.go":[{"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":"56a2983f7adaf8d6adbd2a340ec73e55af66b9c8","unresolved":true,"context_lines":[{"line_number":38,"context_line":"\t}"},{"line_number":39,"context_line":"\t// PRINTK_MESSAGE_MAX in @linux//kernel/printk:internal.h"},{"line_number":40,"context_line":"\tlinebuf :\u003d make([]byte, 2048)"},{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"}],"source_content_type":"text/x-go","patch_set":1,"id":"eca54ef0_efbe0075","line":41,"updated":"2023-08-09 16:15:29.000000000","message":"What happens to this loop if the runnable is cancelled?","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"51feba623079efcaede533a4a3131529af374461","unresolved":true,"context_lines":[{"line_number":38,"context_line":"\t}"},{"line_number":39,"context_line":"\t// PRINTK_MESSAGE_MAX in @linux//kernel/printk:internal.h"},{"line_number":40,"context_line":"\tlinebuf :\u003d make([]byte, 2048)"},{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"}],"source_content_type":"text/x-go","patch_set":1,"id":"d314e639_c7f3c3ba","line":41,"in_reply_to":"7ef37327_37bca23e","updated":"2023-08-09 18:11:05.000000000","message":"But should it take a context? If the parent runnable is cancelled, we should probably stop polling?","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"5b6efbda9e1433f1a10b0eb9178a8a9f10c81845","unresolved":false,"context_lines":[{"line_number":38,"context_line":"\t}"},{"line_number":39,"context_line":"\t// PRINTK_MESSAGE_MAX in @linux//kernel/printk:internal.h"},{"line_number":40,"context_line":"\tlinebuf :\u003d make([]byte, 2048)"},{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"}],"source_content_type":"text/x-go","patch_set":1,"id":"4742a383_f52dee3d","line":41,"in_reply_to":"9667caf5_cc62c67a","updated":"2023-08-09 18:26:26.000000000","message":"That\u0027s fine, as long as we don\u0027t leak the goroutine 👍 It might otherwise keep reading forever even if we already scheduled a new one?","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"363fb4410d2c7316fa78bfedb708e0d7bf131eda","unresolved":true,"context_lines":[{"line_number":38,"context_line":"\t}"},{"line_number":39,"context_line":"\t// PRINTK_MESSAGE_MAX in @linux//kernel/printk:internal.h"},{"line_number":40,"context_line":"\tlinebuf :\u003d make([]byte, 2048)"},{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"}],"source_content_type":"text/x-go","patch_set":1,"id":"9667caf5_cc62c67a","line":41,"in_reply_to":"d314e639_c7f3c3ba","updated":"2023-08-09 18:20:00.000000000","message":"We are not polling, it\u0027s a blocking read. I added best-effort cancellation, but it can take quite a while to actually stop the loop.","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"ff003105024b2816ba160e1a72bac2fcbf6e04cc","unresolved":true,"context_lines":[{"line_number":38,"context_line":"\t}"},{"line_number":39,"context_line":"\t// PRINTK_MESSAGE_MAX in @linux//kernel/printk:internal.h"},{"line_number":40,"context_line":"\tlinebuf :\u003d make([]byte, 2048)"},{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"}],"source_content_type":"text/x-go","patch_set":1,"id":"7ef37327_37bca23e","line":41,"in_reply_to":"eca54ef0_efbe0075","updated":"2023-08-09 16:47:53.000000000","message":"This is not a runnable, it does not currently take a context. As far as I know it is not generally possible to abort a read in Go and the kernel can go for hours without printing a message.","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"56a2983f7adaf8d6adbd2a340ec73e55af66b9c8","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"},{"line_number":45,"context_line":"\t\t\tcontinue"},{"line_number":46,"context_line":"\t\t}"},{"line_number":47,"context_line":"\t\tvar monotonicRaw unix.Timespec"}],"source_content_type":"text/x-go","patch_set":1,"id":"eab4caae_9c2f3bf4","line":44,"updated":"2023-08-09 16:15:29.000000000","message":"Perhaps we need to back off here? I suspect we could end up printing this at very high rates in a failure case","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"ff003105024b2816ba160e1a72bac2fcbf6e04cc","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"},{"line_number":45,"context_line":"\t\t\tcontinue"},{"line_number":46,"context_line":"\t\t}"},{"line_number":47,"context_line":"\t\tvar monotonicRaw unix.Timespec"}],"source_content_type":"text/x-go","patch_set":1,"id":"f600232c_f48cdc4e","line":44,"in_reply_to":"eab4caae_9c2f3bf4","updated":"2023-08-09 16:47:53.000000000","message":"I rate-limited the message to 1/second. Stalling the pipe will only cause more EPIPE errors.","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"51feba623079efcaede533a4a3131529af374461","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\tfor {"},{"line_number":42,"context_line":"\t\tn, err :\u003d kmsgFile.Read(linebuf)"},{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"},{"line_number":45,"context_line":"\t\t\tcontinue"},{"line_number":46,"context_line":"\t\t}"},{"line_number":47,"context_line":"\t\tvar monotonicRaw unix.Timespec"}],"source_content_type":"text/x-go","patch_set":1,"id":"f64615a3_184851b8","line":44,"in_reply_to":"f600232c_f48cdc4e","updated":"2023-08-09 18:11:05.000000000","message":"Ack","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"56a2983f7adaf8d6adbd2a340ec73e55af66b9c8","unresolved":true,"context_lines":[{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"},{"line_number":45,"context_line":"\t\t\tcontinue"},{"line_number":46,"context_line":"\t\t}"},{"line_number":47,"context_line":"\t\tvar monotonicRaw unix.Timespec"},{"line_number":48,"context_line":"\t\tif err :\u003d unix.ClockGettime(unix.CLOCK_MONOTONIC_RAW, \u0026monotonicRaw); err !\u003d nil {"},{"line_number":49,"context_line":"\t\t\tlt.Errorf(\"Unable to get CLOCK_MONOTONIC_RAW value, cannot accurately timestamp following entry: %v\", err)"}],"source_content_type":"text/x-go","patch_set":1,"id":"6a4bd7c5_1c0951dc","line":46,"updated":"2023-08-09 16:15:29.000000000","message":"What about non-EPIPE errors?","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"ff003105024b2816ba160e1a72bac2fcbf6e04cc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"\t\tif errors.Is(err, unix.EPIPE) {"},{"line_number":44,"context_line":"\t\t\tlt.Warning(\"Lost messages due to kernel ring buffer overflow\")"},{"line_number":45,"context_line":"\t\t\tcontinue"},{"line_number":46,"context_line":"\t\t}"},{"line_number":47,"context_line":"\t\tvar monotonicRaw unix.Timespec"},{"line_number":48,"context_line":"\t\tif err :\u003d unix.ClockGettime(unix.CLOCK_MONOTONIC_RAW, \u0026monotonicRaw); err !\u003d nil {"},{"line_number":49,"context_line":"\t\t\tlt.Errorf(\"Unable to get CLOCK_MONOTONIC_RAW value, cannot accurately timestamp following entry: %v\", err)"}],"source_content_type":"text/x-go","patch_set":1,"id":"ee35e369_dbdd79a8","line":46,"in_reply_to":"6a4bd7c5_1c0951dc","updated":"2023-08-09 16:47:53.000000000","message":"Should not happen, but in case it happens it now returns an error.","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"56a2983f7adaf8d6adbd2a340ec73e55af66b9c8","unresolved":true,"context_lines":[{"line_number":46,"context_line":"\t\t}"},{"line_number":47,"context_line":"\t\tvar monotonicRaw unix.Timespec"},{"line_number":48,"context_line":"\t\tif err :\u003d unix.ClockGettime(unix.CLOCK_MONOTONIC_RAW, \u0026monotonicRaw); err !\u003d nil {"},{"line_number":49,"context_line":"\t\t\tlt.Errorf(\"Unable to get CLOCK_MONOTONIC_RAW value, cannot accurately timestamp following entry: %v\", err)"},{"line_number":50,"context_line":"\t\t}"},{"line_number":51,"context_line":"\t\tp :\u003d parseKmsg(time.Now(), time.Duration(monotonicRaw.Nano())*time.Nanosecond, linebuf[:n])"},{"line_number":52,"context_line":"\t\tif p \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":1,"id":"9806510d_2f3c967c","line":49,"updated":"2023-08-09 16:15:29.000000000","message":"Is this something that can happen outside of unexpected breakage? Perhaps we should panic here (which would restart the runnable with a backoff, I think?) or return vs. spamming the console?\n\nBut I\u0027m not super familiar with the semantics here","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"ff003105024b2816ba160e1a72bac2fcbf6e04cc","unresolved":false,"context_lines":[{"line_number":46,"context_line":"\t\t}"},{"line_number":47,"context_line":"\t\tvar monotonicRaw unix.Timespec"},{"line_number":48,"context_line":"\t\tif err :\u003d unix.ClockGettime(unix.CLOCK_MONOTONIC_RAW, \u0026monotonicRaw); err !\u003d nil {"},{"line_number":49,"context_line":"\t\t\tlt.Errorf(\"Unable to get CLOCK_MONOTONIC_RAW value, cannot accurately timestamp following entry: %v\", err)"},{"line_number":50,"context_line":"\t\t}"},{"line_number":51,"context_line":"\t\tp :\u003d parseKmsg(time.Now(), time.Duration(monotonicRaw.Nano())*time.Nanosecond, linebuf[:n])"},{"line_number":52,"context_line":"\t\tif p \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":1,"id":"61e10d12_a5437bfa","line":49,"in_reply_to":"9806510d_2f3c967c","updated":"2023-08-09 16:47:53.000000000","message":"No, this will only happen in exceptional situations (like Linux compat layers, strict seccomp, some severe kernel bug). Now returns an error.","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"56a2983f7adaf8d6adbd2a340ec73e55af66b9c8","unresolved":true,"context_lines":[{"line_number":88,"context_line":"\t}"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"\t// Kmsg entries are timestamped with CLOCK_MONOTONIC_RAW, a clock which does"},{"line_number":91,"context_line":"\t// not have an direct correspondence with civil time (UTC). To assign best-"},{"line_number":92,"context_line":"\t// effort timestamps, use the current monotonic clock reading to determine"},{"line_number":93,"context_line":"\t// the elapsed time between the kmsg entry and now on the monotonic clock."},{"line_number":94,"context_line":"\t// This does not correspond well to elapsed UTC time on longer timescales as"}],"source_content_type":"text/x-go","patch_set":1,"id":"5d70afc4_9239967f","line":91,"range":{"start_line":91,"start_character":13,"end_line":91,"end_character":15},"updated":"2023-08-09 16:15:29.000000000","message":"*a","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"},{"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":"ff003105024b2816ba160e1a72bac2fcbf6e04cc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"\t}"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"\t// Kmsg entries are timestamped with CLOCK_MONOTONIC_RAW, a clock which does"},{"line_number":91,"context_line":"\t// not have an direct correspondence with civil time (UTC). To assign best-"},{"line_number":92,"context_line":"\t// effort timestamps, use the current monotonic clock reading to determine"},{"line_number":93,"context_line":"\t// the elapsed time between the kmsg entry and now on the monotonic clock."},{"line_number":94,"context_line":"\t// This does not correspond well to elapsed UTC time on longer timescales as"}],"source_content_type":"text/x-go","patch_set":1,"id":"4a2e5829_fd1aac3b","line":91,"range":{"start_line":91,"start_character":13,"end_line":91,"end_character":15},"in_reply_to":"5d70afc4_9239967f","updated":"2023-08-09 16:47:53.000000000","message":"Done","commit_id":"3c7c2da5338e528b86f42686aefb723cb3fff949"}]}
