Python 2.7 importing error (on Ubuntu 14.04) due to OpenMP run-time issue or system version incompatibility

Hi there,

I am using Travis CI to run auto-test under Py 2.7 with Ubuntu. An existing test failed with no code change to it (the last successful execution is yesterday). The failed run link is here: https://travis-ci.org/yzhao062/pyod/jobs/469774663

I checked the error message:

E XGBoostError: XGBoost Library (libxgboost.so) could not be loaded.
E Likely causes:
E * OpenMP runtime is not installed (vcomp140.dll or libgomp-1.dll for Windows, libgomp.so for UNIX-like OSes)
E * You are running 32-bit Python on a 64-bit OS
E Error message(s): [‘dlopen: cannot load any more object with static TLS’, ‘dlopen: cannot load any more object with static TLS’]

Seems like it is complaining about the system environment while importing the python library, so I am wondering if there is anything new introduced to travis-ci python 2.7 env.

This error happens to a Python library called xgboost. I have verified the same version xgboost (0.81) is installed as before. A previous successful running log is here: https://travis-ci.org/yzhao062/pyod/jobs/469330726 I did some line-by-line comparison with no success.

I also tried to run all test with Python 2.7 locally with no issue. A similar tool (circle-ci) also runs fine: https://circleci.com/gh/yzhao062/pyod/163

Thanks a lot for the help!

We have not deployed any changes to Python 2.7 since your last passing build 5 days ago. Please review changes in your dependencies and make sure that they are not causing problems.

(You can also try restarting preciously passing builds. If they fail now, changes in the dependencies are a likely explanation.)

Thanks for the note. The underlying dependency has not changed for a while, and the same test passed at circle ci under Linux with Python 2.7.15. So I tried two more things:

  • change from Python 2.7.14 to 2.7.15,
  • update pip…

It still fails and complains about python version (it should be 64 bit to run the test). Can I know what is the place to check whether the running instance on Travis CI is 64 bit instead of 32 bit under python 2 with linux?

Thanks a lot:)

This is not true. A quick check reveals 3 updates:

  Downloading https://files.pythonhosted.org/packages/2a/f3/de9c1bd16311982711209edaa8c6caa962db30ebb6a8cc6f1dcd2d3ef616/scipy-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl (30.8MB)                               |       Downloading https://files.pythonhosted.org/packages/45/d1/7c2b33a5daee3d67752d043fe7e1476c4465788b0b6e59367fd71fdf684a/scipy-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl (26.6MB)
  Downloading https://files.pythonhosted.org/packages/0b/af/fda67f0a88e31cfabab58421dc1b6025cc1f8fd5c17f24fee5fe9a38eb57/tensorboard-1.12.0-py2-none-any.whl (3.0MB)                                          |       Downloading https://files.pythonhosted.org/packages/63/aa/55b0feda10163067b139ac27ba8b74205ff57d3facd131a382a9e586fab1/tensorboard-1.12.1-py2-none-any.whl (3.0MB)
  Downloading https://files.pythonhosted.org/packages/c0/a5/161f97110155b7bb828336cf42eab8dade2ac6b58714e5406adcb099b0ae/grpcio-1.17.0-cp27-cp27mu-manylinux1_x86_64.whl (2.1MB)                              |       Downloading https://files.pythonhosted.org/packages/bf/d9/5880e43198f048afbe75348baceafc483e4c3ab657e3e3c1d0b57dacaa0c/grpcio-1.17.1-cp27-cp27mu-manylinux1_x86_64.whl (10.0MB)

The left side of | is the passing build, and the right side is the failing one.

As I said earlier, try re-running the previously passing one.

And we only build 64-bit executables.

1 Like

Thanks a lot for pointing it out. It is fixed now by enforcing to use a specific version of the library.
The original error message made me feel it is an env change. Appreciated the confirmation that no env change happened.

Anyway, thanks lot :slight_smile:

Imprint