Skip to content

Fresh install - video-controller creation script hangs. #187

@kpaelman

Description

@kpaelman

Hi,
Just bought some unifi stuff to install at home including the G3 video camera.
As I have a Synology DS418 play, I installed it on there, taking the code from the 415.
Docker install ran smoothly.

Created following directory structure :

root@nas:/volume1/docker/unifi_video# ll
total 4
drwxr-xr-x+ 1 unifi-video unifi-video 42 May 27 11:02 .
drwxr-xr-x+ 1 root root 86 May 24 20:01 ..
drwxrwxr-x 1 unifi-video unifi-video 154 May 27 11:05 data
-rwxr-xr-x 1 unifi-video unifi-video 419 May 27 10:52 install.cmd
drwxrwxr-x 1 unifi-video unifi-video 0 May 27 11:02 videos

I adapted the startup script as follows :
root@nas:/volume1/docker/unifi_video# more ./install.cmd

docker run
--name unifi-video
--cap-add DAC_READ_SEARCH
--restart=unless-stopped
--network="host"
-v /volume1/docker/unifi_video/data:/var/lib/unifi-video
-v /volume1/docker/unifi_video/videos:/var/lib/unifi-video/videos
--tmpfs /var/cache/unifi-video
-e TZ=Europe/Brussels
-e PUID=111
-e PGID=111
-e CREATE_TMPFS=no
-e DEBUG=1
pducharme/unifi-video-controller

root@nas:/volume1/docker/unifi_video# docker --version
Docker version 18.09.8, build bfed4f5

Image pducharme/unifi-video-controller is the one that I downloaded over the weekend from the docker registry.

Installation output

root@nas:/volume1/docker/unifi_video# ./install.cmd
2020-05-27 11:05:03.809928 [info] UMASK defined as '002'.
2020-05-27 11:05:03.873601 [info] PUID defined as '111'
2020-05-27 11:05:04.570931 [info] PGID defined as '111'
2020-05-27 11:05:04.956412 [info] No perms.txt found, setting ownership and permissions recursively on videos.
2020-05-27 11:05:05.042240 [debug] Running unifi-video service with --debug.
2020-05-27 11:05:05.105377 Starting unifi-video... (unifi-video) Java Runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
(unifi-video) JSVC: /usr/bin/jsvc
(unifi-video)
JVM options: -Dav.tempdir=/var/cache/unifi-video -Djava.security.egd=file:/dev/./urandom -Xmx219M -Xss512K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024M -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=::1
(unifi-video)
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 -Xmx219M -Xss512K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024M -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=::1
(unifi-video) Hardware type:Unknown
(unifi-video) checking for system.properties and truststore files...
(unifi-video) WARNING!!!! system.properties cannot be found..restoring from : /usr/lib/unifi-video/etc/system.propetties
+-- 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: 17
| "-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"
| "-Xmx219M"
| "-Xss512K"
| "-XX:+UseG1GC"
| "-XX:+UseStringDeduplication"
| "-XX:MaxMetaspaceSize=1024M"
| "-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=::1"
| 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 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: 17
| "-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"
| "-Xmx219M"
| "-Xss512K"
| "-XX:+UseG1GC"
| "-XX:+UseStringDeduplication"
| "-XX:MaxMetaspaceSize=1024M"
| "-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=::1"
| 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 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
done.
redirecting stdout to /dev/null and stderr to /dev/null
Switching umask back to 002 from 077
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 (0x583C0AB0)
+-- DUMPING JAVA VM CREATION ARGUMENTS -----------------
| Version: 0x010004
| Ignore Unrecognized Arguments: True
| Extra options: 17
| "-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)
| "-Xmx219M" (0x00000000)
| "-Xss512K" (0x00000000)
| "-XX:+UseG1GC" (0x00000000)
| "-XX:+UseStringDeduplication" (0x00000000)
| "-XX:MaxMetaspaceSize=1024M" (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=::1" (0x00000000)
+-------------------------------------------------------
| Internal options: 4
| "-Dcommons.daemon.process.id=84" (0x00000000)
| "-Dcommons.daemon.process.parent=81" (0x00000000)
| "-Dcommons.daemon.version=1.0.15-dev" (0x00000000)
| "abort" (0x944af4e0)
+-------------------------------------------------------
2020-05-27 11:05:06.068602 Waiting for mongodb to come online....Java VM created successfully
Class org/apache/commons/daemon/support/DaemonLoader found
Native methods registered
java_init done
Daemon loading...
> .2020-05-27 11:05:11,581 ERROR Unable to locate appender ConsoleAppender for logger
Daemon loaded successfully
java_load done
dropped capabilities.
...... done.
> Exception in thread "EmsInitTask" java.lang.NullPointerException
at com.ubnt.airvision.service.ems.C.ØÒ0000(Unknown Source)
at com.ubnt.airvision.service.ems.C$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)

