Hi reepca, Caleb Ristvedt <caleb.ristv...@cune.org> skribis:
>> Is there a line above or below the backtrace mentioning the uncaught >> exception? Could you ‘strace -f’ the daemon process? > > No, no line above or below. Very strange. And strace? :-) It could be that it fails to load some of the (system *) helper modules when displaying the error, something like that. >> BTW, I see the code uses ‘clone’ directly. It would be safer to use >> ‘call-with-container’, which already handles bind mounts, non-local >> exits, and so on. Would it be an option? > > There are a couple of issues with using call-with-container. In > decreasing order of perceived difficulty to solve: [...] > ... and then I paused writing this for 2 days while I checked whether my > in-theory solutions would work in practice. And it seems like they > actually do (see recent branch update). Mostly. I need to figure out why > it fails when a new user namespace is created - for some reason > pivot-root fails when new-root was mounted from a different user > namespace. Heheh. :-) The commit “build-derivations: use call-with-container” does two things: adjust ‘call-with-container’, and actually use it in the new daemon code. I think it would be great to split this into two logical changes. I don’t get the use of ‘try-umount’ in an unwind handler of ‘call-with-container’. Since ‘call-with-container’ uses ‘call-with-temporary-directory’, ROOT is never a mount point, no? > But on the bright side, it somehow solved the bug I described earlier. I > still haven't managed to make it all the way to building hello (a > libunistring test hangs), but it's getting much farther. If the hanging test is ‘test-lock’, that’s a “known problem” on machines with more than ~8 cores, and it’s fixed in core-updates. >> Let’s maybe try to further debug this interactively on IRC. > > ... and then I promptly fell asleep and spent the next few days > (nights?) tinkering. Oops. No problem. :-) Next time feel free to ping me when you’re at the peak of your debugging activity, in case I can help out! Thanks, Ludo’.