libgit2/libgit2sharp

SSL Error: syscall failure on Ubuntu 15.10

Opened this issue · 13 comments

Whenever I try to clone a public HTTPS repository on Ubuntu 15.10 I get:
SSL Error: Syscall failure.

On Windows no problem, anyone else having this issue?

@danwalmsley a couple of extra pieces of information that might help with troubleshooting:

  • what version of Mono are you running?
  • what version of libgit2sharp are you using?

Hi, sorry for delay, Libgit2share nugget package = 0.22.0-pre20151023210959 (latest pre-release)
and LibGit2Sharp.NativeBinaries = 1.0.106.

i'll give you the mono version shortly

This looks like it's OpenSSL giving very unhelpful output. Running your app under strace -f should help say what the syscall error is.

ok thanks will give this a try and get back to you

Ubunutu 16.04 - strace -f at the point of failure:

[pid 1642] poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
[pid 1642] recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\1\1\36\34\0\0\0\0L\26\241\0L\0006\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
[pid 1642] recvmsg(3, 0x7ffdcbad1120, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 1642] recvmsg(3, 0x7ffdcbad1120, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 1642] poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=8, events=POLLIN}], 3, 0) = 0 (Timeout)
[pid 1642] poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
[pid 1642] writev(3, [{"\2\0\4\0)\0\340\5\0@\0\0(\0\340\5", 16}, {NULL, 0}, {"", 0}], 3) = 16
[pid 1642] recvmsg(3, 0x7ffdcbad1d70, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 1642] poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=8, events=POLLIN}], 3, -1 <unfinished ...>
[pid 5224] <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4197, {1470430002, 541970000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4199, {1470430002, 542365000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4201, {1470430002, 542546000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4203, {1470430002, 542656000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4205, {1470430002, 542768000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4207, {1470430003, 41913000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4209, {1470430003, 42173000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4211, {1470430003, 42544000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 5224] futex(0x96bd60, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 5224] futex(0x96bda4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 4213, {1470430003, 42738000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)

Bump! Issue still persists!

liiri commented

@danwalmsley its been a long time - but any chance you resolved the issue?

I am also encountering this, on Debian 10 (Buster) with libgit2sharp 0.26.2.

Anyway we can get this fixed?

Issue is deeper in libgit2 as I'm able to reproduce this with other bindings (guile-git) using Guix on Guix System.

@Hex4dec I'm not familiar with guix- can you give a simple set of repro steps for me?

This will probably not work on your system, but:

  1. Install Guix (and maybe even Guix System)
  2. Add the nonguix channel (see Installation section)
  3. Wait for Guix to have a new commit (happens quite frequently)
  4. Run guix pull
  5. See the error