[Bug]: Running 3.30.23.1 ss3 on Linux
Describe the bug
Dear SS3 Team, We are trying to run the last release of ss3 on a machine we use for parallel computation having the following specs:
OS: Ubuntu 20.04 LTS
Processor: AMD Ryzen Threadripper PRO 3975WX
Memory: 64GB
Storage: M.2 SSD
We are getting the following error: Executable found in directory /home/erqu0001/Run1
Changing working directory to ~/Run1 and running model using the command: ./ss3
./ss3: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./ss3)
./ss3: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./ss3)
./ss3: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./ss3)
./ss3: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ./ss3)
It seems that the problem is linked to version of the libraries libc.so.6 and libstdc++ not being installed. We then tried to install and update to the required version these libraries on the computer, but they are not available for the mentioned OS. For instance see the result of the following sudo call:
vano0001@SLU-RSERVER02: sudo apt install libc6
Reading package lists... Done
Building dependency tree
Reading state information... Done
libc6 is already the newest version (2.31-0ubuntu9.16).
The result is that we cannot run the last release of ss3 on this computer at the moment. We identified some options to solve the problem (i.e. updating OS - but it is demanding, compiling the needed libraries, compile with ADMB the latest ss3).
Nevertheless, we would like to highlight to you this dependency issue as it may affect other users. Please note that previous versions of ss3 work fine on our machine (e.g. 3.30.22 Release).
Have a great day.
Eros
To Reproduce
Simply try to run the model pointing to the target directory (containing the "ss3", .exe file relative to 3.30.23.1 Linux version) by typing:
r4ss::run(dir = paste0(dir, runs)[2], skipfinished = FALSE, show_in_console = TRUE)
Gives the mentioned error:
Changing working directory to ~/Run1 and running model using the command: ./ss3
./ss3: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./ss3)
./ss3: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./ss3)
./ss3: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./ss3)
./ss3: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ./ss3)
Expected behavior
We would expect the model to start the computation, but fails to start with ss3.exe file relative to 3.30.23.1 Linux. Works fine with the one from previous versions, e.g. 3.30.22 Release.
Screenshots
No response
Which OS are you seeing the problem on?
Linux
Which version of SS3 are you seeing the problem on?
3.30.23.1
Additional Context
Please feel free to contact me or Valerio for further details about the issue.
Hi Eros, The ss3 executables are built using GitHub actions and there are several places where problems can arise which we have dealt with before.
- The OS for a particular runner's
latestversion has changed/updated to ubuntu 24.04 and backwards compatibility with executables built using a previous version of that same runner no longer works. - The ability to use the ADMB docker file that Johnoel built is no longer compatible with updated OS versions.
I will work on trying to resolve the issue and send you an updated executable to test when I thinking that I have something working.
Hi @erosquesada and @vbartolino, Sorry for the headache and thanks for reporting the issue.
While @e-perl-NOAA is working on getting a compiled executable to work, as a backup option you may find it worthwhile to pursue one of the more demanding options which you noted. Rather than try to change your OS, I would try to compile ADMB from source, following the instructions at https://www.admb-project.org/downloads/admb-13.2/BuildingSourceUnix.html. If that is successful, then you could download the version 3.30.23.1 SS3 source code files from https://github.com/nmfs-ost/ss3-source-code/releases/tag/v3.30.23.1 and run the script Make_SS_330_new.sh. If you try that, let us know if you get it working.
There are enough flavors of linux and library versions that we may never be able to provide compiled executables to suit everyone's needs.
Dear, many thanks for considering the issue we raised and for the effort in heping us. We will consider ADMB compilation from source, truthfully this option was suggested by Iago on a separate communication (thanks @iagomosqueira). Looking forward to test the updated .exe.
In the meantime we will work with past ss3 releases which are running fine on our machine. So far this is not an urgent issue for our side. Have a great day.
Eros
I built the linux ss3 exe using admb built from source and updated the linux release to that one under the 3.30.23.1 Release. My testing shows that the executable is working (the previous one was working too but I updated the release just in case) on ubuntu 24.04 but not on 20.04. I have compiled a SS3 executable using ubuntu 20.04 for you to try (see zip file) but like Ian says it is hard to keep SS3 backwards compatible for every OS and all of their updates and I'm not sure if continuing to compile ss3 on ubuntu 20.04 is something we can commit to, especially because I have a feeling that github actions is going to stop supporting it soon.
Another thing that you may have to do is to upgrade some of the ubuntu libraries in the command line such as we had to do in our GitHub actions with the following:
apt-get update
apt-get install --only-upgrade libstdc++6
Thank you so much for the update @e-perl-NOAA. We tested it pre and post upgrading the libraries, as suggested. Unfortunately, it does not solve on ubuntu 20.04.
vano0001@SLU-RSERVER02:Run3$ ../Run3/ss3
../Run3/ss3: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ../Run3/ss3)
../Run3/ss3: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ../Run3/ss3)
../Run3/ss3: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ../Run3/ss3)
../Run3/ss3: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ../Run3/ss3)
If a suitable version cannot be provided we're back to the option of running previous versions of ss3, or compiling ADMB from source. Thanks again for the support provided so far. Hopefully this may be helpful any case to others having the same issue and to your dev team.
Best Eros
@erosquesada Did the zip file in the previous comment with the ubuntu-20.04 executable work for you?
No @e-perl-NOAA , unfortunately using that executable does not solve the issue. See my last comment for details.
Okay, I will try compiling it again in a different way to see if that works.
Also please try the following in the command line and see if that works.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install libc6
sudo apt-get install libstdc++6
@erosquesada please try the executable in this zip file. ss3-ubuntu-22.04.zip
Hi @e-perl-NOAA, thanks for updating the file. It seems we are almost there, but not fully working. Now when testing the file you provided, after the sudo commands you passed above, the error is reduced to:
vano0001@SLU-RSERVER02:~$ ../vano0001/ss3_linux
../vano0001/ss3_linux: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ../vano0001/ss3_linux)
../vano0001/ss3_linux: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ../vano0001/ss3_linux)
In practice the issue seems solved for libstdc++6, but not for libc6.
I am going to close this issue. If we get other users that have this problem we can reopen it. Hopefully this issue with the linux ss3 exe is resolved by #685.