)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},"change_message_id":"43022d9e50ab3cd936230d4b8c7d4c4a6f31d4b0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"24c08a57_7bb0d5a2","updated":"2023-11-15 21:53:51.000000000","message":"It\u0027s not clear to me that we should be building a process manager into tvix. It encourages adding more things to our process tree, and more ambient state that we pass along to other programs.\n\nEven if not intentionally used, the fact that it can spawn arbitrary processes becomes part of any tvix user\u0027s security considerations.\n\nI would much prefer to leave socket activation to the system service manager (eg, systemd), which is where that piece of responsibility belongs.\n\n(copy of my bugtracker comment https://b.tvl.fyi/issues/308#comment-554)","commit_id":"97ca3b11a79735d9b86187a95b9f91879e13eea9"},{"author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"change_message_id":"70cf54d499c1ac66698e695332577916dc422500","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cf2241ab_a4580ce8","in_reply_to":"24c08a57_7bb0d5a2","updated":"2023-11-15 23:11:54.000000000","message":"\u003e It\u0027s not clear to me that we should be building a process manager into tvix. It encourages adding more things to our process tree\n\n/me is grateful for the Voice Of Reason here....\n\n\u003e leave socket activation to the system service manager (eg, systemd),\n\nOr s6! https://skarnet.org/software/s6/socket-activation.html","commit_id":"97ca3b11a79735d9b86187a95b9f91879e13eea9"}],"tvix/castore/src/tonic.rs":[{"author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"change_message_id":"70cf54d499c1ac66698e695332577916dc422500","unresolved":true,"context_lines":[{"line_number":64,"context_line":"                        child_handle_resp.map(|mut child_handle| {"},{"line_number":65,"context_line":"                            // Provide an [AsyncRead + AsyncWrite], talking to the child"},{"line_number":66,"context_line":"                            // process\u0027 stdout and stdin respectively."},{"line_number":67,"context_line":"                            RWMerger::new("},{"line_number":68,"context_line":"                                child_handle.stdout.take().unwrap(),"},{"line_number":69,"context_line":"                                child_handle.stdin.take().unwrap(),"},{"line_number":70,"context_line":"                            )"},{"line_number":71,"context_line":"                        })"},{"line_number":72,"context_line":"                    }"},{"line_number":73,"context_line":"                }"}],"source_content_type":"text/x-rustsrc","patch_set":6,"id":"ac98d700_8dc293c4","line":70,"range":{"start_line":67,"start_character":12,"end_line":70,"end_character":29},"updated":"2023-11-15 23:11:54.000000000","message":"Can you just change the API to use separate `AsyncRead` and `AsyncWrite` instead of a single `AsyncRead+AsyncWrite`?\n\nOtherwise you\u0027re going to have to create a unix socket.\n\nWith stdin/stdout, both the parent and child see *two* file descriptors, and they are the *same* two file descriptors on each side (parent/child).\n\nWith unix domain sockets there are two *different* file descriptors, but each side (client and server) sees only *one* file descriptor, and can both read and write to it.","commit_id":"3245dc56a7badde431caec04a522f6e00ff1f64d"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"9b74eefd584d8a4d3c94ac3b1964a3a4db4fbcce","unresolved":true,"context_lines":[{"line_number":64,"context_line":"                        child_handle_resp.map(|mut child_handle| {"},{"line_number":65,"context_line":"                            // Provide an [AsyncRead + AsyncWrite], talking to the child"},{"line_number":66,"context_line":"                            // process\u0027 stdout and stdin respectively."},{"line_number":67,"context_line":"                            RWMerger::new("},{"line_number":68,"context_line":"                                child_handle.stdout.take().unwrap(),"},{"line_number":69,"context_line":"                                child_handle.stdin.take().unwrap(),"},{"line_number":70,"context_line":"                            )"},{"line_number":71,"context_line":"                        })"},{"line_number":72,"context_line":"                    }"},{"line_number":73,"context_line":"                }"}],"source_content_type":"text/x-rustsrc","patch_set":6,"id":"cd7ec5e8_649d74b2","line":70,"range":{"start_line":67,"start_character":12,"end_line":70,"end_character":29},"in_reply_to":"ac98d700_8dc293c4","updated":"2023-11-16 21:07:52.000000000","message":"The connector thing in tonic at least wants something implementing AsyncRead and AsyncWrite at the same time, I think (?). But looking at https://cl.tvl.fyi/c/depot/+/10043/comments/24c08a57_7bb0d5a2, it\u0027s maybe better to just abandon this, use unix sockets and socket activation where desired.","commit_id":"3245dc56a7badde431caec04a522f6e00ff1f64d"}]}
