Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Running 3.30.23.1 ss3 on Linux #652

Open
erosquesada opened this issue Jan 14, 2025 · 11 comments
Open

[Bug]: Running 3.30.23.1 ss3 on Linux #652

erosquesada opened this issue Jan 14, 2025 · 11 comments
Assignees

Comments

@erosquesada
Copy link

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.

@e-perl-NOAA
Copy link
Collaborator

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.

  1. The OS for a particular runner's latest version has changed/updated to ubuntu 24.04 and backwards compatibility with executables built using a previous version of that same runner no longer works.
  2. 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.

@iantaylor-NOAA
Copy link
Contributor

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.

@erosquesada
Copy link
Author

erosquesada commented Jan 15, 2025

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

@e-perl-NOAA
Copy link
Collaborator

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.

ss3-ubuntu-20.04.zip

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

@erosquesada
Copy link
Author

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

@e-perl-NOAA
Copy link
Collaborator

@erosquesada Did the zip file in the previous comment with the ubuntu-20.04 executable work for you?

@erosquesada
Copy link
Author

No @e-perl-NOAA , unfortunately using that executable does not solve the issue. See my last comment for details.

@e-perl-NOAA
Copy link
Collaborator

Okay, I will try compiling it again in a different way to see if that works.

@e-perl-NOAA
Copy link
Collaborator

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

@e-perl-NOAA
Copy link
Collaborator

@erosquesada please try the executable in this zip file.
ss3-ubuntu-22.04.zip

@erosquesada
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants