mbentley / docker-omada-controller

Docker image to run TP-Link Omada Controller
735 stars 109 forks source link

[Bug]: 5.14.x (beta & GA) does not start up #418

Closed IAmKonni closed 3 weeks ago

IAmKonni commented 7 months ago

🚨If you're experiencing this issue🚨

Feel free to add to this thread but please also post on the TP-Link Forums in this thread. There is only so much I can do and this appears to be a software related issue that I can't do anything about. If 5.14 never successfully ran for you, you can manually remove the version check file and specify the 5.13 tag to get back to a running controller. See this post in this thread for more info.

I will update this first thread as more information becomes available from TP-Link as well but subscribing to that forum thread would be a good idea too.

Update 2024-07-18: TP-Link acknowledged the issue - see this comment in this thread or directly to this TP-Link forum post

Update 2024-07-26: There is now a beta version available where the issue appears to be fixed. Images have been pushed and the tags are now available on Docker Hub. I would only suggest running the beta if you know what you're doing when it comes to running beta software or if you're stuck with a broken controller that can't be downgraded to 5.13 because 5.14 has already started at some point. If you're not having problems, I would suggest staying on 5.13.

The image tag is beta-5.14.30.7 for multi-arch and then there are specific tags for each architecture + the build with chromium if you use the report generation feature.

-mbentley


Controller Version

5.14.0.11

Describe the Bug

I switched from tag 5.13 to beta to test the newest pre-release. I never had any problems in updating to newer versions, this is the very first time i'm facing a problem. The controller does not start up, it runs into a boot loop (see logs).

Expected Behavior

Starting like always. =)

Steps to Reproduce

Change tag in compose file from 5.13 to beta and run docker-compose up -d

How You're Launching the Container

version: "3"

services:
  omada-controller:
    container_name: omada-controller
    image: mbentley/omada-controller:beta
    ports:
      - "8043:8043/tcp"
      - "443:443/tcp"
      - "8488:8488/tcp"
      - "8443:8443/tcp"
      - "8483:8483/tcp"
      - "29810:29810/udp"
      - "29811:29811"
      - "29812:29812"
      - "29813:29813"
      - "29814:29814"

    environment:
      MANAGE_HTTP_PORT: 8488
      MANAGE_HTTPS_PORT: 8443
      PORTAL_HTTP_PORT: 8488
      PORTAL_HTTPS_PORT: 8483
      SHOW_SERVER_LOGS: 'true'
      SHOW_MONGODB_LOGS: 'false'
      SSL_CERT_NAME: 'tls.crt'
      SSL_KEY_NAME: 'tls.key'
      TZ: 'Europe/Berlin'
    volumes:
      - ./data:/opt/tplink/EAPController/data
      - ./work:/opt/tplink/EAPController/work
      - ./logs:/opt/tplink/EAPController/logs
    restart: unless-stopped

Container Logs

03-25-2024 18:32:38.365 ERROR [main] [] c.t.s.o.s.t.SpringBootStartUpTask(): Cannot retry start up springboot. reson:Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.openapi.c.q': Unsatisfied dependency expressed through field 'e'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.a.a': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.e.a': Unsatisfied dependency expressed through field 'b'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.b.p': Unsatisfied dependency expressed through field 'm'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.user.A': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a': Bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a' has been injected into other beans [com.tplink.smb.omada.identityaccess.domain.model.d.q] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesForType' with the 'allowEagerInit' flag turned off, for example.
03-25-2024 18:32:38.365 ERROR [main] [] c.t.s.o.s.t.FailExitTask(): Failed to start omada controller, going to exit
03-25-2024 18:32:38.366 INFO [Thread-0] [] c.t.s.o.s.OmadaBootstrap(): Failed to shutdown customThread.
java.lang.ExceptionInInitializerError: null
    at com.tplink.smb.omada.common.concurrent.thread.a.a(SourceFile:243) ~[omada-common-5.14.0.11.jar:5.14.0.11]
    at com.tplink.smb.omada.starter.OmadaBootstrap.b(SourceFile:195) ~[local-starter-5.14.0.11.jar:5.14.0.11]
    at com.tplink.smb.omada.starter.OmadaLinuxMain.b(SourceFile:87) ~[local-starter-5.14.0.11.jar:5.14.0.11]
    at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: java.lang.IllegalStateException: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@398f2bd3 has not been refreshed yet
    at org.springframework.context.support.AbstractApplicationContext.assertBeanFactoryActive(AbstractApplicationContext.java:1147) ~[spring-context-5.3.30.jar:5.3.30]
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159) ~[spring-context-5.3.30.jar:5.3.30]
    at com.tplink.smb.omada.common.spring.a.a(SourceFile:28) ~[omada-common-5.14.0.11.jar:5.14.0.11]
    at com.tplink.smb.omada.common.concurrent.thread.a$a.<clinit>(SourceFile:55) ~[omada-common-5.14.0.11.jar:5.14.0.11]
    ... 4 more
