goofball222 / unifi

UniFi Docker Container
Apache License 2.0
247 stars 38 forks source link

Cannot initialize org.xerial.snappy.Snappy #81

Closed cinadr closed 3 years ago

cinadr commented 3 years ago

Reporting bugs/issues

I've got this in log a lot of times:

    at com.ubnt.net.InformServlet.new(Unknown Source) ~[ace.jar:?],
[2021-03-10T12:06:23,066] XXX <inform-8> ERROR [InformServlet] - Servlet.service() for servlet [InformServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause,
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy

and

2021-03-10T11:06:23.096065622Z [2021-03-10T12:06:23,084] XXX <inform-5> ERROR [InformServlet] - Servlet.service() for servlet [InformServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause,
2021-03-10T11:06:23.096099422Z java.lang.UnsatisfiedLinkError: /tmp/snappy-1.1.7-c5cffaea-d8fa-49e4-bbed-5fd26f807571-libsnappyjava.so: Error relocating /lib/ld-linux-x86-64.so.2: unsupported relocation type 37

Full snapp error is here:


[2021-03-10T12:30:28,353] XXX <inform-10> ERROR [InformServlet] - Servlet.service() for servlet [InformServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause,
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy,
    at com.ubnt.net.InformServlet.new(Unknown Source) ~[ace.jar:?],
    at com.ubnt.net.InformServlet.o00000(Unknown Source) ~[ace.jar:?],
    at com.ubnt.net.InformServlet.service(Unknown Source) ~[ace.jar:?],
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.56.jar:8.5.56],
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.56.jar:8.5.56],
    at com.ubnt.ace.view.UbiosHttpsFilter.doFilter(Unknown Source) ~[ace.jar:?],
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_275],
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_275],
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.56.jar:8.5.56],
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]

I cannot get my USG and USW to attach. Console info displays server reject:

Model:       US-24-250W
Version:     5.43.23.12533
MAC Address: b4:fb:e4:b6:e8:0c
IP Address:  192.168.1.235
Hostname:    Switch
Uptime:      19320 seconds