^C
^D

At this point, the installation hangs and no way to recover except from closing my putty window.
I am able to open the app on port 7443 (iso 7080) but things don't seem to work well (ok, one reason was the 40 GB :-) )

Error log shows:

90570626.421 2020-05-27 11:10:26.421/CEST: ERROR [uv.recording.svc] [RecordingService] Free disk space has fallen below threshold, enabling emergency shutoff. Free: 7146950656 in RecordingService-EmergencyShutOffCheck
1590570626.421 2020-05-27 11:10:26.421/CEST: ERROR [uv.recording.svc] [RecordingService] EmergencyShutOffCheck: diskToKeepFreeBytes: 42949672960 - diskFreeBytes: 35802722304 in RecordingService-EmergencyShutOffCheck
1590570320.519 2020-05-27 11:05:20.519/CEST: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting
1590570319.981 2020-05-27 11:05:19.981/CEST: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting

root@nas:/volume1/docker/unifi_video/data/db# more version
3.10.11-db1

root@nas:/volume1/docker/unifi_video/data/db-wt# ll | grep lock
-rw------- 1 unifi-video unifi-video 4 May 27 11:05 mongod.lock
-rw------- 1 unifi-video unifi-video 21 May 27 11:05 WiredTiger.lock

Running DB analysis in GUI gives positive result - no changes made.
I removed the lock files and ran docker restart

Error log in system config now shows:

1590574592.027 2020-05-27 12:16:32.027/CEST: ERROR [uv.recording.svc] [RecordingService] Unable to do emergency shutoff check, shutting off recordings: Mount point for /var/cache/unifi-video/hls not found in RecordingService-EmergencyShutOffCheck
at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243) [commons-daemon-1.0.15.jar:1.0.15]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
at com.ubnt.airvision.Main.start(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.Main.super(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.service.D.Ó00000(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.service.D.Ò00000(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.service.recording.RecordingService.Ó00000(Unknown Source) [airvision.jar:?]
at org.apache.commons.io.FileUtils.forceMkdir(FileUtils.java:2491) ~[commons-io-2.6.jar:2.6]
java.io.IOException: Unable to create directory /var/cache/unifi-video/hls
1590574581.780 2020-05-27 12:16:21.780/CEST: ERROR [uv.recording.svc] [RecordingService] Unable to create temporary recording diriectory in main
at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243) [commons-daemon-1.0.15.jar:1.0.15]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
at com.ubnt.airvision.Main.start(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.Main.super(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.service.D.Ó00000(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.service.D.Ò00000(Unknown Source) [airvision.jar:?]
at com.ubnt.airvision.service.server.A.Ó00000(Unknown Source) [airvision.jar:?]
at org.apache.commons.io.FileUtils.forceMkdir(FileUtils.java:2491) ~[commons-io-2.6.jar:2.6]
java.io.IOException: Unable to create directory /var/cache/unifi-video/exports
1590574580.078 2020-05-27 12:16:20.078/CEST: ERROR [uv.server.svc] Unable to create recording exports diriectory in main
1590574572.225 2020-05-27 12:16:12.225/CEST: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting
1590574571.724 2020-05-27 12:16:11.724/CEST: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting
1590570716.420 2020-05-27 11:11:56.420/CEST: ERROR [uv.recording.svc] [RecordingService] Free disk space has recovered, disabling emergency shutoff in RecordingService-EmergencyShutOffCheck
1590570626.421 2020-05-27 11:10:26.421/CEST: ERROR [uv.recording.svc] [RecordingService] Free disk space has fallen below threshold, enabling emergency shutoff. Free: 7146950656 in RecordingService-EmergencyShutOffCheck
1590570626.421 2020-05-27 11:10:26.421/CEST: ERROR [uv.recording.svc] [RecordingService] EmergencyShutOffCheck: diskToKeepFreeBytes: 42949672960 - diskFreeBytes: 35802722304 in RecordingService-EmergencyShutOffCheck
1590570320.519 2020-05-27 11:05:20.519/CEST: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting
1590570319.981 2020-05-27 11:05:19.981/CEST: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting

All ideas how to solve this are warmly welcomed. Let me know if you need more logs & info as docker is completely new to me.

Thanks you so much in advance !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions