Can you prepend your command with `ls -al /usr/lib` and check in stdout if
you are seeing the shared object? By the way why are you using LD_PRELOAD
instead of LD_LIBRARY_PATH. LD_PRELOAD will force the linker to load your
library before any other libraries. It's usually used to override system
libraries so found a bit odd that you are using it here?

On Mon, Oct 17, 2016 at 7:54 AM, Mark Hammons <mark.hamm...@inaf.cnrs-gif.fr
> wrote:

> No, but even when I set LD_PRELOAD=/usr/lib/libtiff.so.5 for the process
> environment it says it can't load /usr/lib/libtiff.so.5.
>
> On Monday, October 17, 2016 7:52:16 AM CEST Avinash Sridharan wrote:
> > Are you setting the env in the dockerfile?
> >
> > On Mon, Oct 17, 2016 at 6:58 AM, Mark Hammons <
> mark.hamm...@inaf.cnrs-gif.fr
> > > wrote:
> > >
> > > Here's the code I define my executor to mesos with:
> > >         val iuwtURI = CommandInfo.URI.newBuilder().setValue("http://
> ***/
> > >
> > > IUWT.tar.gz").setExtract(true).setCache(false).build()
> > >
> > >         val iuwtjURI = CommandInfo.URI.newBuilder().setValue("http://
> ***/
> > >
> > > iuwtExecutor-assembly-0.1-
> > > SNAPSHOT.jar").setExecutable(false).setCache(false).build()
> > >
> > >         val iuwtExec = "java -jar iuwtExecutor-assembly-0.1-SNAPSHOT.jar
> -
> > >
> > > Xmx1024M -Xmx128M"
> > >
> > >         val iuwtCommand =
> > >
> > > CommandInfo.newBuilder.setValue(iuwtExec).addAllUris(List(iuwtjURI,
> > > iuwtURI).asJava).setShell(true).build()
> > >
> > >         val iuwtImageInfo =
> > >
> > > Image.newBuilder().setType(Image.Type.DOCKER).setDocker(
> > > Image.Docker.newBuilder.setName("ubuntu-
> > > mesos:0.11-17102016-IUWT").build()).build()
> > >
> > >         val iuwtContInfo =
> > >
> > > ContainerInfo.MesosInfo.newBuilder().setImage(iuwtImageInfo).build()
> > >
> > >         val iuwtContainer = ContainerInfo.newBuilder()
> > >
> > >                 .setMesos(iuwtContInfo)
> > >
> > >           .setType(ContainerInfo.Type.MESOS)
> > >           .build()
> > >
> > >         val iuwtExecutor = ExecutorInfo.newBuilder()
> > >
> > >                 .setCommand(iuwtCommand)
> > >                 .setContainer(iuwtContainer)
> > >                 .setExecutorId(ExecutorID.newBuilder().setValue("iuwt-
> > >
> > > executor"))
> > >
> > >                 .setName("iuwt-executor").build()
> > >
> > > The ubuntu-mesos:0.11-17102016-IUWT is a locally hosted docker image.
> > > IUWT is
> > > the program I'm trying to run, and it runs perfectly fine in the
> > > aforementioned docker container when running on docker. The
> libtiff.so.5
> > > problem only manifests when I'm using mesos' containerizer.
> > >
> > > On Monday, October 17, 2016 6:52:17 AM CEST Avinash Sridharan wrote:
> > > > You are running a container with its own image right? So is
> > >
> > > /usr/lib/x86_64
> > >
> > > > in the container's file system or the host file system?
> > > >
> > > > On Mon, Oct 17, 2016 at 6:47 AM, Mark Hammons <
> > >
> > > mark.hamm...@inaf.cnrs-gif.fr
> > >
> > > > > wrote:
> > > > >
> > > > > Yes, it's installed under /usr/lib/x86_64 or whatever the multilib
> > >
> > > path is
> > >
> > > > > in
> > > > > debian. It seems files under this path are not accessible.
> > > > >
> > > > > I added LD_PRELOAD=/usr/lib/libtiff.so.5 to try to force the
> symlink
> > >
> > > to
> > >
> > > > > load
> > > > > but it refused to load it. I think the mesos containerizer is
> > >
> > > preventing
> > >
> > > > > the
> > > > > program from accessing anything in a directory under /usr/lib/ for
> > > > > some
> > > > > reason, as the same program runs fine in the same container running
> > >
> > > under
> > >
> > > > > docker.
> > > > >
> > > > > On Monday, October 17, 2016 6:40:49 AM CEST Avinash Sridharan
> wrote:
> > > > > > Is the library part of the image that you are running? Also you
> > > > > > might
> > > > >
> > > > > need
> > > > >
> > > > > > to setup LD_LIBRARY_PATH in your env while launching the image so
> > >
> > > that
> > >
> > > > > the
> > > > >
> > > > > > container process knows where to look for the shared object.
> > > > > >
> > > > > > On Mon, Oct 17, 2016 at 5:21 AM, Mark Hammons <
> > > > >
> > > > > mark.hamm...@inaf.cnrs-gif.fr
> > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > Hi all,
> > > > > > >
> > > > > > > I've been working with the mesos containerizer to handle my
> docker
> > > > > > > containers
> > > > > > > recently. I created a docker container that requires
> libtiff.so.5,
> > >
> > > and
> > >
> > > > > the
> > > > >
> > > > > > > application within it runs well. But when I try to run it
> within
> > >
> > > the
> > >
> > > > > mesos
> > > > >
> > > > > > > containerizer I get an error saying libtiff.so.5 doesn't exist.
> > > > > > >
> > > > > > > The application is being launched via java's process mechanism
> > > > > > > from
> > > > >
> > > > > inside
> > > > >
> > > > > > > a
> > > > > > > java thread in a custom java executor if that makes a
> difference.
> > > > > > >
> > > > > > > Any idea what could be causing this change in behavior? As you
> can
> > >
> > > see
> > >
> > > > > in
> > > > >
> > > > > > > the
> > > > > > > attached log file, I check /usr/lib, and a symbolic link to
> > > > > > > /usr/lib/x86..../
> > > > > > > libtiff.so.5 exists in /usr/lib so the program should be able
> to
> > >
> > > find
> > >
> > > > > and
> > > > >
> > > > > > > load
> > > > > > > that....
> > > > > > > ----
> > > > > > > Mark Edgar Hammons II | +33 06 03 69 56 56
> > > > >
> > > > > --
> > > > > ----
> > > > > Mark Edgar Hammons II | +33 06 03 69 56 56
> > >
> > > --
> > > ----
> > > Mark Edgar Hammons II | +33 06 03 69 56 56
>
>
> --
> ----
> Mark Edgar Hammons II | +33 06 03 69 56 56
>



-- 
Avinash Sridharan, Mesosphere
+1 (323) 702 5245

Reply via email to