shalinshah1993 / SBSCL

The Systems Biology Simulation Core Library (SBSCL) provides an efficient and exhaustive Java implementation of methods to interpret the content of models encoded in the Systems Biology Markup Language (SBML) and its numerical solution.
https://draeger-lab.github.io/SBSCL/
GNU Lesser General Public License v3.0
0 stars 2 forks source link

LPsolver not working on ubuntu linux (libglpkjni_x64.so: undefined symbol: lib_set_fault_hook) #24

Closed matthiaskoenig closed 6 years ago

matthiaskoenig commented 6 years ago

I added a simple test case for the solver in org.simulator.fba.CobraSolverTest. When trying to run an optimization I get the following error:

org.simulator.fba.CobraSolverTest
/usr/lib/jvm/java-8-oracle/bin/java: symbol lookup error: /home/mkoenig/git/sbscl-shalin/libglpkjni_x64.so: undefined symbol: lib_set_fault_hook

Process finished with exit code 127

Do I need to install anything else? Copy glpk libraries somewhere?

shalinshah1993 commented 6 years ago

I think it is because you haven’t added all the scpsolver lpsolver and glpk to your eclipse classpath.

Sent from my iPhone

On Jun 7, 2018, at 5:43 PM, Matthias König notifications@github.com wrote:

I added a simple test case for the solver in org.simulator.fba.CobraSolverTest. When trying to run an optimization I get the following error:

org.simulator.fba.CobraSolverTest /usr/lib/jvm/java-8-oracle/bin/java: symbol lookup error: /home/mkoenig/git/sbscl-shalin/libglpkjni_x64.so: undefined symbol: lib_set_fault_hook

Process finished with exit code 127 Do I need to install anything else? Copy glpk libraries somewhere?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

matthiaskoenig commented 6 years ago

So what do I have to add in addition to the jars which are in the repository? I am working outside of eclipse, i.e., either in the console or with idea intellj.

shalinshah1993 commented 6 years ago

Try adding jar files to you classpath in IntelliJ. Right click on project > properties and add jar to classpath.

niko-rodrigue commented 6 years ago

This does look more like a linux libraries problem. Can you run: ldd /home/mkoenig/git/sbscl-shalin/libglpkjni_x64.so

To see if you are missing some libraries. But the problem can be that you have different versions compared to the versions "libglpkjni_x64.so" was compiled against.

matthiaskoenig commented 6 years ago

This has to work within maven. Otherwise things will not work within travis. It would be great if you could write down the steps you did to make it work in the readme.

On Jun 8, 2018 2:17 AM, "Shalin Shah" notifications@github.com wrote:

Try adding jar files to you classpath in IntelliJ. Right click on project > properties and add jar to classpath.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shalinshah1993/SBSCL/issues/24#issuecomment-395605563, or mute the thread https://github.com/notifications/unsubscribe-auth/AA29ui1UsdVe07EafkKHA03k7MTxxLBzks5t6cKEgaJpZM4UfK4F .

matthiaskoenig commented 6 years ago

Can anybody besides Shalin run the FBA simulations? If yes, what additional libraries/packages were installed, which paths set after cloning the repository? Did you install libglpk, libglpk-java and add them to the classpath?

Can anybody run the CobraSolverTest.java in the test-cases branch? https://github.com/shalinshah1993/SBSCL/blob/test-cases/src/test/java/org/simulator/fba/CobraSolverTest.java

The libglpkjni_x64.so is generated dynamically when trying to run an FBA example. I.e. the file is generated while executing the java code.

ldd libglpkjni_x64.so 
    linux-vdso.so.1 =>  (0x00007fff4143b000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5497a0a000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5497806000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f549743c000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5498012000)
matthiaskoenig commented 6 years ago

I added an issue to the SCPsolver board: https://groups.google.com/forum/embed/?place=forum/scpsolver&showsearch=true&showpopout=true&showtabs=false&parenturl=http%3A%2F%2Fscpsolver.org%2F#!topic/scpsolver/B7ra8gkk5Jk

niko-rodrigue commented 6 years ago

On which branch should I be to test, "maven-build" ? Just noticed that you spoke about the test-cases branch in the middle of your post. My build is failing because of certificate errors:

[ERROR] Failed to execute goal on project sbscl: Could not resolve dependencies for project org.simulator:sbscl:jar:1.5: Failed to collect dependencies at de.uni-rostock.sbi:CombineArchive:jar:1.3.6 -> de.binfalse:BFLog:jar:1.3.3: Failed to read artifact descriptor for de.binfalse:BFLog:jar:1.3.3: Could not transfer artifact de.binfalse:BFLog:pom:1.3.3 from/to sems-maven-repository-releases (http://mvn.sems.uni-rostock.de/releases/): hostname in certificate didn't match: != OR -> [Help 1]

did you already encountered this error ? I tried the different options to remove certificate checking without success.

On Mon, 11 Jun 2018 at 11:34, Matthias König notifications@github.com wrote:

I added an issue to the SCPsolver board:

https://groups.google.com/forum/embed/?place=forum/scpsolver&showsearch=true&showpopout=true&showtabs=false&parenturl=http%3A%2F%2Fscpsolver.org%2F#!topic/scpsolver/B7ra8gkk5Jk

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/shalinshah1993/SBSCL/issues/24#issuecomment-396198946, or mute the thread https://github.com/notifications/unsubscribe-auth/ABlQ8Q4xeGeyow3FgGdHZMEXe2YLe_SWks5t7kfBgaJpZM4UfK4F .

niko-rodrigue commented 6 years ago

After downloading by hand BFLog, I was able to run the test and I have the exact same error as you @matthiaskoenig. I am running Centos 7.5.1804.

matthiaskoenig commented 6 years ago

No, I did not see the certificate error so far.

niko-rodrigue commented 6 years ago

The certificate problem seem to be avoided if you have already a copy of the jar in your local maven repo. I managed to run the test. The src/lib/lp-lib/GLPKSolverPack.jar contain several so files which have a different size as the one generated in the root folder. From the scpsolver forum, I guess we should be using glpk version 4.65 that might be a solution to install it on /usr/lib (centos is using version 4.52).

But extracting the GLPKSolverPack.jar to a temp folder and setting LD_LIBRARY_PATH to include the folder that contain the so files, I was then able to run the tests.

matthiaskoenig commented 6 years ago

Hi @niko-rodrigue,

I tried the LD_LIBRARY_PATH solution (extract in temp dir and setting environment variable), but still get the same error. I can see that the correct library is tried (extracted directory library). Could it be that the library is only working on some linux systems?

/usr/lib/jvm/java-8-oracle/bin/java: symbol lookup error: /home/mkoenig/git/sbscl-shalin/src/lib/glpk/libglpkjni_x64.so: undefined symbol: lib_set_fault_hook
ldd libglpkjni_x64.so 
    linux-vdso.so.1 =>  (0x00007fffe71b0000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcf9ad7c000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcf9ab78000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcf9a7ae000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fcf9b384000)
matthiaskoenig commented 6 years ago

Hannes just answered is issue on linux 64.

Hi Matthias, I am currently working on bringing GLPKSolverPack up to date (v 4.65, and fixing errors) on all operating systems. While the GLPK solver pack has been working on Linux (specifically Ubuntu) forever, there seem to be problems on newer versions. Usually, errors like this occur due to some changes in the JNI interfaces...

This is the current status: Win 64: works Win 32: works Linux 64: error Linux 32: unknown, but who uses that anyway... Mac 64: works  

shalinshah1993 commented 6 years ago

This issue was moved to draeger-lab/SBSCL#5