| 17 Mar 2025 |
jade_ | * yeah, and currently debugging protocol bugs is absolutely maddening. lix nightly currently has a known protocol bug due to concurrency and nar transfers and remote builders and gestures the whole protocol being extremely easy to screw up and it is sorta reproducible (unusual for a protocol bug!).
this is the idea we had for improving the experience of debugging protocol misbehaviour; implementation has not yet started: https://git.lix.systems/lix-project/lix/issues/734
| 00:12:58 |
jade_ | (we do not know of other protocol bugs in lix, fwiw) | 00:14:58 |
jade_ | https://gerrit.lix.systems/c/lix/+/2639 here's the CL that fixed it IIRC, but i think there might be a second somewhere | 00:16:46 |
jade_ | https://gerrit.lix.systems/c/lix/+/2666 ah it would be this | 00:17:08 |
John Ericson | hexa: (or jade_) can you point me to the tmp cleaning commit? | 00:17:28 |
jade_ | see above | 00:17:33 |
John Ericson | OK | 00:17:37 |
John Ericson | I am ripping out building from scheduling finally right now | 00:17:50 |
jade_ | https://git.lix.systems/lix-project/lix/issues/678 issue here with discussion | 00:17:52 |
John Ericson | it is very satisifying | 00:17:56 |
hexa | and here https://github.com/NixOS/nix/issues/5207 | 00:18:08 |
John Ericson | I made a OOP inheritence rats nest to wind up the balista, and then twang | 00:18:27 |
jade_ | we have been doing different types of things wrt such fixing: soon getting rid of fork() from the builder | 00:18:32 |
hexa | not sure if the "not empty" part is accurate at this point | 00:18:40 |
hexa | * not sure if the "not empty" part is still accurate at this point | 00:19:26 |
John Ericson | it would be very nice to have some reference C++ that was sufficiently decoupled from the rest that we both could use it | 00:19:47 |
jade_ | another couple changes i would be fairly happy if they got yoinked directly into cppnix:
- https://gerrit.lix.systems/c/lix/+/2801
- https://gerrit.lix.systems/c/lix/+/2800
| 00:19:48 |
jade_ | that's what deleting the fork() is about | 00:20:04 |
jade_ | makes it much easier to riir the sandbox setup | 00:20:12 |
jade_ | since it no longer knows what a "store" is | 00:20:21 |
John Ericson | oh you don't mean get rid of the sub process, you mean exec something | 00:20:34 |
jade_ | yes, fork() -> posix_spawn() with explicit inputs | 00:20:49 |
John Ericson | OK | 00:21:01 |
John Ericson | I have been making 0 behavior/algorthimic changes right now | 00:21:14 |
John Ericson | just moving code around | 00:21:17 |
John Ericson | but yes no fork sounds good too, of course | 00:21:28 |
John Ericson | in more ways than one ;) | 00:21:35 |
jade_ | can't easily magick away the differences in priorities or views to trunk based development. but if some of the stuff like post mortem debugging winds up on both sides it would be very good. | 00:23:18 |
jade_ | i would not wish debugging nix protocol bugs on my worst enemy | 00:23:52 |
jade_ | and we all have much better things to be doing than protocol debugging (especially if a consistent repro is always necessary) | 00:24:28 |