Status:      Server Reject (http://192.168.1.241:8080/inform)

These might be relevant with the same snappy error is in the cause : Server reject - class org.xerial.snappy.Snappy No connection between AP and Controller after firmware upgrade

superjeng1 commented 3 years ago

Hi, I know what is wrong a few days ago. It could be solved by simply using the base image frolvlad/alpine-glibc:glibc-2.32 instead of the latest tag when building the image. I have a thread here

cinadr commented 3 years ago

Any chance to fix this within the original goofball images?

superjeng1 commented 3 years ago

It turned out the JRE package from the Alpine repository is somehow not compatible with the new version of glibc. And actually, the package is special built for use with MUSL. So I didn't really know how it worked. Anyways, I am currently using this awesome base image and extract the JRE binary from here and it works beautifully. I can provide the Docker file that I am using as base image below.

FROM xfournet/jready:alpine

ENV JAVA_HOME=/opt/java/openjdk \
    PATH="/opt/java/openjdk/bin:$PATH"

RUN set -x \
    && OPENJDK_JRE_URL=https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08_openj9-0.24.0/OpenJDK8U-jre_x64_linux_openj9_8u282b08_openj9-0.24.0.tar.gz \
    && apk add -q --no-cache curl tar \
    && curl -sSL ${OPENJDK_JRE_URL} -o /tmp/openjdk.tar.gz \
    && mkdir /tmp/openjdk \
    && tar zxf /tmp/openjdk.tar.gz -C /tmp/openjdk --strip-components=1 \
    && mkdir -p /opt/java/openjdk \
    && mv /tmp/openjdk/bin /opt/java/openjdk/ \
    && mv /tmp/openjdk/lib /opt/java/openjdk/ \
    && find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u >> /usr/glibc-compat/etc/ld.so.conf \
    && /usr/glibc-compat/sbin/ldconfig -i \
    && apk del -q --no-cache curl tar \
    && rm -r \
        /tmp/* \
        /var/cache/ldconfig/aux-cache \
        /var/cache/ldconfig \
superjeng1 commented 3 years ago

Any chance to fix this within the original goofball images?

You will just have to change the FROM line at the top of the Dockerfile from frolvlad/alpine-glibc:glibc-2.32 instead of the latest tag and build it with make. But I would recommend to use binary that is compiled to use with glibc, so I would recommend my way. If @goofball222 is good with it, I can create a repo with the Dockerfile I provided above and this repo can base on my image.

goofball222 commented 3 years ago

I'm looking at some different solves for this vs. targeting a specific frolvlad/alpine-glibc version, or rebasing.

goofball222 commented 3 years ago

I'm not able to reproduce this error with the Docker host/equipment I have on hand, I just fired up an instance of goofball222/unifi:6.1-alpine-beta against my active home lab, which only has UAPs, not seeing org.xerial.snappy.Snappy errors logged. This is a working 6.0.45 db upgraded directly to 6.1.67 during the test.

Is this only happening with your USG/USW devices? Are there other devices like UAPs that are able to connect and inform?

cinadr commented 3 years ago

Yes. chrome_mOvFR3kYTT

goofball222 commented 3 years ago

I just pushed 500138d which adds 6.1/test, and should have goofball222/unifi:6.1-alpine-test built on Docker Hub by the time this comment is an hour old. That test image is based on Alpine, targeting UniFi v6.1.67

6.1/test/Dockerfile.alpine rebases to the bone-stock Alpine image, and then installs apks for gcompat and libc6-compat for glibc compatability instead of the frolvlad/alpine-glibc approach.

Before you switch to the test image stop the existing setup and MAKE A BACKUP.

Once the tag is built and you have a backup made please switch your deployment to target goofball222/unifi:6.1-alpine-test, and let me know if the org.xerial.snappy.Snappy error re-occurs, or any other unexplained errors pop up.

superjeng1 commented 3 years ago

This error only happens if you have some particular UAP adopted. I have an nanoHD and UAP-AC-Lite, and only nanoHD did this. What happens is the AP cannot inform the controller and it remains disconnected. I have a image of the Dockerfile I commented earlier here ghcr.io/superjeng1/alpine-glibc-jre. And a unifi image built with the image here ghcr.io/superjeng1/unifi.

Edit: Corrected typos, added link to reference.

cinadr commented 3 years ago

Devices are connected but logs contains the following errors:

[2021-03-11 06:32:53,933] <docker-entrypoint> WARN - Custom SSL: missing '/usr/lib/unifi/cert/fullchain.pem'
[2021-03-11 06:32:53,935] <docker-entrypoint> WARN - Custom SSL: certificate import was NOT performed
[2021-03-11 06:32:53,941] <docker-entrypoint> INFO - Ensuring permissions are correct before continuing - 'chown -R unifi:unifi /usr/lib/unifi'
[2021-03-11 06:32:53,944] <docker-entrypoint> INFO - Running recursive 'chown' on Docker overlay2 storage is **really** slow. This may take a bit.
[2021-03-11 06:43:52,585] <docker-entrypoint> INFO - Use su-exec to drop privileges and start Java/UniFi as GID=999, UID=999
[2021-03-11 06:43:52,593] <docker-entrypoint> EXEC - su-exec unifi:unifi /usr/bin/java  -Xmx1024M -Dunifi.datadir=/usr/lib/unifi/data -Dunifi.logdir=/usr/lib/unifi/logs -Dunifi.rundir=/usr/lib/unifi/run -Djava.awt.headless=true -Dfile.encoding=UTF-8 -jar /usr/lib/unifi/lib/ace.jar start
2021-03-11 06:43:53,661 main ERROR Error processing element InMemoryAppender ([Appenders: null]): CLASS_NOT_FOUND
2021-03-11 06:43:54,308 main ERROR Unable to locate appender "InMemoryAppender" for logger config "root"
[2021-03-11T06:44:00,346] XXX <localhost-startStop-1> INFO  Version - HV000001: Hibernate Validator 6.1.2.Final
[2021-03-11T06:44:00,966] XXX <localhost-startStop-1> INFO  system - ======================================================================
[2021-03-11T06:44:00,967] XXX <localhost-startStop-1> INFO  system - UniFi 6.1.67 (build atag_6.1.67_15043 - release/release) is started
[2021-03-11T06:44:00,967] XXX <localhost-startStop-1> INFO  system - ======================================================================
[2021-03-11T06:44:00,969] XXX <localhost-startStop-1> INFO  system - BASE dir:/usr/lib/unifi
[2021-03-11T06:44:01,084] XXX <localhost-startStop-1> INFO  system - Current System IP: 172.21.0.11
[2021-03-11T06:44:01,085] XXX <localhost-startStop-1> INFO  system - Hostname: 6d5b8a8d59fe
[2021-03-11T06:44:01,087] XXX <localhost-startStop-1> INFO  system - ubic.env: prod
[2021-03-11T06:44:02,168] XXX <localhost-startStop-1> INFO  db     - waiting for db connection...
[2021-03-11T06:44:02,669] XXX <localhost-startStop-1> INFO  db     - Connecting to mongodb://mongo:27017/unifi
[2021-03-11T06:44:03,116] XXX <localhost-startStop-1> INFO  db     - setting mongodb features compatibility version to 3.6
[2021-03-11T06:44:03,920] XXX <localhost-startStop-1> INFO  db     - Connecting to mongodb://mongo:27017/unifi_stat
[2021-03-11T06:44:05,518] XXX <localhost-startStop-1> INFO  productinfo - Using controller channel=RELEASE, firmware channel=RELEASE. Available controller channels=[RELEASE], available firmware channels=[RELEASE]. SSO is disabled.
[2021-03-11T06:44:06,748] XXX <localhost-startStop-1> INFO  webrtc - Unable to load WebRTC library
[2021-03-11T06:44:08,874] XXX <localhost-startStop-1> INFO  remote - Directory '/usr/lib/unifi/logs/remote' present
[2021-03-11T06:44:10,626] XXX <cloudaccess-connect> INFO  sdn    - IoT certificate check succeeded
[2021-03-11T06:44:11,907] XXX <pool-8-thread-1> INFO  AwsIotConnection - Connection successfully established
[2021-03-11T06:44:11,907] XXX <pool-8-thread-1> INFO  AbstractAwsIotClient - Client connection active: 83e5cf46-8d73-48bc-ad4d-a84ef5ee6805:1959046578
[2021-03-11T06:45:12,603] XXX <autoupdate-check> INFO  productinfo - firmware[UAP6MP] new version (5.55.2.13145) is available
[2021-03-11T06:46:16,834] XXX <webapi-1> WARN  api    - websocket session error:Unable to unwrap data, invalid status [CLOSED]
[2021-03-11T06:49:07,796] XXX <ucare-device-check-task> WARN  ucare  - Device check failed: Cloud operation failed! RC=404, error: {"code":"NOT_FOUND","timestamp":"1615441747"}
[2021-03-11T06:49:18,937] XXX <webapi-3> WARN  api    - websocket session error:Unable to unwrap data, invalid status [CLOSED]
[2021-03-11T06:49:18,937] XXX <webapi-10> WARN  api    - websocket session error:Unable to unwrap data, invalid status [CLOSED]
[2021-03-11T06:56:59,070] XXX <webapi-4> WARN  api    - websocket session error:Unable to unwrap data, invalid status [CLOSED]
[2021-03-11T06:58:56,386] XXX <webapi-14> WARN  api    - websocket session error:Unable to unwrap data, invalid status [CLOSED]
[2021-03-11T07:00:10,633] XXX <webapi-4> ERROR [ApiServlet] - Servlet.service() for servlet [ApiServlet] in context with path [] threw exception
com.mongodb.MongoSocketReadException: Prematurely reached end of stream
    at com.mongodb.connection.SocketStream.read(SocketStream.java:88) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:494) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:224) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.UsageTrackingInternalConnection.receiveMessage(UsageTrackingInternalConnection.java:96) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.DefaultConnectionPool$PooledConnection.receiveMessage(DefaultConnectionPool.java:440) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.CommandProtocol.execute(CommandProtocol.java:112) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:168) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:289) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.connection.DefaultServerConnection.command(DefaultServerConnection.java:176) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:216) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:207) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:113) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.FindOperation$1.call(FindOperation.java:516) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.FindOperation$1.call(FindOperation.java:510) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:435) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:408) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.FindOperation.execute(FindOperation.java:510) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.operation.FindOperation.execute(FindOperation.java:81) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.Mongo.execute(Mongo.java:836) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.Mongo$2.execute(Mongo.java:823) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.DBCursor.initializeCursor(DBCursor.java:870) ~[mongo-java-driver-3.4.3.jar:?]
    at com.mongodb.DBCursor.hasNext(DBCursor.java:142) ~[mongo-java-driver-3.4.3.jar:?]
    at com.ubnt.service.system.oo0o.Ò00000(Unknown Source) ~[ace.jar:?]
    at com.ubnt.service.system.O00O.superreturn(Unknown Source) ~[ace.jar:?]
    at com.ubnt.ace.api.ApiServlet.service(Unknown Source) ~[ace.jar:?]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at com.ubnt.service.trace.requestmetrics.OoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.super(Unknown Source) ~[ace.jar:?]
    at com.ubnt.service.trace.requestmetrics.OoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.doFilter(Unknown Source) ~[ace.jar:?]
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) ~[spring-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) ~[spring-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at com.ubnt.ace.view.AuthFilter.doFilter(Unknown Source) ~[ace.jar:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at com.ubnt.ace.view.UbiosHttpsFilter.doFilter(Unknown Source) ~[ace.jar:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_275]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_275]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.56.jar:8.5.56]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]
[2021-03-11T07:01:02,209] XXX <webapi-13> WARN  api    - websocket session error:Unable to unwrap data, invalid status [CLOSED]
[2021-03-11T07:01:02,210] XXX <webapi-16> WARN  api    - websocket session error:Unable to unwrap data, invalid status [CLOSED]
superjeng1 commented 3 years ago

@cinadr Which image do you use?

cinadr commented 3 years ago

@cinadr Which image do you use?

goofball222/unifi:6.1-alpine-test

superjeng1 commented 3 years ago

goofball222/unifi:6.1-alpine-test

Can you try using my image? ghcr.io/superjeng1/unifi

Edit: Remember to backup first!

cinadr commented 3 years ago

Hi!

With a settings only backup in hand, I've deleted my mongo database and unifi settings, launched a pair of clean container (unifi and mongo) and made a restore from setup screen. Here are my results with different images:

goofball222 commented 3 years ago

@cinadr are you still running goofball222/unifi:6.1-alpine-test and have you had any further issues/errors with it? I've been running it against my test setup since I created it yesterday and haven't had any problems/errors of note.


Devices are connected but logs contains the following errors:

I can't explain com.mongodb.MongoSocketReadException error you shared, that'd be something interrupting the controller's connection to mongo. Did the mongo DB process/container restart, or a remote mongodb instance force-close it's connections for some reason?

I have seen the websocket session error when testing, it looks like something browser-side causes it, like an extension or the page being closed while active. It hasn't negatively impacted my use or test system function.


With a settings only backup in hand, I've deleted my mongo database and unifi settings, launched a pair of clean container (unifi and mongo) and made a restore from setup screen. Here are my results with different images:

From here I'll look at removing the temporary 6.1-alpine-testing tag and moving the 6.1-alpine official/beta tags over to the new base to close this out, barring any major problems found.

goofball222 commented 3 years ago

Heads-up I moved the 6.1/test changes to 6.1/beta, and updated 6.1/beta to UniFi v6.1.69 since it was published yesterday.

Please move forward with any additional testing using the goofball222/unifi:6.1-alpine-beta image. If no issues are reported these changes will also move to 6.1/official and the rest of the images on the next official release published by UBNT.

cinadr commented 3 years ago

Hi!

Sorry for the delay.

Test results are OK for both current beta and former test versions. Log file for test version: server-test.log Log file for beta version: server.log

I have seen the websocket session error when testing, it looks like something browser-side causes it, like an extension or the page being closed while active. It hasn't negatively impacted my use or test system function.

Openhab connects to unifi through it's binding to query wireless clients presence. Probably this causes these messeges.

You might close this if you don't need more data on resolving further. Thank you for your support.

goofball222 commented 3 years ago

6.1/official updated to v6.1.70 and the Alpine base image change to stock + gcompat + libc6-compat.