Apicurio-studio: Bug: Beta 2.45 in docker will not start

Created on 9 Jan 2020  路  9Comments  路  Source: Apicurio/apicurio-studio

Deploying 2.45 fails, using the same config but on 2.44 works fine.

Error log:

2020-01-08 16:19:052020-01-09 00:19:05,256 FATAL [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
2020-01-08 16:19:052020-01-09 00:19:05,226 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("parallel-subsystem-boot") failed - address: ([]) - failure description: "\"WFLYCTL0193: Failed executing subsystem datasources boot operations\""
2020-01-08 16:19:052020-01-09 00:19:05,223 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) "WFLYCTL0193: Failed executing subsystem datasources boot operations"
2020-01-08 16:19:052020-01-09 00:19:05,206 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 14) WFLYCTL0013: Operation ("add") failed - address: ([
2020-01-08 16:19:05("subsystem" => "datasources"),
2020-01-08 16:19:05("data-source" => "ApicurioDS")
2020-01-08 16:19:05]) - failure description: "WFLYCTL0113: '' is an invalid value for parameter exception-sorter-class-name. Values must have a minimum length of 1 characters"
2020-01-08 16:19:042020-01-09 00:19:04,583 INFO [org.wildfly.security] (ServerService Thread Pool -- 10) ELY00001: WildFly Elytron version 1.10.4.Final
bug

Most helpful comment

Ah ha - looks like there are Null versions of both interfaces, so those should be OK as defaults. I'll test that to ensure they work and then make the change.

All 9 comments

What docker image is this? Can you provide any additional details?

The docker images pushed to docker hub seem to be working because they are used in the OpenShift installation at studio.apicur.io. Also I have downloaded the quickstart ZIP and that seems to run fine.

Specifically:

apicurio/apicurio-studio-ws:0.2.45.Final
apicurio/apicurio-studio-api:0.2.45.Final

The UI image works though.

I am running these in AWS ECS and was a fresh AWS RDS postgres database.

If I downgrade to apicurio/apicurio-studio-ws:0.2.44.Final & apicurio/apicurio-studio-ws:0.2.44.Final everything worked ok.

I could try upgrading to 0.2.45 now that the database is populated?

I can't imagine what the difference between 44 and 45 could be that would cause the failure you're seeing. The failure itself is opaque to me. These same docker images are being used in the cloud version of Apicurio. I'm at a bit of a loss.

You can certainly try upgrading now that the DB is populated and see if that helps. But the error in your log file doesn't seem to be DB related:

'' is an invalid value for parameter exception-sorter-class-name

I do not know what might cause this or where it's coming from. The docker images all use Thorntail as the platform, so there is no WildFly standalone.xml file to look into for problems. Now that I think of it, the version of Thorntail was upgraded between 44 and 45. :(

OK I see. Looking into this a bit more we have this in the Dockerfile:

    -Dthorntail.datasources.data-sources.ApicurioDS.exception-sorter-class-name=${APICURIO_DB_EXCEPTION_SORTER_CLASS_NAME} \   

Do you have that env var set to anything? If no, then perhaps figure out what exception sorters are available and use one?

I can confirm this with 0.2.45.Final while 0.2.44 works fine.

Output:

