AnsweredAssumed Answered

Install Atom in Docker Container: Unpack200 Segmentation Fault

Question asked by minh.nguyen700721 on Apr 25, 2017

Hello,

 

I am currently installing an atom within my own Docker container using Java 1.8.0_66 and running the atom_install64.sh (Linux 64-bit) provided by Boomi. However, upon install I am finding segmentation faults from unpack200:

 

+ packed_files='*.jar.pack user/*.jar.pack user/*.zip.pack'

+ for packed_file in '$packed_files'

++ expr '*.jar.pack' : '\(.*\)\.pack$'

+ unpacked_file='*.jar'

+ /usr/java/bin/unpack200 -q -r '*.jar.pack' '*.jar'

./atom_install64.sh: line 540:    73 Segmentation fault      $app_java_home/bin/unpack200 -q -r "$packed_file" "$unpacked_file" > /dev/null 2>&1

+ for packed_file in '$packed_files'

++ expr user/boomi-util.jar.pack : '\(.*\)\.pack$'

+ unpacked_file=user/boomi-util.jar

+ /usr/java/bin/unpack200 -q -r user/boomi-util.jar.pack user/boomi-util.jar

./atom_install64.sh: line 540:    75 Segmentation fault      $app_java_home/bin/unpack200 -q -r "$packed_file" "$unpacked_file" > /dev/null 2>&1

+ for packed_file in '$packed_files'

++ expr user/common-installer.jar.pack : '\(.*\)\.pack$'

+ unpacked_file=user/common-installer.jar

+ /usr/java/bin/unpack200 -q -r user/common-installer.jar.pack user/common-installer.jar

./atom_install64.sh: line 540:    77 Segmentation fault      $app_java_home/bin/unpack200 -q -r "$packed_file" "$unpacked_file" > /dev/null 2>&1

+ for packed_file in '$packed_files'

++ expr user/commons-lang.jar.pack : '\(.*\)\.pack$'

+ unpacked_file=user/commons-lang.jar

+ /usr/java/bin/unpack200 -q -r user/commons-lang.jar.pack user/commons-lang.jar

./atom_install64.sh: line 540:    79 Segmentation fault      $app_java_home/bin/unpack200 -q -r "$packed_file" "$unpacked_file" > /dev/null 2>&1

+ for packed_file in '$packed_files'

++ expr 'user/*.zip.pack' : '\(.*\)\.pack$'

+ unpacked_file='user/*.zip'

+ /usr/java/bin/unpack200 -q -r 'user/*.zip.pack' 'user/*.zip'

./atom_install64.sh: line 540:    81 Segmentation fault      $app_java_home/bin/unpack200 -q -r "$packed_file" "$unpacked_file" > /dev/null 2>&1

My Dockerfile:

 

# Start from a Java image.
FROM frolvlad/alpine-glibc

WORKDIR /

RUN /sbin/apk add --update -v tar gzip bash

#install java
RUN mkdir /opt
RUN mkdir /usr/java


COPY jdk-8u66-linux-x64.tar.gz ./opt

RUN cd opt

# Java Version
ENV JAVA_VERSION_MAJOR 8
ENV JAVA_VERSION_MINOR 66
ENV JAVA_VERSION_BUILD 17

RUN tar -zxf /opt/jdk-8u66-linux-x64.tar.gz -C /opt

RUN ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR}/* /usr/java &&\
rm -rf /usr/java/*src.zip \
/usr/java/lib/missioncontrol \
/usr/java/lib/visualvm \
/usr/java/lib/*javafx* \
/usr/java/jre/lib/plugin.jar \
/usr/java/jre/lib/ext/jfxrt.jar \
/usr/java/jre/bin/javaws \
/usr/java/jre/lib/javaws.jar \
/usr/java/jre/lib/desktop \
/usr/java/jre/plugin \
/usr/java/jre/lib/deploy* \
/usr/java/jre/lib/*javafx* \
/usr/java/jre/lib/*jfx* \
/usr/java/jre/lib/amd64/libdecora_sse.so \
/usr/java/jre/lib/amd64/libprism_*.so \
/usr/java/jre/lib/amd64/libfxplugins.so \
/usr/java/jre/lib/amd64/libglass.so \
/usr/java/jre/lib/amd64/libgstreamer-lite.so \
/usr/java/jre/lib/amd64/libjavafx*.so \
/usr/java/jre/lib/amd64/libjfx*.so


# Set environment
ENV JAVA_HOME /usr/java
ENV PATH ${PATH}:${JAVA_HOME}/bin

# Service home
ENV SERVICE_HOME /svc

 

 

CMD ["/bin/bash", "-x", "./atomdocker_setup.sh"]

EXPOSE 9090

atomdocker_setup.sh just runs: /bin/bash -x ./atom_install64.sh -q -dir /svc -Vusername=$USERNAME -Vpassword=$PASSWORD -VatomName=$ATOM_NAME -VaccountId=$ACCOUNT_ID

 

with some post-install steps.

 

The jdk is downloaded from:http://download.oracle.com/otn/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz

 

Although I am seeing the segmentation faults, the atom installation still completes, and runs as if there was no error. The fact that there are segmentation faults and the atom seems to be unaffected is worrisome. 

 

I am wondering if anyone has seen such behavior before? I do not see these segmentation faults when installing the atom outside of a docker container, however the atom downloads it's own jre in that case. 

 

Thanks,

Minh Nguyen

Outcomes