INFO: Validating user/group (omada:omada) exists with correct UID/GID (508:508)
INFO: Group (omada) exists; skipping creation
INFO: User (omada) exists; skipping creation
INFO: Time zone set to 'Europe/Berlin'
INFO: Value of 'manage.http.port' already set to 8488 in omada.properties
INFO: Value of 'manage.https.port' already set to 8443 in omada.properties
INFO: Value of 'portal.http.port' already set to 8488 in omada.properties
INFO: Value of 'portal.https.port' already set to 8483 in omada.properties
INFO: Value of 'port.adopt.v1' already set to 29812 in omada.properties
INFO: Value of 'port.app.discovery' already set to 27001 in omada.properties
INFO: Value of 'port.upgrade.v1' already set to 29813 in omada.properties
INFO: Value of 'port.manager.v1' already set to 29811 in omada.properties
INFO: Value of 'port.manager.v2' already set to 29814 in omada.properties
INFO: Value of 'port.discovery' already set to 29810 in omada.properties
INFO: Value of 'port.transfer.v2' already set to 29815 in omada.properties
INFO: Value of 'port.rtty' already set to 29816 in omada.properties
INFO: Value of 'mongo.external' already set to false in omada.properties
INFO: Value of 'eap.mongod.uri' already set to mongodb://127.0.0.1:27217/omada in omada.properties
INFO: Version check passed; image version (5.14.0.11) >= the last version ran (5.14.0.11); writing image version to last ran file...
INFO: userland/kernel check passed
INFO: Starting Omada Controller as user omada
03-25-2024 18:32:47.525 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): record: start the omada controller
03-25-2024 18:32:47.528 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): record: set property finished
03-25-2024 18:32:47.530 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): record: configure log finished
03-25-2024 18:32:47.532 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): record: bootstrap prepare
03-25-2024 18:32:47.538 INFO [log4j-thread] [] c.t.s.o.c.o.a.b(): success to load configuration omada.properties
03-25-2024 18:32:47.539 INFO [log4j-thread] [] c.t.s.o.c.o.OmadacType(): omadacType: Local Controller
03-25-2024 18:32:47.556 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): going to start local mongod.
03-25-2024 18:32:50.068 INFO [main] [] c.t.s.o.s.s.b(): mongodb process id is 155
03-25-2024 18:32:50.071 ERROR [main] [] c.t.s.f.c.FacadeUtils(): facadeMsgEnable is not enable, msg: Mongo DB server started
03-25-2024 18:32:50.071 INFO [main] [] c.t.s.o.s.s.b(): Mongo DB server started
03-25-2024 18:32:50.327 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): record: bootstrap record finished
03-25-2024 18:32:50.327 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): record: bootstrap startup
03-25-2024 18:32:50.380 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): record: start run omada tasks
03-25-2024 18:32:50.380 INFO [main] [] c.t.s.o.s.t.SpringBootStartUpTask(): record: task SpringBootStartupTask start
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.17)
03-25-2024 18:32:50.837 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): Starting OmadaLinuxMain v5.14.0.11 using Java 17.0.10 on 3c8dd90b3952 with PID 1 (/opt/tplink/EAPController/lib/local-starter-5.14.0.11.jar started by omada in /opt/tplink/EAPController/lib)
03-25-2024 18:32:50.839 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): No active profile set, falling back to 1 default profile: "default"
03-25-2024 18:32:56.974 WARN [main] [] o.s.d.c.CustomConversions(): Registering converter from class java.time.LocalDateTime to class org.joda.time.LocalDateTime as reading converter although it doesn't convert from a store-supported type; You might want to check your annotation setup at the converter implementation
03-25-2024 18:32:58.664 WARN [main] [] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext(): Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.openapi.c.q': Unsatisfied dependency expressed through field 'e'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.a.a': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.e.a': Unsatisfied dependency expressed through field 'b'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.b.p': Unsatisfied dependency expressed through field 'm'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.user.A': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a': Bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a' has been injected into other beans [com.tplink.smb.omada.identityaccess.domain.model.d.q] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesForType' with the 'allowEagerInit' flag turned off, for example.
03-25-2024 18:32:58.700 ERROR [main] [] o.s.b.SpringApplication(): Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.openapi.c.q': Unsatisfied dependency expressed through field 'e'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.a.a': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.e.a': Unsatisfied dependency expressed through field 'b'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.b.p': Unsatisfied dependency expressed through field 'm'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.user.A': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a': Bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a' has been injected into other beans [com.tplink.smb.omada.identityaccess.domain.model.d.q] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesForType' with the 'allowEagerInit' flag turned off, for example.
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:713) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:693) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:408) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:921) ~[spring-context-5.3.30.jar:5.3.30]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.30.jar:5.3.30]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.17.jar:2.7.17]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[spring-boot-2.7.17.jar:2.7.17]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409) ~[spring-boot-2.7.17.jar:2.7.17]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.17.jar:2.7.17]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) ~[spring-boot-2.7.17.jar:2.7.17]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289) ~[spring-boot-2.7.17.jar:2.7.17]
    at com.tplink.smb.omada.starter.task.SpringBootStartUpTask.execute(SourceFile:33) ~[local-starter-5.14.0.11.jar:5.14.0.11]
    at com.tplink.smb.omada.starter.task.c.a(SourceFile:20) ~[local-starter-5.14.0.11.jar:5.14.0.11]
    at com.tplink.smb.omada.starter.OmadaBootstrap.f(SourceFile:356) ~[local-starter-5.14.0.11.jar:5.14.0.11]
    at com.tplink.smb.omada.starter.OmadaLinuxMain.a(SourceFile:99) ~[local-starter-5.14.0.11.jar:5.14.0.11]
    at com.tplink.smb.omada.starter.OmadaLinuxMain.main(SourceFile:42) ~[local-starter-5.14.0.11.jar:5.14.0.11]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.a.a': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.common.e.a': Unsatisfied dependency expressed through field 'b'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.b.p': Unsatisfied dependency expressed through field 'm'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.user.A': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a': Bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a' has been injected into other beans [com.tplink.smb.omada.identityaccess.domain.model.d.q] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesForType' with the 'allowEagerInit' flag turned off, for example.
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:713) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:693) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:408) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.30.jar:5.3.30]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:710) ~[spring-beans-5.3.30.jar:5.3.30]

