openMS nodes are not working for KNIME on Linux Mint 17.2

Whenever I try to execute an openMS node in KNIME, I get an error response. As an example, I added the console output for the OMSSAAdapter:

WARN  OMSSAAdapter         0:3        Can't continue loop as the workflow was restored with the loop being partially executed. Reset loop start and execute entire loop again.
ERROR OMSSAAdapter         0:3        Failing process stdout: []
ERROR OMSSAAdapter         0:3        Failing process stderr: [/home/jan/Downloads/knime-full_3.1.2/plugins/de.openms.linux.x86_64_2.0.1.201605171117/payload/bin/OMSSAAdapter: /usr/lib/x86_64-linux-gnu/libgomp.so.1: version `GOMP_4.0' not found (required by /home/jan/Downloads/knime-full_3.1.2/plugins/de.openms.linux.x86_64_2.0.1.201605171117/payload/bin/OMSSAAdapter), /home/jan/Downloads/knime-full_3.1.2/plugins/de.openms.linux.x86_64_2.0.1.201605171117/payload/bin/OMSSAAdapter: /usr/lib/x86_64-linux-gnu/libgomp.so.1: version `GOMP_4.0' not found (required by /home/jan/Downloads/knime-full_3.1.2/plugins/de.openms.linux.x86_64_2.0.1.201605171117/payload/lib/libOpenMS.so), /home/jan/Downloads/knime-full_3.1.2/plugins/de.openms.linux.x86_64_2.0.1.201605171117/payload/bin/OMSSAAdapter: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/jan/Downloads/knime-full_3.1.2/plugins/de.openms.linux.x86_64_2.0.1.201605171117/payload/lib/libOpenMS.so)]
ERROR OMSSAAdapter         0:3        Execute failed: Failed to execute node OMSSAAdapter

I use Linux Mint 17.2 and built openMS 2.0.1 from
https://sourceforge.net/projects/open-ms/files/OpenMS/OpenMS-2.0.1/
according to the installation guide on
http://ftp.mi.fu-berlin.de/pub/OpenMS/release1.9-documentation/html/install_linux.html

In addition to that, KNIME instantly shuts down whenever I try to configure an openMS node. Is it possible that openMS nodes for KNIME are not working if openMS was built from sources? If you need more information, please let me know.

Thanks in advance!

Jan

 

Hi,

first of all, the 2.0.1 release was a source-only release and was not thoroughly tested for the use within KNIME.

However, when used from within KNIME, you should not need to build OpenMS by yourself (KNIME comes with a precompiled OpenMS library and executables). Which KNIME UpdateSite did you use to install the OpenMS nodes in KNIME? The standard http://update.knime.org/community-contributions/trusted/$KNIME_VERSION$? 

Anyway, the error you experience is currently unknown for us. The first line is a common warning when you reopen a workflow that was previously running a loop. The following lines cause the problem. It tells you that it is missing important libraries like the C++ Standard library and the parallelization library OpenMP. I think the OpenMS libraries shipped with KNIME were compiled with a newer GCC version than yours. Check yours with 

gcc --version

You probably have to install at least the standard library package of the newer GCC it was compiled with.

sudo apt-get install libstdc++6

Try this and then report back if solves anything. Hopefully also the config dialogue problem.

Regards,

Julianus

 

Hi Julianus,

thanks for the quick answer! Unfortunately, I wasn't able to solve my problem. I tried

gcc --version

which gave me

gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc .

etc. Not sure if that's the most recent version though.
 

Additionally,

sudo apt-get install libstdc++6

told me that I have the newest version of libstdc++6 installed.

I used http://tech.knime.org/update/community-contributions/trunk/ to install the OpenMS nodes. My instructor at the university told us to install the nodes from there, which apparently worked for everyone except me. I also tried installing from the link you gave me, which resulted in

Could not find http://update.knime.org/.... 

I hope there is another way to solve this besides using KNIME on Windows. Again, thank you very much for taking the time to help me!

Best wishes,

Jan

It seems Ubuntu 14.04's c++ library is indeed a bit old and doesn't have the GLIBCXX_3.4.20 symbol. Julianus, any chance you can recompile the library against a slightly older version? 14.04 is still very common.

Hi,

yes there is a chance. But I don't know how fast we can do that. Our current build machines were upgraded some months ago and we might need to have an extra virtual machine with an old compiler to ensure that the old libraries are used. I will look into that. Static linking or shipping the used stdlib might also be an option.

For a quick solution the OP might have two choices:

- Use a non-default update site to actually get the newest version of gcc or at least the stdlib

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install libstdc++6

- You said you were able to compile OpenMS on your platform. You could actually just replace the binaries that were built in your OpenMS-build/bin folder with the ones located in your KNIME installation (/PATH_TO_KNIME/plugins/de.openms.linux.x86_64_2.0.0_${VERSION}/payload/bin).

Sorry for the confusion, as I said I will try to make the compiled binaries more backwards compatible. 

Cheers

Julianus