2020-01-09 14:06:37,328 INFO  [org.wildfly.security] (ServerService Thread Pool -- 6) ELY00001: WildFly Elytron version 1.10.4.Final
2020-01-09 14:06:37,606 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 10) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "ApicurioDS")
]) - failure description: "WFLYCTL0113: '' is an invalid value for parameter exception-sorter-class-name. Values must have a minimum length of 1 characters"
2020-01-09 14:06:37,612 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) "WFLYCTL0193: Failed executing subsystem datasources boot operations"
2020-01-09 14:06:37,614 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("parallel-subsystem-boot") failed - address: ([]) - failure description: "\"WFLYCTL0193: Failed executing subsystem datasources boot operations\""
2020-01-09 14:06:37,617 FATAL [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
2020-01-09 14:06:37,634 ERROR [stderr] (main) java.lang.RuntimeException: java.util.concurrent.ExecutionException: JBTHR00005: Operation failed
2020-01-09 14:06:37,692 ERROR [stderr] (main)   at org.wildfly.swarm.spi.api.ClassLoading.withTCCL(ClassLoading.java:45)
2020-01-09 14:06:37,693 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.bootstrap(ServerBootstrapImpl.java:113)
2020-01-09 14:06:37,694 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.start(Swarm.java:401)
2020-01-09 14:06:37,694 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.main(Swarm.java:745)
2020-01-09 14:06:37,694 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2020-01-09 14:06:37,695 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2020-01-09 14:06:37,695 ERROR [stderr] (main)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020-01-09 14:06:37,695 ERROR [stderr] (main)   at java.lang.reflect.Method.invoke(Method.java:498)
2020-01-09 14:06:37,698 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:57)
2020-01-09 14:06:37,698 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.run(Main.java:134)
2020-01-09 14:06:37,698 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.main(Main.java:87)
2020-01-09 14:06:37,698 ERROR [stderr] (main) Caused by: java.util.concurrent.ExecutionException: JBTHR00005: Operation failed
2020-01-09 14:06:37,699 ERROR [stderr] (main)   at org.jboss.threads.AsyncFutureTask.get(AsyncFutureTask.java:253)
2020-01-09 14:06:37,699 ERROR [stderr] (main)   at org.wildfly.swarm.internal.wildfly.SelfContainedContainer.start(SelfContainedContainer.java:137)
2020-01-09 14:06:37,700 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeServer.start(RuntimeServer.java:213)
2020-01-09 14:06:37,700 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeServer$Proxy$_$$_WeldClientProxy.start(Unknown Source)
2020-01-09 14:06:37,700 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.lambda$bootstrap$1(ServerBootstrapImpl.java:159)
2020-01-09 14:06:37,700 ERROR [stderr] (main)   at org.wildfly.swarm.spi.api.ClassLoading.withTCCL(ClassLoading.java:43)
2020-01-09 14:06:37,700 ERROR [stderr] (main)   ... 10 more
2020-01-09 14:06:37,701 ERROR [stderr] (main) Caused by: java.lang.Exception: WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
2020-01-09 14:06:37,701 ERROR [stderr] (main)   at org.jboss.as.server.BootstrapListener.bootFailure(BootstrapListener.java:87)
2020-01-09 14:06:37,701 ERROR [stderr] (main)   at org.jboss.as.server.ServerService.boot(ServerService.java:415)
2020-01-09 14:06:37,701 ERROR [stderr] (main)   at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:374)
2020-01-09 14:06:37,702 ERROR [stderr] (main)   at java.lang.Thread.run(Thread.java:748)
2020-01-09 14:06:37,702 ERROR [stderr] (main) java.lang.RuntimeException: java.util.concurrent.ExecutionException: JBTHR00005: Operation failed
2020-01-09 14:06:37,702 ERROR [stderr] (main)   at org.wildfly.swarm.spi.api.ClassLoading.withTCCL(ClassLoading.java:45)
2020-01-09 14:06:37,702 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.bootstrap(ServerBootstrapImpl.java:113)
2020-01-09 14:06:37,702 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.start(Swarm.java:401)
2020-01-09 14:06:37,703 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.main(Swarm.java:745)
2020-01-09 14:06:37,703 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2020-01-09 14:06:37,703 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2020-01-09 14:06:37,703 ERROR [stderr] (main)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020-01-09 14:06:37,703 ERROR [stderr] (main)   at java.lang.reflect.Method.invoke(Method.java:498)
2020-01-09 14:06:37,704 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:57)
2020-01-09 14:06:37,704 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.run(Main.java:134)
2020-01-09 14:06:37,704 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.main(Main.java:87)
2020-01-09 14:06:37,704 ERROR [stderr] (main) Caused by: java.util.concurrent.ExecutionException: JBTHR00005: Operation failed
2020-01-09 14:06:37,704 ERROR [stderr] (main)   at org.jboss.threads.AsyncFutureTask.get(AsyncFutureTask.java:253)
2020-01-09 14:06:37,705 ERROR [stderr] (main)   at org.wildfly.swarm.internal.wildfly.SelfContainedContainer.start(SelfContainedContainer.java:137)
2020-01-09 14:06:37,705 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeServer.start(RuntimeServer.java:213)
2020-01-09 14:06:37,705 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeServer$Proxy$_$$_WeldClientProxy.start(Unknown Source)
2020-01-09 14:06:37,705 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.lambda$bootstrap$1(ServerBootstrapImpl.java:159)
2020-01-09 14:06:37,706 ERROR [stderr] (main)   at org.wildfly.swarm.spi.api.ClassLoading.withTCCL(ClassLoading.java:43)
2020-01-09 14:06:37,706 ERROR [stderr] (main)   ... 10 more
2020-01-09 14:06:37,707 ERROR [stderr] (main) Caused by: java.lang.Exception: WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
2020-01-09 14:06:37,713 INFO  [org.jboss.as] (MSC service thread 1-2) WFLYSRV0050: Thorntail 2.6.0.Final (WildFly Core 10.0.3.Final) stopped in 77ms
2020-01-09 14:06:37,713 ERROR [stderr] (main)   at org.jboss.as.server.BootstrapListener.bootFailure(BootstrapListener.java:87)

I've just tried to explicitly set the exception sorter class using the environment variable mentioned above, as described in https://github.com/thorntail/thorntail/blob/5b13dcdf0063c950862b50b613b3f96cab6f924a/fractions/javaee/datasources/README.adoc

We're running Apicurio on k8s, the pod description now shows the variable is set:
APICURIO_DB_EXCEPTION_SORTER_CLASS_NAME: org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter

Sadly no luck, still getting the same error.

I have tested this locally and confirmed that there are, in fact, two different ENV vars that now need to be set or else Thorntail will fail on startup. These are:

  • APICURIO_DB_EXCEPTION_SORTER_CLASS_NAME
  • APICURIO_DB_VALID_CONNECTION_CHECKER_CLASS_NAME

Both must be set. Values for these can be found at the link that @srotsch provided here: https://github.com/thorntail/thorntail/blob/5b13dcdf0063c950862b50b613b3f96cab6f924a/fractions/javaee/datasources/README.adoc

When I tried running the docker image like this it failed:

docker run -it apicurio/apicurio-studio-api:0.2.45.Final

I need to run it like this:

docker run -e "APICURIO_DB_EXCEPTION_SORTER_CLASS_NAME=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter" -e "APICURIO_DB_VALID_CONNECTION_CHECKER_CLASS_NAME=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker" -it apicurio/apicurio-studio-api:0.2.45.Final

I will need to look into some ways to improve this. Perhaps by wrapping the startup in a script or simply by providing default values for these two classes (if I can find default implementations). I suppose I could implement no-op versions of both and use those as defaults... I'll give it some thought.

@srotsch Are you certain that the ENV variable is actually set and being passed to docker properly? I'm pretty confident this is the problem.

Ah ha - looks like there are Null versions of both interfaces, so those should be OK as defaults. I'll test that to ensure they work and then make the change.

Thank you @EricWittmann

Was this page helpful?
0 / 5 - 0 ratings