pducharme / UniFi-Video-Controller

Docker for Unifi-Video Controller (Ubiquiti Networks)
199 stars 105 forks source link

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

Open kpaelman opened 4 years ago

kpaelman commented 4 years ago

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 CREATETMPFS=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 !

thoschworks commented 4 years ago

I have three questions and one request:

  1. What do you mean with "Image is the one that I downloaded over the weekend."?
  2. Where do you get install.cmd which you start in /volume1/docker/unifi_video?
  3. Why do you use this script, because start the Docker container with docker run ... should be all you need to do.

And: Tidy up the markup of your comment, please. Your text and questions and the code and output fragments are formatted in a very messy way where it is not clear which is what. (You can check the formatting before you send it by using the Preview tab.) Thanks.

kpaelman commented 4 years ago

Hi,

Hereby my answers:

  1. Docker image pducharme/unifi-video-controller:latest
  2. I just copied the command from github it in a file to vi edit it before launching
  3. does it make any difference if I execute install.cmd or just type in the full command at the prompt ?

Let me check and make things more clear

fryfrog commented 4 years ago

Why are you docker runing it at all? You're using a Synology and they have their own Docker GUI right? Is there some --options you can't assign? Like the --cap-add DAC_READ_SEARCH or --tmpfs?

If you're doing it via SSH, I think you'd need to add -d right?

kpaelman commented 4 years ago

Hi, Thanks for your comments.

  1. Because the scripted way was suggested and I did not find the GUI install instructions anywhere on the net.
  2. Thought -d was to run it in the background. The -d flag is not mentioned in the ssh install instructions and especially because it fails I want to see all the output.
thoschworks commented 4 years ago
  1. Docker image pducharme/unifi-video-controller:latest

I was confused about the wording "downloaded".

"Download" means that it was pulled wirh docker pull pducharme/unifi-video-controller:latest or your command.cmd?

  1. I just copied the command from github it in a file to vi edit it before launching

I am a bit confused, because the should be a backslash ("\") at the end of each line except the last. Without these your command.cmd crashes on my systems. So I am in doubt that the lines shown above are the actual content of the file. :thinking:

  1. does it make any difference if I execute install.cmd or just type in the full command at the prompt ?

There should be no difference.

But I wouldn't use scripts. I use docker-compose instead. But I don't know, if it is available on your platform.

And no, I don't have any clue why it is failing on your system.

But one last question: "111" is the correct uid and gid of the user unifi-video on your system?

kpaelman commented 4 years ago

Hi thoschworks, thanks for your reply !

  1. Actually I used the Synology docker GUI to download, let me redo the test using the command.

    root@nas:/volume1/docker/unifi_video#  docker pull pducharme/unifi-video-controller:latest
    latest: Pulling from pducharme/unifi-video-controller
    c64513b74145: Already exists
    01b8b12bad90: Already exists
    c5d85cf7a05f: Already exists
    b6b268720157: Already exists
    e12192999ff1: Already exists
    d39ece66b667: Already exists
    65599be66378: Already exists
    434313575701: Pull complete
    792fa6bf9e07: Pull complete
    dc28c44d8800: Pull complete
    bc9000ac28c1: Pull complete
    Digest: sha256:2ff37b92042a338fc5ac4a0b148881ac12dee6ba4fc794038359321fc803e066
    Status**: Downloaded newer image for pducharme/unifi-video-controller:latest**
  2. Strange, I notice it too now... Guess I cleaned a bit too much, copying it in github. :-)

    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#
  3. 
    root@nas:/volume1/docker/unifi_video# docker -compose
    unknown shorthand flag: 'c' in -compose
    See 'docker --help'.

Usage: docker [OPTIONS] COMMAND ................

root@nas:/volume1/docker# chown 111:111 ./unifi_video/ root@nas:/volume1/docker# ll total 0 drwxr-xr-x+ 1 root root 86 May 24 20:01 . drwxr-xr-x 1 root root 812 Jun 1 11:36 .. drwxrwxrwx+ 1 root root 8 Jun 1 11:36 @eaDir drwxr-xr-x+ 1 kpaelman users 0 May 16 13:00 unifi_controller drwxr-xr-x+ 1 kpaelman users 50 May 23 19:06 unifi_unms drwxr-xr-x+ 1 unifi-video unifi-video 42 Jun 15 19:58 unifi_video

root@nas:/volume1/docker#


So, running the script with the newly downloaded package ::

........................ (removing first part of the logging, same as above)

| "-Dcommons.daemon.version=1.0.15-dev" (0x00000000) | "abort" (0xf67b54e0) +------------------------------------------------------- 2020-06-15 20:04:55.077285 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-06-15 20:05:01,494 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.ooOO.void.new(Unknown Source) at com.ubnt.airvision.service.ems.ooOO$1.run(Unknown Source) at java.lang.Thread.run(Thread.java:748)

^C



**makes it hang again :( :( :(** 

Any other ideas, getting desperate here ....  ?

Thanks a lot in advance

Kris
thoschworks commented 4 years ago
  1. Actually I used the Synology docker GUI to download, let me redo the test using the command.

root@nas:/volume1/docker/unifi_video#  docker pull pducharme/unifi-video-controller:latest

You used docker pull which is on of the usual ways to get an image on the machine. :heavy_check_mark:

  1. Strange, I notice it too now... Guess I cleaned a bit too much, copying it in github. :-)

:heavy_check_mark:

root@nas:/volume1/docker/unifi_video# docker -compose
unknown shorthand flag: 'c' in -compose
See 'docker --help'.
...

docker-compose (one term) not docker -compose (docker with the option -compose which should be --compose if it would exist).

docker-compose is a layer on top of Docker to manage containers, esp. configs with multiple contains, which interact with another.

I use ti to manage my containers instead of using scripts like your command.cmd. I don't know if it's available for your platform.

But I am sure that it will not fix your problem.

And now the beef.

root@nas:/volume1/docker# chown 111:111  ./unifi_video/
root@nas:/volume1/docker# ll
total 0
drwxr-xr-x+ 1 root        root         86 May 24 20:01 .
drwxr-xr-x  1 root        root        812 Jun  1 11:36 ..
drwxrwxrwx+ 1 root        root          8 Jun  1 11:36 @eaDir
drwxr-xr-x+ 1 kpaelman    users         0 May 16 13:00 unifi_controller
drwxr-xr-x+ 1 kpaelman    users        50 May 23 19:06 unifi_unms
drwxr-xr-x+ 1 unifi-video unifi-video  42 Jun 15 19:58 unifi_video

We know that 111 is the uid and gid of your user and group 'unifi-video'. But I don't know how it looks like in unifi_video.

Please let me look with a ls -axl unifi_video ...

kpaelman commented 4 years ago

Thanks Thoschworks !

docker-compose is installed it seems ::

root@nas:/volume1/docker# docker-compose
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Regarding the subdir's, as you need to create them yourselves they are 111:111 as well

root@nas:/volume1/docker/unifi_video# whoami
root
root@nas:/volume1/docker/unifi_video# ll
total 4
drwxr-xr-x+ 1 unifi-video unifi-video  22 Jun 16 16:02 .
drwxr-xr-x+ 1 root        root         86 May 24 20:01 ..
-rwxr-xr-x  1 unifi-video unifi-video 419 May 27 10:52 install.cmd
root@nas:/volume1/docker/unifi_video# ./install.cmd
docker: Error response from daemon: Bind mount failed: '/volume1/docker/unifi_video/data' does not exists.
ERRO[0001] error waiting for container: context canceled
root@nas:/volume1/docker/unifi_video# mkdir data
root@nas:/volume1/docker/unifi_video# mkdir videos
root@nas:/volume1/docker/unifi_video# ll
total 4
drwxr-xr-x+ 1 unifi-video unifi-video  42 Jun 16 16:08 .
drwxr-xr-x+ 1 root        root         86 May 24 20:01 ..
drwxr-xr-x+ 1 root        root          0 Jun 16 16:08 data
-rwxr-xr-x  1 unifi-video unifi-video 419 May 27 10:52 install.cmd
drwxr-xr-x+ 1 root        root          0 Jun 16 16:08 videos
root@nas:/volume1/docker/unifi_video# chown -R 111:111 ./*
root@nas:/volume1/docker/unifi_video# ll
total 4
drwxr-xr-x+ 1 unifi-video unifi-video  42 Jun 16 16:08 .
drwxr-xr-x+ 1 root        root         86 May 24 20:01 ..
drwxr-xr-x+ 1 unifi-video unifi-video   0 Jun 16 16:08 data
-rwxr-xr-x  1 unifi-video unifi-video 419 May 27 10:52 install.cmd
drwxr-xr-x+ 1 unifi-video unifi-video   0 Jun 16 16:08 videos
root@nas:/volume1/docker/unifi_video# ./install.cmd
docker: Error response from daemon: Conflict. The container name "/unifi-video" is already in use by container "621ec45220db087d4071ce8613993f07adb9e234228d942658d5034584ebffc5". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
root@nas:/volume1/docker/unifi_video# docker container rm 621ec45220db087d4071ce8613993f07adb9e234228d942658d5034584ebffc5
621ec45220db087d4071ce8613993f07adb9e234228d942658d5034584ebffc5
root@nas:/volume1/docker/unifi_video# ./install.cmd
2020-06-16 16:09:45.017875 [info] UMASK defined as '002'.
2020-06-16 16:09:45.088286 [info] PUID defined as '111'
2020-06-16 16:09:45.654809 [info] PGID defined as '111'
2020-06-16 16:09:45.906592 [info] No perms.txt found, setting ownership and permissions recursively on videos.
2020-06-16 16:09:46.007048 [debug] Running unifi-video service with --debug.
2020-06-16 16:09:46.065482 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 (0x82914730)
+-- 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" (0x160a14e0)
+-------------------------------------------------------
2020-06-16 16:09:47.229562 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-06-16 16:09:52,201 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.ooOO.void.new(Unknown Source)
        at com.ubnt.airvision.service.ems.ooOO$1.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:748)
^C
thoschworks commented 4 years ago

Is the problem solved or not?

kpaelman commented 4 years ago

Hi Thomas, No, it's not. When replying I accidentally choose something like send and close so I had to re-open. Still hoping to get video up and running on my NAS like I did with the controller and UNMS.

Regards, Kris

On Sun, 21 Jun 2020 at 11:03, Thomas Schewe notifications@github.com wrote:

Is the problem solved or not?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/pducharme/UniFi-Video-Controller/issues/187#issuecomment-647100938, or unsubscribe https://github.com/notifications/unsubscribe-auth/APXTO2P4ZC4I4HPCCGHZ4TLRXXEEJANCNFSM4NL726FQ .

kpaelman commented 4 years ago

Any update on this ? Can I take traces or so to help troubleshooting. As I have all my other unifi software running in docker on my Synology, I would love to get this video software working too.

Thanks in advance ! Kris

thoschworks commented 4 years ago

Sorry, too much to do, but not enough time…

No, I have no more ideas how to solve the problem.

marcaddeo commented 4 years ago

FWIW, I'm also seeing this error in my logs and thought it was causing my Unifi Video Controller setup to fail as I could not access the UI at all. Turns out my VLAN configuration was incorrect between the docker host and docker network. Fixed that, and still got the error but the container now had connectivity. Going to https://<my container ip>:7443 allowed me to set up the video controller and now it seems to be working. The error is still there, but I guess it's not a fatal error.

My logs:

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
redirecting stdout to /dev/null and stderr to /dev/null
Switching umask back to 002 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 (0xF623BEC0)
+-- 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)
|   "-Xmx1925M" (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=10.1.61.5" (0x00000000)
+-------------------------------------------------------
| Internal options:              4
|   "-Dcommons.daemon.process.id=76" (0x00000000)
|   "-Dcommons.daemon.process.parent=75" (0x00000000)
|   "-Dcommons.daemon.version=1.0.15-dev" (0x00000000)
|   "abort" (0xc85b34e0)
+-------------------------------------------------------
Java VM created successfully
Class org/apache/commons/daemon/support/DaemonLoader found
Native methods registered
java_init done
Daemon loading...
2020-08-27 11:40:37.858221 Waiting for mongodb to come online...2020-08-27 11:40:38,837 ERROR Unable to locate appender ConsoleAppender for logger 
emon loaded successfully
java_load done
dropped capabilities.
....... done.
Re-creating and setting ownership/permissions on /var/cache/unifi-video/exports... done.
Re-creating and setting ownership/permissions on /var/cache/unifi-video/hls... done.
Exception in thread "EmsInitTask" java.lang.NullPointerException
    at com.ubnt.airvision.service.ems.C.void.new(Unknown Source)
    at com.ubnt.airvision.service.ems.C$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:748)
:0 No "stun:" or "turn:" prefix specified for url "global.stun.twilio.com:3478". Assuming "stun:"
:0 No "stun:" or "turn:" prefix specified for url "global.turn.twilio.com:3478". Assuming "stun:"
:0 No TURN server was specified
:0 STUN timed out: STUN id:   6; fd: 207 10.1.61.5:47511 -> 10.1.51.100:52588 (eth0) DTLS id: 7 (10.1.61.5:47511) (PEER)
:0 webRtcId 1 terminated with code: (-2147090409) WebRTC connection interrupted from far side
johnripper1 commented 3 years ago

I do have the same error:

(...) 
JVM library /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so loaded
JVM library entry point found (0xE21FCEC0)
+-- 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)
|   "-Xmx1909M" (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=10.1.56.22" (0x00000000)
+-------------------------------------------------------
| Internal options:              4
|   "-Dcommons.daemon.process.id=84" (0x00000000)
|   "-Dcommons.daemon.process.parent=83" (0x00000000)
|   "-Dcommons.daemon.version=1.0.15-dev" (0x00000000)
|   "abort" (0xbe2f54e0)
+-------------------------------------------------------
2020-12-27 15:45:41.618210 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-12-27 15:45:42,548 ERROR Unable to locate appender ConsoleAppender for logger
Daemon loaded successfully
java_load done
dropped capabilities.
... done.
Re-creating and setting ownership/permissions on /var/cache/unifi-video/exports... done.
Re-creating and setting ownership/permissions on /var/cache/unifi-video/hls... done.
Exception in thread "EmsInitTask" java.lang.NullPointerException
        at com.ubnt.airvision.service.ems.C.void.new(Unknown Source)
        at com.ubnt.airvision.service.ems.C$1.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:748)

