Thanks for your pointers! I will give that a try to see if I can track down the problem.

Do you mind sharing a bit more about your build process?

What do your ./configure flags look like? Also, do you do a `make install` and then package up the contents?

Cheers!

On 18/09/2015 10:06 AM, Alexander Gallego wrote:
I run a custom build of mesos and it works pretty reliably, so I'll try to share what I do in the hopes that it helps you.

The symptom you are seeing of exiting before anything is output to the logs has been usually an issue with the LD_LIBRARY_PATH being screwed up. I would try to ssh into the machines and run the command manually.

Native code is a bit hard to debug, but this is what I do for a cluster to figure out mesos issues.

1. Recompile with -ggdb and ship dwarf symbols (if you don't want to, you'll have to symbolize the binary later) 2. echo 'core.%h.%e.%t' > /proc/sys/kernel/core_pattern on all your machines 3. wrap your mesos executors (if native) as well as mesos-master and mesos-slave in a bash script that you control 4. In this bash script, set the filehandle limits from the soft to the hard
5. In this bash script, set the core dump limits to unlimited

When it crashes, it will be pretty straight forward to debug with the core dump, it will almost tell you the exact assembly instruction, or exception in the code.

I've never had crashes with mesos after compiling with

```
-mtune=generic
```

I had something similar to my rocksdb build (https://github.com/facebook/rocksdb/issues/690) happened to my mesos build when I was first starting and compiling with -mtune=native

If you are linking the libmesos.so into another process (i.e.: you wrote your own native executor) then make sure you do something similar to the core dump limits.

Note: If you are running dockerized/containerized deployments you won't be able to modify the /proc/sys/* , so this will have to be done on the host computers.

I've been meaning to write a blog post about this, but this is the TL;DR.

Hope this helps.

- Alex







On Thu, Sep 17, 2015 at 7:33 PM, F21 <f21.gro...@gmail.com <mailto:f21.gro...@gmail.com>> wrote:

    Is there anyway to build portable binaries for mesos?

    Currently, I have tried building my own libsvn, libsasl2, libcurl,
    libapr and then built mesos using the following:

    ../configure CC=gcc-4.8 CXX=g++-4.8
    LD_LIBRARY_PATH=/tmp/mesos-build/sasl2/lib
    SASL_PATH=/tmp/mesos-build/sasl2/lib/sasl2
    --prefix=/tmp/mesos-build/mesos --with-svn=/tmp/mesos-build/svn
    --with-apr=/tmp/mesos-build/apr
    --with-sasl=/tmp/mesos-build/sasl2/ --with-curl=/tmp/mesos-build/curl
    make
    make install

    I then compress /tmp/mesos-build/mesos into an archive and
    distribute it to my machines. The only problem is that the build
    seems to be buggy. For example, I've been experiencing a
    containerization issues where the executors will crash, but not
    output anything useful to stderr and stdout. See
    https://github.com/mesosphere/hdfs/issues/194

    Is there a definite way to build portable binaries that I can
    easily copy to another machine to run?




--





Alexander Gallego | http://concord.io

Reply via email to