Latest release v1.18.2 doesn't work on Omnios/Solaris

As of today, all four instances on my OmniOS/Solaris systems stopped working after updating to the latest version 1.18.2 - the previous version 1.18.1 ran fine on all machines. Any idea if I need to update a particular library to get it up and running again? Thanks for your support.

Any error messages or logs?

One possible clue could be that v1.18.2 was built using Go v1.17.

Here is the syncthing log-file - maybe that helps to track the error.

site-syncthing_default.log (789.0 KB)

I suspect ‘tomasz86’ is right - the go-library hasn’t ben updated due to the automatic update procedure. Will try to update it before upgrading again.

Cheers, Lampos

Log doesn’t contain useful info, maybe running it manually in a terminal will yield something better.

Go binaries are statically linked, there’s no library to manually update - everything is in the binary itself. tomasz86 just mentioned that 1.18.2 was compiled with a newer Go version, compared to 1.18.1.

Ok, that makes things easier. Which log-options do I have to activate to generate some useful log-file ?

Just start it manually and see what happens.

Here you go …

root@alberich:/home/sync/bin# ./syncthing
syncthing: Cannot find /lib64/ld-linux-x86-64.so.2
Killed

Eh. Is it a Linux binary…?

Well, as I said the update gets automatically pulled by Syncthing which runs under Solaris/OmniOS. I would assume it will download a Solaris-build. If not something must be broken.

I will download the latest Solaris installer and try the included binary. Will let you know the outcome of that exercise.

So it seems. If you download the illumos package from GitHub, does it work? I guess it’s possible that go 1.17 broke illumos and/or Solaris builds somehow.

I’ll test it tonight and let you know the outcome.

Just checked the latest illumos-binary from ‘syncthing-illumos-amd64-v1.18.2.tar.gz’ and the error remains the same.

root@alberich:/home/sync/bin# ./syncthing
syncthing: Cannot find /lib64/ld-linux-x86-64.so.2
Killed

BTW - the Solaris-build produces the same error!

It’s fascinating. Go on my Mac correctly builds what looks like a Solaris/illumos binary:

% go version
go version go1.17 darwin/amd64
% CGO_ENABLED=0 go run build.go -goos illumos build
...
% file syncthing
syncthing: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/amd64/ld.so.1, Go BuildID=dNsYVDTvmbnccqyC44Eh/NmhtaLrSMsRIBZhJ_xgb/upipLs7taV9ZYqt3FTIS/Iq_AiP5pdJpolTay3OeY, not stripped

However, building with the Go Docker image like we do on the build server results in something that wants the Linux linker/loader:

% docker run -it --rm -v $(pwd):/src/syncthing -w /src/syncthing golang:1.17 \
  sh -c 'CGO_ENABLED=0 go run build.go -goos illumos build'
...
% file syncthing
syncthing: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, Go BuildID=XnHqREigPniiB6Vd0kb_/NmhtaLrSMsRIBZhJ_xgb/upipLs7taV9ZYqt3FTIS/QtmBwt9h3dbK4wMt4Sms, not stripped

Doing the same thing with golang:1.16 instead of golang:1.17 creates the same binary as I see locally, i.e, something that looks appropriately Solarisy. I have no explanation of what’s broken in the Go 1.17 Docker image, but it’s something.

I’m opening an issue and maybe someone can explain to me what we’re doing wrong.

1 Like

Excellent - that explains what I’m experiencing. Looking forward to the outcome of this. Thank you so much!!!

So there are filed and fixed issues on this on Go, apparently it affects the openbsd, illumos and Solaris targets when compiling from some hosts. You guys make up 0.005% of our user base (42 out of 73406 usage reports), so while I’m not saying you don’t matter I’m not going to pull an emergency 1.18.3 release built with an older compiler to sort this out – anyone using auto upgrades is unfortunately already dead in the water. :frowning:

I have removed the offending binaries from the 1.18.2 release, and can only recommend downgrading to 1.18.1 again to get this running.

This will be solved one way or the other for 1.18.3 – either there is a Go update out by then, or we’ll build those targets using an older compiler.

2 Likes

Dear Jakob,

thank you for sorting this one out - no worries regarding the update. Version 1.18.1 works perfectly fine for me. Just consider the issue as a minority report!

Cheers, Lampos

2 Likes

Well now I’m going to check my syncthing zones and see whether they’re reporting stats.