I run the skript as follow: docker run \ --name unifi-video-stl1 \ --hostname=XXXXX \ --network=XXXXXX \ --mac-address=XXXXXX \ --cap-add DAC_READ_SEARCH \ -p 10001:10001 \ -p 1935:1935 \ -p 6666:6666 \ -p 7080:7080 \ -p 7442:7442 \ -p 7443:7443 \ -p 7444:7444 \ -p 7445:7445 \ -p 7446:7446 \ -p 7447:7447 \ -v /share/CE_CACHEDEV1_DATA/Container/appdata/unifi-video:/var/lib/unifi-video \ -v /share/CE_CACHEDEV1_DATA/Video:/var/lib/unifi-video/videos \ --tmpfs /var/cache/unifi-video \ -e TZ=Europe/Berlin \ -e USER_ID=0 \ -e GROUP_ID=0 \ -e CREATE_TMPFS=no \ -e DEBUG=1 \ pducharme/unifi-video-controller

markusd1984 commented 3 years ago

Same here :cry

I also used the script on my Synology NAS as the GUI unfortunately doesn't run as smooth compared to the Unifi Controller from jacobalberty/unfi Unifi Controller, as GUI logs mount: /var/cache/unifi-video: cannot mount tmpfs read-only. as per #105.

2021-01-14 12:16:26.043144 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... .2021-01-14 12:16:28,577 ERROR Unable to locate appender ConsoleAppender for log ger Daemon loaded successfully java_load done dropped capabilities. .... done. Re-creating and setting ownership/permissions on /var/cache/unifi-video/exports. .. done. Re-creating and setting ownership/permissions on /var/cache/unifi-video/hls... d one. Exception in thread "EmsInitTask" java.lang.NullPointerException at com.ubnt.airvision.service.ems.C.void.new(Unknown Source) at com.ubnt.airvision.service.ems.C$1.run(Unknown Source) at java.lang.Thread.run(Thread.java:748)

1610626594.256 2021-01-14 12:16:34.256/GMT: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting 1610627487.131 2021-01-14 12:31:27.131/GMT: ERROR [uv.recording.svc] [RecordingService] EmergencyShutOffCheck: diskToKeepFreeBytes: 42949672960 - diskFreeBytes: 15633768448 in RecordingService-EmergencyShutOffCheck 1610627487.132 2021-01-14 12:31:27.132/GMT: ERROR [uv.recording.svc] [RecordingService] Free disk space has fallen below threshold, enabling emergency shutoff. Free: 27315904512 in RecordingService-EmergencyShutOffCheck

Command as per https://hub.docker.com/r/pducharme/unifi-video-controller/

docker run \
--name unifi-video \
--cap-add DAC_READ_SEARCH \
-p 10001:10001 \
-p 1935:1935 \
-p 6666:6666 \
-p 7080:7080 \
-p 7442:7442 \
-p 7443:7443 \
-p 7444:7444 \
-p 7445:7445 \
-p 7446:7446 \
-p 7447:7447 \
-v /volume2/docker/Unifi-Video:/var/lib/unifi-video \
-v /volume2/docker/Unifi-Video/videos:/var/lib/unifi-video/videos \
--tmpfs /var/cache/unifi-video \
-e TZ=Europe/Dublin \
-e PUID=99 \
-e PGID=100 \
-e CREATE_TMPFS=no \
-e DEBUG=1 \
pducharme/unifi-video-controller

Really hope we can get this resolved, I haven't even bought the cameras yet but this concerns me.

markusd1984 commented 3 years ago

Worse, previously I managed to get the docker running and go through the setup and see the interface, but today January 15th :) I tried this fresh setup again and now this won't work anymore, as after the entering name and create a username and password it goes right to a login screen which will not accept these login details and neither the ones from by Ubiquiti account.

I do see a mongodb connection error 1610711143.023 2021-01-15 11:45:43.023/GMT: ERROR [uv.db.svc] Failed to acquire client connection null in MongoDb-Connecting

but I think this has more to do with the EOL of UFV I just read about https://forums.unraid.net/topic/35393-support-pducharmes-dockers-support-thread/page/28/

Note: Remote access has been extended to Jan. 15, 2021 - users will still be able to log in and access their UniFi Video installations via video.ui.com until this date.

Does that mean new/fresh UFV setups won't be possible anymore on our own hardware? Meaning only existing setups can be run locally? Sadly Unifi Protect seems like won't become available as docker as Ubiquiti probably just doesn't care and want to force the rest to buy additional hardware, thanks! Might be re-considering buying cameras from them.

thoschworks commented 3 years ago

Note: Remote access has been extended to Jan. 15, 2021 - users will still be able to log in and access their UniFi Video installations via video.ui.com until this date.

Does that mean new/fresh UFV setups won't be possible anymore on our own hardware? Meaning only existing setups can be run locally? Sadly Unifi Protect seems like won't become available as docker as Ubiquiti probably just doesn't care and want to force the rest to buy additional hardware, thanks! Might be re-considering buying cameras from them.

I don't think so, because you don't log into your local installaion via video.ui.com (I will know it tomorrow…). But there will be no cloud-access to your installation.

I have a Cloud Key Gen2 Plus laying in my shelve as backup, because there will be no updates for the Unify-Video software.

Might be re-considering buying cameras from them.

Good luck finding cctv cameras which will be as easy usable as the Unifi stuff without beeing force to use a cloud (and paying a monthly fee).

markusd1984 commented 3 years ago

Good luck finding cctv cameras which will be as easy usable as the Unifi stuff without beeing force to use a cloud (and paying a monthly fee).

Yeah I feel I might have to accept buying a CKG2P to get that timeline scrubbing and features similar to Google/Nest cameras, which I feel is a must, once getting used to them it's hard to go back to something more basic e.g. xiaomi what a pain!

Ok perhaps it's still an installation issue, it bugs me because I managed to get a docker running, set up which as far I remember did not ask me to login during the setup phase and showed me the interface with left menu of cameras etc. However I think there was a login in the right upper corner that I used with my Ubiquit account. image

Tbg. of course without mongodb working I don't see how UFV would save any custom data/login details that I created during setup, so need to investigate this issue further. Seems like sofar we haven't been able to progress on the other Exception in thread "EmsInitTask" java.lang.NullPointerException isssue.

UPDATE: checked mongo inside the docker and indeed it's not working. I just can't seem to get the container to run with mongo working

root@18e1118a12eb:/# mongo MongoDB shell version v4.0.19 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb 2021-01-15T17:02:39.454+0000 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:344:17 @(connect):2:6 exception: connect failed