Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java SIGBUS on startup #46

Closed
JoakimZiegler opened this issue Nov 8, 2017 · 4 comments
Closed

Java SIGBUS on startup #46

JoakimZiegler opened this issue Nov 8, 2017 · 4 comments

Comments

@JoakimZiegler
Copy link

JoakimZiegler commented Nov 8, 2017

I'm pretty new to docker, but wanted to test this to try to run unifi-video on a CentOS system. I installed on CentOS 7.4 with a fresh docker install from the distro repo, following instructions, and I got the following:

[root@resolve02 data_4]# docker run --name unifi-video --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH -p 7442:7442 -p 7443:7443 -p 7445:7445  -p 7446:7446 -p 7447:7447 -p 7080:7080 -p 6666:6666 -v /data_4/tmp/unifi-video:/var/lib/unifi-video -v /data_4/tmp/unifi-video/data/videos:/usr/lib/unifi-video/data/videos -v /var/log/unifi-video:/var/log/unifi-video -e TZ=America/Mexico_City -e PUID=500 -e PGID=500 -e DEBUG=1 pducharme/unifi-video-controller
2017-11-08 00:58:35.939700 [info] PUID defined as '500'
2017-11-08 00:58:36.117944 [info] PGID defined as '500'
2017-11-08 00:58:36.287130 [info] Setting permissions recursively on volume mappings...
[debug] Running unifi-video service with --debug.
Starting unifi-video... Java Runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
JSVC: /usr/bin/jsvc

JVM options:  -Dav.tempdir=/var/cache/unifi-video -Djava.security.egd=file:/dev/./urandom   -Xmx25086M  -Djava.library.path=/usr/lib/unifi-video/lib  -Djava.awt.headless=true  -Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore  -Dfile.encoding=UTF-8 	 -Dcom.sun.management.jmxremote 		 -Dcom.sun.management.jmxremote.ssl=false 		 -Dcom.sun.management.jmxremote.authenticate=false 		 -Dcom.sun.management.jmxremote.port=7654 -Djava.rmi.server.hostname=172.17.0.2

