Hello! Maxim Cournoyer <maxim.courno...@gmail.com> skribis:
> Ludovic Courtès <l...@gnu.org> writes: [...] >> I’ve pushed this change on our side to explicitly close channels and >> sessions: >> >> >> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=61fe9ced7da7eefceb931af0cb7363b721f5bdd6 >> >> This workaround is similar to that of 2017: >> >> >> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=8e469b67f95cfe5b95405b503b8ee315fdf8ce66 >> >> It’s really just a workaround so I think we should fix the core issue in >> Guile-SSH (or libssh) so it doesn’t pop up again next month—it’s hard to >> ensure code that opens a channel explicitly closes it. > > Do you think the issue lies in guile-ssh or in libssh itself? Sorry for > not having caught these problems earlier; it seemed to work reliably > when I last tested it. No worries; these issues are non-deterministic and we can spend months without noticing. Perhaps libssh is documented as not being thread-safe, in which case it’s up to its users to do the right thing. In that case, the problem would be in Guile-SSH, since in Guile 2.2/3.0 finalizers can be called from a separate thread. It’s also probably easier to fix in Guile-SSH (technically & socially). >> Anyway, I would welcome tests using ‘guix copy’, ‘guix deploy’, and >> offloading. (For offloading, make sure to run the daemon from your >> build tree.) > > While attempting to use offload on the core-updates branch, I > encountered stalls and file errors, but with your patch it seems to work > reliable (it's been offloading builds for the last 15 minutes or so > without interruption). > > So your workaround fixes seem to work as intended. Good, thanks for testing. We should update the ‘guix’ package again soonish. Ludo’.