MongoDB Logs

2024-03-25T18:29:13.220+0100 I STORAGE  [signalProcessingThread] shutdown: removing fs lock...
2024-03-25T18:29:13.220+0100 I CONTROL  [signalProcessingThread] now exiting
2024-03-25T18:29:13.220+0100 I CONTROL  [signalProcessingThread] shutting down with code:0
2024-03-25T18:29:33.908+0100 I CONTROL  [main] ***** SERVER RESTARTED *****
2024-03-25T18:29:33.919+0100 I CONTROL  [initandlisten] MongoDB starting : pid=175 port=27217 dbpath=../data/db 64-bit host=28242437eafe
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten] db version v3.6.8
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten] git version: 8e540c0b6db93ce994cc548f000900bdc740f80a
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten] allocator: tcmalloc
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten] modules: none
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten] build environment:
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten]     distarch: x86_64
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten]     target_arch: x86_64
2024-03-25T18:29:33.920+0100 I CONTROL  [initandlisten] options: { net: { bindIp: "127.0.0.1", port: 27217 }, processManagement: { pidFilePath: "../data/mongo.pid" }, storage: { dbPath: "../data/db", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "../logs/mongod.log" } }
2024-03-25T18:29:33.920+0100 I -        [initandlisten] Detected data files in ../data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2024-03-25T18:29:33.920+0100 I STORAGE  [initandlisten]
2024-03-25T18:29:33.920+0100 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2024-03-25T18:29:33.920+0100 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2024-03-25T18:29:33.920+0100 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=11315M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),cache_cursors=false,compatibility=(release="3.0",require_max="3.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
2024-03-25T18:29:34.589+0100 I STORAGE  [initandlisten] WiredTiger message [1711387774:589205][175:0x7f1f3c986ac0], txn-recover: Main recovery loop: starting at 232/36004352
2024-03-25T18:29:34.638+0100 I STORAGE  [initandlisten] WiredTiger message [1711387774:638685][175:0x7f1f3c986ac0], txn-recover: Recovering log 232 through 233
2024-03-25T18:29:34.662+0100 I STORAGE  [initandlisten] WiredTiger message [1711387774:662948][175:0x7f1f3c986ac0], txn-recover: Recovering log 233 through 233
2024-03-25T18:29:34.691+0100 I STORAGE  [initandlisten] WiredTiger message [1711387774:691597][175:0x7f1f3c986ac0], txn-recover: Set global recovery timestamp: 0
2024-03-25T18:29:34.857+0100 I CONTROL  [initandlisten]
2024-03-25T18:29:34.857+0100 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2024-03-25T18:29:34.857+0100 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2024-03-25T18:29:34.857+0100 I CONTROL  [initandlisten]
2024-03-25T18:29:35.907+0100 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '../data/db/diagnostic.data'
2024-03-25T18:29:35.908+0100 I NETWORK  [initandlisten] waiting for connections on port 27217
2024-03-25T18:29:36.575+0100 I NETWORK  [listener] connection accepted from 127.0.0.1:41382 #1 (1 connection now open)
2024-03-25T18:29:36.575+0100 I NETWORK  [listener] connection accepted from 127.0.0.1:41380 #2 (2 connections now open)

Additional Context

The mongo db log is the first iteration after switching to 5.14 beta. There are more following Exceptions and stack traces in the log, but all seem to be of missing dependencies.

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.domain.model.user.A': Unsatisfied dependency expressed through field 'c'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a': Bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a' has been injected into other beans [com.tplink.smb.omada.identityaccess.domain.model.d.q] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesForType' with the 'allowEagerInit' flag turned off, for example.

org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a': Bean with name 'com.tplink.smb.omada.identityaccess.port.mongo.adaptor.persistence.tenant.a' has been injected into other beans [com.tplink.smb.omada.identityaccess.domain.model.d.q] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesForType' with the 'allowEagerInit' flag turned off, for example.

fiatguy85 commented 2 months ago

Thanks for following up @mbentley. I'm pinned on 5.14.30.7 and it's working, but it would be great not to have to keep a workaround in place.

MomentumV commented 2 months ago

I have (once again) learned my lesson about backups. Fortunately my network is very simple. Thanks to @mbentley for your clear communication here and all the work you've put into this container. I'm sorry you're getting such problems from TP Link's issues.

jasonajack commented 2 months ago

I migrated from 5.13 to beta-5.14.30.7 today successfully. By the way, I would highly recommend running regular backups of your data/ directory. I would have easily foobar'd my entire installation had it not been for my backups.

@mbentley Good work on getting the beta made available. Thank you for this!

colinhuckstep commented 2 months ago

I would highly recommend running regular backups of your data/ directory. I would have easily foobar'd my entire installation had it not been for my backups.

I've got the autobackups turned on with a separate bind mount to /opt/tplink/EAPController/data/autobackup. Scheduled rclone sync of the bind mount to offsite storage location.

lxe commented 2 months ago

Adding here that upgrade from 5.13 to beta-5.14.30.7-arm64 worked for me

sebyon commented 1 month ago

Can confirm that beta-5.14.30.7-arm64 works for me also.

Upgraded from 5.13 on a Raspberry Pi 5. Highly recommend a backup before trying.

nickma82 commented 1 month ago

beta-5.14.30.7-arm64 brought different errors for me, didnt work:

omada-controller    | exec /entrypoint.sh: exec format error
omada-controller exited with code 1
HerbCSO commented 1 month ago

Are you running this on an arm64 machine, or should it be amd64?

mbentley commented 1 month ago

Hey all - just FYI, a new beta was released and the image is now being built for it. The beta tags beta, beta-5.14, and beta-5.14.32.2 will update to it. Please let me know if anyone does switch to it if they have any issues - no need to confirm if it works fine as I know there are a lot of people subscribed to this issue. Still no word on when they will actually release the next GA version, unfortunately.

domushnik commented 1 month ago

Hi Everyone, I tried to update the controller to the version beta-5.14 but I'm getting the following issue when it starts:

INFO: Starting Omada Controller as user omada
10-02-2024 09:05:53.642 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): record: start the omada controller
10-02-2024 09:05:53.650 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): record: set property finished
10-02-2024 09:05:53.691 INFO [main] [] c.t.s.o.s.OmadaLinuxMain(): record: configure log finished
10-02-2024 09:05:53.698 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): record: bootstrap prepare
10-02-2024 09:05:53.727 INFO [main] [] c.t.s.o.c.o.c.b(): success to load configuration omada.properties
10-02-2024 09:05:53.730 INFO [main] [] c.t.s.o.c.o.OmadacType(): omadacType: Local Controller
10-02-2024 09:05:53.731 INFO [main] [] c.t.s.o.s.e.c(): Configuration omadacType is linux
10-02-2024 09:05:53.819 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): going to start local mongod.
10-02-2024 09:05:57.333 INFO [main] [] c.t.s.o.s.s.b(): mongodb process id is 205
10-02-2024 09:05:57.336 ERROR [main] [] c.t.s.f.c.FacadeUtils(): facadeMsgEnable is not enable, msg: Mongo DB server started
10-02-2024 09:05:57.336 INFO [main] [] c.t.s.o.s.s.b(): Mongo DB server started
10-02-2024 09:05:57.674 WARN [main] [] c.t.s.o.s.OmadaBootstrap(): Valid keystore is missing. Generating one ...
10-02-2024 09:05:58.531 INFO [main] [] c.t.s.o.s.OmadaBootstrap(): Certificate generated!
10-02-2024 09:05:58.874 WARN [main] [] c.t.s.o.s.a.u.X509CertificateUtils(): Valid radius server keystore is missing. Generating one ...
Exception in thread "main" java.lang.IllegalAccessError: class com.tplink.smb.omada.system.api.util.X509CertificateUtils (in unnamed module @0x313ac989) cannot access class sun.security.x509.X500Name (in module java.base) because module java.base does not export sun.security.x509 to unnamed module @0x313ac989
        at com.tplink.smb.omada.system.api.util.X509CertificateUtils.a(SourceFile:508)
        at com.tplink.smb.omada.system.api.util.X509CertificateUtils.a(SourceFile:481)
        at com.tplink.smb.omada.system.api.util.X509CertificateUtils.a(SourceFile:591)
        at com.tplink.smb.omada.starter.OmadaBootstrap.e(SourceFile:327)
        at com.tplink.smb.omada.starter.OmadaLinuxMain.a(SourceFile:92)
        at com.tplink.smb.omada.starter.OmadaLinuxMain.main(SourceFile:42)

I had to roll back to 5.13. Does anybody know how to fix this issue?

mbentley commented 1 month ago

@domushnik - could you create a new bug type issue for this with full details to help me get a better picture of how you're deploying the controller and the full logs? It's a different issue but I am not sure if it is a bug or not. I am guessing it is something else where I also need to add another JVM arg like --add-opens=java.base/sun.security.x509=ALL-UNNAMED but it sounds like you have a unique config option set that related to radius server config that only happens when that option is enabled that isn't triggered with a clean deployment.

rangerdude commented 1 month ago

I have tried upgraded from 5.13 to 5.14 several times. Tried with no upgrade, just flat new docker.. Same problem.

A simple change back to 5.13 and it works fine.

-----Docker-Compose file ------

version: "3.1"

services: omada-controller: container_name: omada-controller image: mbentley/omada-controller:5.14 restart: unless-stopped ulimits: nofile: soft: 4096 hard: 8192 stop_grace_period: 60s network_mode: host environment:

mbentley commented 3 weeks ago

They have FINALLY released 5.14.32.2 which happens to be the same version as the latest beta. Changes were merged in #485 to add the new version. Builds are complete and available on Docker Hub. Let me know if there are any issues but I probably won't be able to get to it until later tonight. I'm going to close this issue since we finally have a generally available fix. Thanks to everyone who helped with this issue!