artyom-poptsov / guile-ssh

Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs.
https://memory-heap.org/~avp/projects/guile-ssh
GNU General Public License v3.0
65 stars 13 forks source link

non-deterministic segfaults in test suite #22

Closed vagrantc closed 4 years ago

vagrantc commented 4 years ago

I'm not sure what triggers it, but guile-ssh sometimes-to-often gets segfaults during the test suite when building on tests.reproducible-builds.org using Debian:

https://tests.reproducible-builds.org/debian/rbuild/experimental/amd64/guile-ssh_0.12.0-3.rbuild.log.gz

It seems more likely to fail on 64-bit architectures than 32-bit architectures:

https://tests.reproducible-builds.org/debian/history/guile-ssh.html

Attached is a tarball of the tests/*.log from a build where something in the test suite segfaulted.

guile-ssh-0.12.0-failed-tests.log.tar.gz

Thanks for maintaining guile-ssh!

vagrantc commented 4 years ago

I tried with 0.13.0, which seems much harder to trigger, but still saw segfaults.

artyom-poptsov commented 4 years ago

Thanks for testing! Could you please attach logs gathered during segfaults in 0.13.0. Also, what distribution do you use?

vagrantc commented 4 years ago

Using Debian sid/unstable.

It took eight consecutive rebuilds before it triggered the failure:

guile-ssh-0.13.0-failed-tests.log.tar.gz

The official Debian build infrastructure is passing on most architectures so far, as well as tests.reproducible-builds.org:

https://buildd.debian.org/status/package.php?p=guile-ssh&suite=experimental https://tests.reproducible-builds.org/debian/history/guile-ssh.html

So much harder to trigger with 0.13.0.

artyom-poptsov commented 4 years ago

Hello,

please check for segfaults using wip-fix-segfaults-on-gc branch.

Artyom.

vagrantc commented 4 years ago

Seems to get rid of the segfaults. Out of 140+ tests, I only had one test failure and I don't see any sign of a segfault being a cause. Unfortunately failed to capture the logs from that build.

artyom-poptsov commented 4 years ago

Okay, glad to hear that the segfaults are gone. It seems that I managed to pinpoint the problem behind the segfaults.

I'll merge the changes to the master then.

Thanks for testing!