[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#42740: Segfault in libssh during ‘guix copy’

From: Ludovic Courtès
Subject: bug#42740: Segfault in libssh during ‘guix copy’
Date: Tue, 01 Sep 2020 22:57:58 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)


Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> Ludovic Courtès <ludo@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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]