JSVC options:  -cwd /usr/lib/unifi-video -debug  -user unifi-video  -home /usr/lib/jvm/java-8-openjdk-amd64/jre  -cp /usr/share/java/commons-daemon.jar:/usr/lib/unifi-video/lib/airvision.jar  -pidfile /var/run/unifi-video/unifi-video.pid  -procname unifi-video   -Dav.tempdir=/var/cache/unifi-video  -Djava.security.egd=file:/dev/./urandom   -Xmx25086M  -Djava.library.path=/usr/lib/unifi-video/lib  -Djava.awt.headless=true  -Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore  -Dfile.encoding=UTF-8 		 -Dcom.sun.management.jmxremote 		 -Dcom.sun.management.jmxremote.ssl=false 		 -Dcom.sun.management.jmxremote.authenticate=false 		 -Dcom.sun.management.jmxremote.port=7654 -Djava.rmi.server.hostname=172.17.0.2
+-- DUMPING PARSED COMMAND LINE ARGUMENTS --------------
| Detach:          True
| Show Version:    No
| Show Help:       No
| Check Only:      Disabled
| Stop:            False
| Wait:            0
| Run as service:  No
| Install service: No
| Remove service:  No
| JVM Name:        "null"
| Java Home:       "/usr/lib/jvm/java-8-openjdk-amd64/jre"
| PID File:        "/var/run/unifi-video/unifi-video.pid"
| User Name:       "unifi-video"
| Extra Options:   13
|   "-Djava.class.path=/usr/share/java/commons-daemon.jar:/usr/lib/unifi-video/lib/airvision.jar"
|   "-Dav.tempdir=/var/cache/unifi-video"
|   "-Djava.security.egd=file:/dev/./urandom"
|   "-Xmx25086M"
|   "-Djava.library.path=/usr/lib/unifi-video/lib"
|   "-Djava.awt.headless=true"
|   "-Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore"
|   "-Dfile.encoding=UTF-8"
|   "-Dcom.sun.management.jmxremote"
|   "-Dcom.sun.management.jmxremote.ssl=false"
|   "-Dcom.sun.management.jmxremote.authenticate=false"
|   "-Dcom.sun.management.jmxremote.port=7654"
|   "-Djava.rmi.server.hostname=172.17.0.2"
| Class Invoked:   "com.ubnt.airvision.Main"
| Class Arguments: 1
|   "start"
+-------------------------------------------------------
user changed to 'unifi-video'
User 'unifi-video' validated
Attempting to locate Java Home in /usr/lib/jvm/java-8-openjdk-amd64/jre
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/jvm.cfg
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jvm.cfg
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/jvm.cfg
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jvm.cfg
Found VM configuration file at /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jvm.cfg
Found VM server definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/server/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
Found VM client definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/client/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/client/libjvm.so
Cannot locate library for VM client (skipping)
Found VM zero definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/zero/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/zero/libjvm.so
Cannot locate library for VM zero (skipping)
Found VM jamvm definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/jamvm/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so
Cannot locate library for VM jamvm (skipping)
Found VM dcevm definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/dcevm/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/dcevm/libjvm.so
Cannot locate library for VM dcevm (skipping)
Java Home located in /usr/lib/jvm/java-8-openjdk-amd64/jre
+-- DUMPING JAVA HOME STRUCTURE ------------------------
| Java Home:       "/usr/lib/jvm/java-8-openjdk-amd64/jre"
| Java VM Config.: "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jvm.cfg"
| Found JVMs:      1
| JVM Name:        "server"
|                  "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so"
+-------------------------------------------------------
Using default JVM in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
Invoking w/ LD_LIBRARY_PATH=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64
+-- DUMPING PARSED COMMAND LINE ARGUMENTS --------------
| Detach:          True
| Show Version:    No
| Show Help:       No
| Check Only:      Disabled
| Stop:            False
| Wait:            0
| Run as service:  No
| Install service: No
| Remove service:  No
| JVM Name:        "null"
| Java Home:       "/usr/lib/jvm/java-8-openjdk-amd64/jre"
| PID File:        "/var/run/unifi-video/unifi-video.pid"
| User Name:       "unifi-video"
| Extra Options:   13
|   "-Djava.class.path=/usr/share/java/commons-daemon.jar:/usr/lib/unifi-video/lib/airvision.jar"
|   "-Dav.tempdir=/var/cache/unifi-video"
|   "-Djava.security.egd=file:/dev/./urandom"
|   "-Xmx25086M"
|   "-Djava.library.path=/usr/lib/unifi-video/lib"
|   "-Djava.awt.headless=true"
|   "-Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore"
|   "-Dfile.encoding=UTF-8"
|   "-Dcom.sun.management.jmxremote"
|   "-Dcom.sun.management.jmxremote.ssl=false"
|   "-Dcom.sun.management.jmxremote.authenticate=false"
|   "-Dcom.sun.management.jmxremote.port=7654"
|   "-Djava.rmi.server.hostname=172.17.0.2"
| Class Invoked:   "com.ubnt.airvision.Main"
| Class Arguments: 1
|   "start"
+-------------------------------------------------------
user changed to 'unifi-video'
User 'unifi-video' validated
Attempting to locate Java Home in /usr/lib/jvm/java-8-openjdk-amd64/jre
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/jvm.cfg
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jvm.cfg
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/jvm.cfg
Attempting to locate VM configuration file /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jvm.cfg
Found VM configuration file at /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jvm.cfg
Found VM server definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/server/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
Found VM client definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/client/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/client/libjvm.so
Cannot locate library for VM client (skipping)
Found VM zero definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/zero/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/zero/libjvm.so
Cannot locate library for VM zero (skipping)
Found VM jamvm definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/jamvm/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so
Cannot locate library for VM jamvm (skipping)
Found VM dcevm definition in configuration
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/jre/lib/amd64/dcevm/libjvm.so
Checking library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/dcevm/libjvm.so
Cannot locate library for VM dcevm (skipping)
Java Home located in /usr/lib/jvm/java-8-openjdk-amd64/jre
+-- DUMPING JAVA HOME STRUCTURE ------------------------
| Java Home:       "/usr/lib/jvm/java-8-openjdk-amd64/jre"
| Java VM Config.: "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jvm.cfg"
| Found JVMs:      1
| JVM Name:        "server"
|                  "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so"
+-------------------------------------------------------
Running w/ LD_LIBRARY_PATH=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64
redirecting stdout to /dev/null and stderr to /dev/null
Switching umask back to 022 from 077
done.
Attemtping to load library /lib64/libcap.so.2
Attemtping to load library /lib64/libcap.so.1
Attemtping to load library /lib64/libcap.so
Attemtping to load library /usr/lib64/libcap.so.2
Attemtping to load library /usr/lib64/libcap.so.1
Attemtping to load library /usr/lib64/libcap.so
Attemtping to load library /lib/libcap.so.2
Attemtping to load library /lib/libcap.so.1
Attemtping to load library /lib/libcap.so
Attemtping to load library /usr/lib/libcap.so.2
Attemtping to load library /usr/lib/libcap.so.1
Attemtping to load library /usr/lib/libcap.so
Attemtping to load library libcap.so.2
loaded cap_free from libcap.
loaded cap_init from libcap.
loaded cap_clear from libcap.
loaded cap_get_flag from libcap.
loaded cap_set_flag from libcap.
loaded cap_set_proc from libcap.
increased capability set.
user changed to 'unifi-video'
decreased capability set to min required.
Using default JVM in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
Attemtping to load library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
JVM library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so loaded
JVM library entry point found (0xFE1841C0)
+-- DUMPING JAVA VM CREATION ARGUMENTS -----------------
| Version:                       0x010004
| Ignore Unrecognized Arguments: True
| Extra options:                 13
|   "-Djava.class.path=/usr/share/java/commons-daemon.jar:/usr/lib/unifi-video/lib/airvision.jar" (0x00000000)
|   "-Dav.tempdir=/var/cache/unifi-video" (0x00000000)
|   "-Djava.security.egd=file:/dev/./urandom" (0x00000000)
|   "-Xmx25086M" (0x00000000)
|   "-Djava.library.path=/usr/lib/unifi-video/lib" (0x00000000)
|   "-Djava.awt.headless=true" (0x00000000)
|   "-Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore" (0x00000000)
|   "-Dfile.encoding=UTF-8" (0x00000000)
|   "-Dcom.sun.management.jmxremote" (0x00000000)
|   "-Dcom.sun.management.jmxremote.ssl=false" (0x00000000)
|   "-Dcom.sun.management.jmxremote.authenticate=false" (0x00000000)
|   "-Dcom.sun.management.jmxremote.port=7654" (0x00000000)
|   "-Djava.rmi.server.hostname=172.17.0.2" (0x00000000)
+-------------------------------------------------------
| Internal options:              4
|   "-Dcommons.daemon.process.id=114" (0x00000000)
|   "-Dcommons.daemon.process.parent=113" (0x00000000)
|   "-Dcommons.daemon.version=1.0.15-dev" (0x00000000)
|   "abort" (0x00405af0)
+-------------------------------------------------------
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x00007f67ed7ffbfc, pid=114, tid=0x00007f67ffe85700
#
# JRE version:  (8.0_131-b11) (build )
# Java VM: OpenJDK 64-Bit Server VM (25.131-b11 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# j  java.lang.Object.<clinit>()V+0
#
# Core dump written. Default location: /usr/lib/unifi-video/core or core.114
#
# An error report file with more information is saved as:
# /usr/lib/unifi-video/hs_err_pid114.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Reloading service
Waiting 60 s to prevent looping

The "error report file" it mentions is attached:
hs_err_pid1587.log

@chadhutchins182
Copy link

chadhutchins182 commented Nov 8, 2017

I run this image on a CentOS 7.3 and have no issues. When looking at your log I noticed the JVM print out for the java command is asking for a lot of memory, 25GB.

Here is my log print out for those commands:

Starting unifi-video... Java Runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
JSVC: /usr/bin/jsvc

JVM options:  -Dav.tempdir=/var/cache/unifi-video -Djava.security.egd=file:/dev/./urandom   -Xmx4094M  -Djava.library.path=/usr/lib/unifi-video/lib  -Djava.awt.headless=true  -Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore  -Dfile.encoding=UTF-8 		 -Dcom.sun.management.jmxremote 		 -Dcom.sun.management.jmxremote.ssl=false 		 -Dcom.sun.management.jmxremote.authenticate=false 		 -Dcom.sun.management.jmxremote.port=7654 -Djava.rmi.server.hostname=172.17.0.4

JSVC options:  -cwd /usr/lib/unifi-video -debug  -user unifi-video  -home /usr/lib/jvm/java-8-openjdk-amd64/jre  -cp /usr/share/java/commons-daemon.jar:/usr/lib/unifi-video/lib/airvision.jar  -pidfile /var/run/unifi-video/unifi-video.pid  -procname unifi-video   -Dav.tempdir=/var/cache/unifi-video  -Djava.security.egd=file:/dev/./urandom   -Xmx4094M  -Djava.library.path=/usr/lib/unifi-video/lib  -Djava.awt.headless=true  -Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore  -Dfile.encoding=UTF-8 		 -Dcom.sun.management.jmxremote 		 -Dcom.sun.management.jmxremote.ssl=false 		 -Dcom.sun.management.jmxremote.authenticate=false 		 -Dcom.sun.management.jmxremote.port=7654 -Djava.rmi.server.hostname=172.17.0.4

So your problem resembles: https://community.ubnt.com/t5/UniFi-Video/Install-on-CentOS/m-p/1978902#M82125

@pducharme can correct me if I'm wrong, but that command is a part of unifi install and not the docker container.

Edit I wonder if this is related to #30

@fryfrog
Copy link
Collaborator

fryfrog commented Feb 27, 2018

@JoakimZiegler, @chadhutchins182: Did you guys get this figured out?

@chadhutchins182
Copy link

@fryfrog I couldn't recreate the issue as it works on my CentOS system. As you said in #30 this is probably OBE.

@fryfrog
Copy link
Collaborator

fryfrog commented Mar 5, 2018

Closing, feel free to revisit if needed.

@fryfrog fryfrog closed this as completed Mar 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants