-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
lightGBM 2.2.200 still has glibc issue /lib64/libstdc++.so.6: version : GLIBCXX_3.4.20' not found #1945
Comments
lightGBM 2.2.2 still can not run in older system (centOS 7): ======================================= i could compile the lightGBM source in this environment successfully, |
The dependency is based on your build tool chain. You should use gcc-4.8 . |
|
@puyvqi |
i know ubuntu 14.04 and above can run successfully, i just wanna know if it can run in centos 7 |
it is very strange. if the build machine and execute machine are the same, it should have no dependency issues. |
yes ,so wired ,compile successfully, but run failed, in the same machine, the glibc issue is gone , but GLIBCXX_3.4.20 comes in the run time.my environment only has GLIBCXX_3.4.19 and below. |
@puyvqi MMLSpark-team released 0.16 version a day ago with new LightGBM binaries. You can try it. |
@imatiach-msft Could you rebuild the 0.16 version on CentOs 7 and provide me the maven address to download?
19/04/08 18:07:01 WARN scheduler.TaskSetManager: Lost task 2.0 in stage 71.0 (TID 8298, bigdata.node4, executor 3): java.lang.UnsatisfiedLinkError: /data/cdh/yarn/nm/usercache/hadoop/appcache/application_1551665533369_5974/container_1551665533369_5974_01_000004/tmp/mml-natives5619078166263179450/lib_lightgbm.so: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /data/cdh/yarn/nm/usercache/hadoop/appcache/application_1551665533369_5974/container_1551665533369_5974_01_000004/tmp/mml-natives5619078166263179450/lib_lightgbm.so) |
Just for reference: |
Is the https://mvnrepository.com/artifact/com.microsoft.ml.lightgbm/lightgbmlib artifact owned by this project or MMLSpark? If you download the latest artifact (2.2.300) and do a strings search on it, you can see that it still have a reference to GLIBCXX_3.4.20. |
@pawitp I created those maven artifacts. It looks like I shouldn't be compiling the code on ubuntu, which I am doing currently. Maybe I should compile the binaries in centos. |
@pawitp It's owned by MMLSpark @imatiach-msft Hi! https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html I think we can compile with |
hi @StrikerRUS |
Oh, that's the root cause of glibc issue! At least, now we know how the problem can be solved. That docker is pulled automatically by Azure Pipelines by the following lines: The bash script you've referenced (along with this one) is used to install additional software and run tests after entering inside docker. I think we can work in the following manner. Can you please post here a brief guide how to setup the needed versions of JAVA and SWIG inside the docker (you can play with it locally: https://hub.docker.com/r/lightgbm/vsts-agent) from scratch? After that I'll modify this docker. @guolinke Don't you mind setup one more Azure Pipelines job for SWIG, at least for Linux and without any tests? Only compilation. I suppose it won't take much time. We had so many users suffering from GLIBC issues! |
I'm sorry, I'm very far from JAVA world, but it seems to me that we'll have some troubles with latest JAVA installation: https://launchpad.net/~webupd8team/+archive/ubuntu/java
https://dev.to/lemuelogbunude/java-is-still-free-286 Is OpenJDK a workaround? |
For normal usage, OpenJDK is fully compatible with Oracle JDK, so yes, there should be no issue with it. EDIT: I recommend using OpenJDK 8 for widest compatibility. |
@guolinke Can you please answer to the question in last paragraph #1945 (comment)? Your answer may make all further work pointless. |
@StrikerRUS sure, i think it is okay. |
@StrikerRUS I've made a rough first attempt at getting this to work here: How could I verify/debug my changes? Is there an easy way I could run the setup script & docker and look at the outputs? Also, it would be nice to do something similar for windows and macos. |
@imatiach-msft Thanks! You can install Docker on your machine and pull our image from here https://hub.docker.com/r/lightgbm/vsts-agent. As we are going to do all installation things inside docker for speedup, scripts will not be used, except one command to compile LightGBM with SWIG flag I'll try to update the docker today based on commands from your PR and report about results.
Let's start from Linux, OK? 😃 For macOS I suppose brew will help a lot. |
@StrikerRUS it looks like the builds for the PR failed for some reason - it seems that Java was not installed properly even with my apt-get install command |
@imatiach-msft Don't worry! I'll create a PR within an hour. Right now it compiles against Clang. Right after this test I'll ping you for a review. |
"As we are going to do all installation things inside docker for speedup, scripts will not be used," |
@StrikerRUS thanks, the PR looks great. Does this mean build artifacts will be created on each build? I tried to find the build artifacts on the build for that PR (to look at the .so files and jar) but couldn't find them, although it looks like this line should have published something: |
@imatiach-msft Thanks for your review! As I said in my comment here #2125 (comment), artifacts are not published for PRs. They are published for each commit in any branch, but not for PRs. As I worked in https://dev.azure.com/lightgbm-ci/lightgbm-ci/_build/results?buildId=1856 |
Hi there, this is really exciting work! I have encountered the same error on my centos7 VM and really appreciate that there is a solution out there right now. Since the PR has not been officially merged into master right now, if I want to use this most recent update in my lightGBM model, do I just use the lightgbmlib.jar in the package asset folder you mentioned above? Many thanks! |
@XinyunTang Hi! Sure, you can use jar file from that PR's artifacts. Here is the direct link: https://dev.azure.com/lightgbm-ci/8461a79b-5dce-4085-ad70-4410b7135276/_apis/build/builds/1856/artifacts?artifactName=PackageAssets&api-version=5.1-preview.5&%24format=zip. After the merge, there will be possible to download jar file with the latest code directly via the artifacts download badge on this page. We hope that the compilation on Ubuntu 14 should solve the incompatibility problems on CentOS. Your feedback is very welcome as well! |
@imatiach-msft Everything has been updated finally. JAR file is now in |
Thank you @xiaoxiaofengzi for the clarification!
Unfortunately this is a known problem caused by that MMLSpark uses old and broken (in terms of dependencies) version of LightGBM.
You can track this PR and these issues 1, 2 to know when the problem will be solved on the Spark-package side. I think that you can copy-paste your log there to hurry them gently.
From the our side starting from
2.2.2
version we automatically guaranteeGLIBC <= 2.14
andGLIBCXX <= 3.4.19
:https://github.com/Microsoft/LightGBM/blob/a694712b7fb86cd532eea2c1781b58d4ba58436a/helpers/check_dynamic_dependencies.py#L18-L23
https://github.com/Microsoft/LightGBM/blob/a694712b7fb86cd532eea2c1781b58d4ba58436a/helpers/check_dynamic_dependencies.py#L25-L31
Thanks for your patience and sorry for the inconvenience!
Originally posted by @StrikerRUS in #1858 (comment)
The text was updated successfully, but these errors were encountered: