{"action":"closed","issue":{"url":"https://api.github.com/repos/yahoo/CaffeOnSpark/issues/132","repository_url":"https://api.github.com/repos/yahoo/CaffeOnSpark","labels_url":"https://api.github.com/repos/yahoo/CaffeOnSpark/issues/132/labels{/name}","comments_url":"https://api.github.com/repos/yahoo/CaffeOnSpark/issues/132/comments","events_url":"https://api.github.com/repos/yahoo/CaffeOnSpark/issues/132/events","html_url":"https://github.com/yahoo/CaffeOnSpark/issues/132","id":171507315,"number":132,"title":"Run with older libc","user":{"login":"navjotk","id":679809,"avatar_url":"https://avatars.githubusercontent.com/u/679809?v=3","gravatar_id":"","url":"https://api.github.com/users/navjotk","html_url":"https://github.com/navjotk","followers_url":"https://api.github.com/users/navjotk/followers","following_url":"https://api.github.com/users/navjotk/following{/other_user}","gists_url":"https://api.github.com/users/navjotk/gists{/gist_id}","starred_url":"https://api.github.com/users/navjotk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/navjotk/subscriptions","organizations_url":"https://api.github.com/users/navjotk/orgs","repos_url":"https://api.github.com/users/navjotk/repos","events_url":"https://api.github.com/users/navjotk/events{/privacy}","received_events_url":"https://api.github.com/users/navjotk/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-08-16T20:17:47Z","updated_at":"2016-09-20T20:07:42Z","closed_at":"2016-09-20T20:07:42Z","body":"I am trying to run this on a cluster that has libc version 2.12 and on trying to run the mnist example I get the following error:\r\n```\r\nException in thread \"main\" java.lang.UnsatisfiedLinkError: /home/navjot.kukreja/CaffeOnSpark/caffe-distri/distribute/lib/liblmdbjni.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/navjot.kukreja/CaffeOnSpark/caffe-distri/distribute/lib/liblmdbjni.so)\r\n        at java.lang.ClassLoader$NativeLibrary.load(Native Method)\r\n        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)\r\n        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1855)\r\n        at java.lang.Runtime.loadLibrary0(Runtime.java:870)\r\n        at java.lang.System.loadLibrary(System.java:1122)\r\n        at com.yahoo.ml.caffe.LmdbRDD$.com$yahoo$ml$caffe$LmdbRDD$$loadLibrary(LmdbRDD.scala:244)\r\n        at com.yahoo.ml.caffe.LmdbRDD.com$yahoo$ml$caffe$LmdbRDD$$openDB(LmdbRDD.scala:199)\r\n        at com.yahoo.ml.caffe.LmdbRDD.getPartitions(LmdbRDD.scala:46)\r\n        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)\r\n        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)\r\n        at scala.Option.getOrElse(Option.scala:120)\r\n        at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)\r\n        at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)\r\n        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)\r\n        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)\r\n        at scala.Option.getOrElse(Option.scala:120)\r\n        at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)\r\n        at com.yahoo.ml.caffe.CaffeOnSpark.train(CaffeOnSpark.scala:158)\r\n        at com.yahoo.ml.caffe.CaffeOnSpark$.main(CaffeOnSpark.scala:40)\r\n        at com.yahoo.ml.caffe.CaffeOnSpark.main(CaffeOnSpark.scala)\r\n        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n        at java.lang.reflect.Method.invoke(Method.java:497)\r\n        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)\r\n        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)\r\n        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)\r\n        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)\r\n        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)\r\n```\r\n\r\nClearly, `liblmdbjni.so` was compiled with a higher version of libc. On checking the build logs, I realise that this library was never compiled as part of the build and was actually distributed as a binary. \r\n\r\nMy choices now are:\r\n- Recompile liblmdbjni with the older version\r\n- Stick to the current binary and make it see a newer version of libc\r\n\r\nOption 2 above becomes harder since I don't have root access to the cluster so `chroot` isn't an option. The path to `ld` is hardcoded inside the binary and will always be searched inside `/lib`. \r\n\r\nAny ideas here?"}}
{"actor":{"display_login":"navjotk"}}