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)