You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Tim Harper (JIRA)" <ji...@apache.org> on 2018/03/02 06:25:00 UTC

[jira] [Created] (MESOS-8629) GLIBCXX_3.4.21 required for Mesos Debian Jessie package, not available

Tim Harper created MESOS-8629:
---------------------------------

             Summary: GLIBCXX_3.4.21 required for Mesos Debian Jessie package, not available
                 Key: MESOS-8629
                 URL: https://issues.apache.org/jira/browse/MESOS-8629
             Project: Mesos
          Issue Type: Choose from below ...
            Reporter: Tim Harper


h1. Overview

When I install the Mesos package for Debian Jessie using the following Dockerfile:

{code}

FROM debian:jessie

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E56151BF && \
    echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \
    echo "deb http://repos.mesosphere.com/debian jessie-testing main" | tee -a /etc/apt/sources.list.d/mesosphere.list && \
    echo "deb http://repos.mesosphere.com/debian jessie main" | tee -a /etc/apt/sources.list.d/mesosphere.list && \
    apt-get update && \
    # this MUST be done first, unfortunately, because Mesos packages will create folders that should be symlinks and break the python install process
    apt-get install python2.7-minimal -y && \
    apt-get install -y openjdk-8-jdk-headless openjdk-8-jre-headless ca-certificates-java=20161107~bpo8+1 && \
    apt-get install --no-install-recommends -y --force-yes mesos=1.5.0-2.0.1 && \

    # disable mesos-master; we don't want to start in this image
    systemctl disable mesos-master && \
    systemctl disable mesos-slave && \

    # jdk setup
    /var/lib/dpkg/info/ca-certificates-java.postinst configure && \
    ln -svT "/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture)" /docker-java-home && \

    # jq / curl
    apt-get install -y procps curl jq=1.5* && \

    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

ENV JAVA_HOME /docker-java-home

ENTRYPOINT ["/sbin/init"]
{code}

Then, Mesos will install. However, when I run the container, it will not launch:

{code}
docker run --name mesos-agent-local-a --rm --privileged --label marathon-package-test --cap-add SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro --entrypoint /bin/bash -it marathon-package-test:mesos

root@c17342b33218:/# /usr/sbin/mesos-master
/usr/sbin/mesos-master: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/sbin/mesos-master)
/usr/sbin/mesos-master: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/libmesos-1.5.0.so)
{code}

Debian Jessie does not include a new enough version of libstdc++6 with version GLIBCXX_3.4.21 support. After updating to the latest library version:

{code}
root@c17342b33218:/# strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
{code}

h2. Potential solutions

If the Debian Mesos build is going to require {{GLIBCXX_3.4.21}}, then it seems that the package for Debian Jessie should be revoked. However, this does not seem reasonable as Debian Jessie is still supported, and the long-term-support continues through to 2020.

Otherwise, the package should be rebuilt with a more lenient requirement of GLIBCXX.





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)