Closed amsnek closed 1 week ago
2024-07-05 15:12:59.586 SEVERE: [1] MainKt.main$lambda$0#55: An uncaught exception occurred in thread=Thread[main,5,main] java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler$Wrapper
Are you sure that some old jetty jars are not left there which break jvb?
I would think so, as this is build with mavan 3.8 / java17 on a remote host and packed -> installed on remote system. The old folder will be removed entirely. The builds itself are done in containers, which are ephermal, so there should be no old artefacts
But if this is not reproduceable and is possible that it is related to my setup -> will re-investigate
This error is problem with the java dependencies. We haven't seen such an error in any of our environments.
Have you tried using the debian packages provided by our repositories, do you reproduce it with them?
will try to test with debian packages but that is no quick setup in this case.
fyi, these are the files in the snapshot
jitsi-videobridge-2.3-SNAPSHOT/jitsi-videobridge.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/videobridge.rc
jitsi-videobridge-2.3-SNAPSHOT/lib/logging.properties
jitsi-videobridge-2.3-SNAPSHOT/jvb.bat
jitsi-videobridge-2.3-SNAPSHOT/jvb.sh
jitsi-videobridge-2.3-SNAPSHOT/lib/json-simple-1.1.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/guava-33.2.0-jre.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/failureaccess-1.0.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jsr305-3.0.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/checker-qual-3.42.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/error_prone_annotations-2.26.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/j2objc-annotations-3.0.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-rewrite-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-server-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-jakarta-servlet-api-5.0.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-servlets-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-http-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-io-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-util-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-jetty-server-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-servlet-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-webapp-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-xml-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-jetty-api-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-jetty-common-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-core-common-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-servlet-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-core-server-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-jetty-client-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-client-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-alpn-client-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/websocket-core-client-11.0.21.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/annotations-24.1.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/spotbugs-annotations-4.6.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jitsi-media-transform-2.3-SNAPSHOT.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jitsi-srtp-1.1-18-g98e4c5d.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/bctls-jdk18on-1.78.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/bcutil-jdk18on-1.78.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/bcprov-jdk18on-1.78.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/bcpkix-jdk18on-1.78.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/pcap4j-core-1.8.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/pcap4j-packetfactory-static-1.8.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/rtp-2.3-SNAPSHOT.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jitsi-sctp-1.0-21-gfe0d028.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jitsi-dcsctp-1.0-3-gaf9d564.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smjni-jnigen-processor-3.9.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smjni-jnigen-annotations-3.9.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/slf4j-api-2.0.13.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/slf4j-jdk14-2.0.13.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/ice4j-3.0-69-ga53b402.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/java-sdp-nist-bridge-1.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/sdp-api-1.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jain-sip-ri-ossonly-1.2.279-jitsi-oss1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/weupnp-0.1.4.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jicoco-1.1-140-g8f45a9f.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-proxy-11.0.20.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jcl-core-2.8.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/objenesis-2.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/cglib-nodep-2.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/object-cloner-0.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-core-4.4.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-xmlparser-4.4.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jxmpp-core-1.0.3.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jxmpp-util-cache-1.0.3.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jxmpp-jid-1.0.3.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/minidns-core-1.0.5.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-extensions-4.4.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-im-4.4.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-tcp-4.4.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-streammanagement-4.4.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-xmlparser-stax-4.4.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/javassist-3.28.0-GA.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jicoco-config-1.1-140-g8f45a9f.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/config-1.4.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jicoco-metrics-1.1-140-g8f45a9f.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/simpleclient-0.16.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/simpleclient_tracer_otel-0.16.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/simpleclient_tracer_common-0.16.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/simpleclient_tracer_otel_agent-0.16.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/simpleclient_common-0.16.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jitsi-xmpp-extensions-1.0-80-g0ce9883.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-java8-4.4.8.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-resolver-javax-4.4.8.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/smack-sasl-javax-4.4.8.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jxmpp-stringprep-rocksxmppprecis-1.0.3.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/precis-1.1.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/commons-lang3-3.12.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/kotlin-stdlib-1.9.10.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jitsi-utils-1.0-132-g83984af.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jna-5.9.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jitsi-metaconfig-1.0-11-g8cf950e.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/kotlin-stdlib-jdk8-2.0.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/kotlin-stdlib-jdk7-2.0.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-container-jetty-http-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jakarta.inject-api-2.0.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jetty-security-12.0.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-common-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jakarta.annotation-api-2.1.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/osgi-resource-locator-1.0.3.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-server-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-client-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jakarta.validation-api-3.0.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jakarta.ws.rs-api-3.1.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-container-servlet-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-container-servlet-core-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-hk2-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/hk2-locator-3.0.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/aopalliance-repackaged-3.0.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/hk2-api-3.0.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/hk2-utils-3.0.6.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-media-json-jackson-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jersey-entity-filtering-3.1.7.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jackson-annotations-2.17.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jackson-databind-2.17.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jackson-core-2.17.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/byte-buddy-1.14.9.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jackson-module-jakarta-xmlbind-annotations-2.17.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jakarta.xml.bind-api-4.0.2.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jakarta.activation-api-2.1.3.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/jackson-module-kotlin-2.17.1.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/kotlin-reflect-2.0.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/reflections-0.9.11.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/agafua-syslog-0.4.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/sentry-7.9.0.jar
jitsi-videobridge-2.3-SNAPSHOT/lib/kotlin-stdlib-common-1.9.10.jar
Check the file content of the released jvb debian file in the repository and you will find inconsistencies in your build. For example jetty-security version.
Please, when you have questions or problems use the community forum before opening new issues, thank you.
yeah, I just pinned it down to the difference between jetty-security-11.0.20.jar and jetty-security-12.0.7.jar as well -> i have no idea why my maven build process would fetch that version but will check the community forums
Thanks!
FWIW, we ran into the same issue, and we build in a clean container (no Maven cache) from source using a fresh checkout of this repository, so I don't think it can be an environment thing. We build using this command:
mvn -B -T 1C -Dmaven.test.skip=true -DskipTests -Dassembly.skipAssembly=true \
-DincludeScope=runtime -am package dependency:copy-dependencies
NB, there are currently three versions of Jetty in the dependency tree…
11.0.20 from jitsi-media-transform and from jvb via jicoco:
[INFO] org.jitsi:jitsi-media-transform:jar:2.3-SNAPSHOT
[INFO] +- org.jitsi:jicoco:jar:1.1-140-g8f45a9f:compile
[INFO] | +- org.eclipse.jetty:jetty-proxy:jar:11.0.20:compile
[INFO] | | \- org.eclipse.jetty:jetty-client:jar:11.0.20:compile
[INFO] | | \- org.eclipse.jetty:jetty-alpn-client:jar:11.0.20:compile
[INFO] | +- org.eclipse.jetty:jetty-server:jar:11.0.20:compile
[INFO] | | +- org.eclipse.jetty:jetty-http:jar:11.0.20:compile
[INFO] | | +- org.eclipse.jetty:jetty-io:jar:11.0.20:compile
[INFO] | | \- org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:jar:5.0.2:compile
[INFO] | +- org.eclipse.jetty:jetty-servlet:jar:11.0.20:compile
[INFO] | | \- org.eclipse.jetty:jetty-security:jar:11.0.20:compile
[INFO] | +- org.eclipse.jetty:jetty-servlets:jar:11.0.20:compile
[INFO] | +- org.eclipse.jetty:jetty-util:jar:11.0.20:compile
[INFO] org.jitsi:jitsi-videobridge:jar:2.3-SNAPSHOT
[INFO] +- org.jitsi:jicoco:jar:1.1-140-g8f45a9f:compile
[INFO] | +- org.eclipse.jetty:jetty-proxy:jar:11.0.20:compile
11.0.21 from jvb directly:
[INFO] org.jitsi:jitsi-videobridge:jar:2.3-SNAPSHOT
[INFO] +- org.eclipse.jetty:jetty-rewrite:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty:jetty-server:jar:11.0.21:compile
[INFO] | \- org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:jar:5.0.2:compile
[INFO] +- org.eclipse.jetty:jetty-servlets:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty:jetty-http:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty:jetty-io:jar:11.0.21:compile
[INFO] | \- org.eclipse.jetty:jetty-util:jar:11.0.21:compile
[INFO] +- org.eclipse.jetty.websocket:websocket-jetty-server:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty:jetty-servlet:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty:jetty-webapp:jar:11.0.21:compile
[INFO] | | \- org.eclipse.jetty:jetty-xml:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty.websocket:websocket-jetty-api:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty.websocket:websocket-jetty-common:jar:11.0.21:compile
[INFO] | | \- org.eclipse.jetty.websocket:websocket-core-common:jar:11.0.21:compile
[INFO] | \- org.eclipse.jetty.websocket:websocket-servlet:jar:11.0.21:compile
[INFO] | \- org.eclipse.jetty.websocket:websocket-core-server:jar:11.0.21:compile
[INFO] +- org.eclipse.jetty.websocket:websocket-jetty-client:jar:11.0.21:compile
[INFO] | +- org.eclipse.jetty:jetty-client:jar:11.0.21:compile
[INFO] | | \- org.eclipse.jetty:jetty-alpn-client:jar:11.0.21:compile
[INFO] | \- org.eclipse.jetty.websocket:websocket-core-client:jar:11.0.21:compile
and 12.0.7 from jvb via jersey-container-jetty-http:
[INFO] org.jitsi:jitsi-videobridge:jar:2.3-SNAPSHOT
[INFO] +- org.glassfish.jersey.containers:jersey-container-jetty-http:jar:3.1.7:compile
[INFO] | +- org.eclipse.jetty:jetty-security:jar:12.0.7:compile
I guessed that the last one is the issue due to the mismatch of major version between jetty-security and the rest of the jetty components, and indeed reverting the jersey version (updated by dependabot in https://github.com/jitsi/jitsi-videobridge/commit/a14d4919dc0d17e183e5ed99d0b540474c2fb7c2) to 3.0.x fixes it:
diff --git a/pom.xml b/pom.xml
index 700e5b63..61ce26a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
<ktlint-maven-plugin.version>3.2.0</ktlint-maven-plugin.version>
<maven-shade-plugin.version>3.6.0</maven-shade-plugin.version>
<spotbugs.version>4.6.0</spotbugs.version>
- <jersey.version>3.1.7</jersey.version>
+ <jersey.version>3.0.14</jersey.version>
<jackson.version>2.17.1</jackson.version>
<bouncycastle.version>1.78.1</bouncycastle.version>
<prometheus.version>0.16.0</prometheus.version>
I don't know why this doesn't affect the official builds, maybe it's related to our use of includeScope=runtime
or something.
thank you for letting me know! I am building in a clean container without mvn cache as well -> I agree it cannot be an environment thing.
For this build, I did whack around the issue by adding the following to the mvn build cmdline. This is not very elegant, but worked at least as a one time solution.
-Djetty.version=11.0.21 -Djetty.security.version=11.0.21
I will look into using includeScope=runtime as well, thanks for pointing your method out!
I don't know why this doesn't affect the official builds, maybe it's related to our use of
includeScope=runtime
or something.
I'm not sure either. I was getting this on my dev machine, but 12.0.7 on a fresh one:
[INFO] +- org.glassfish.jersey.containers:jersey-container-jetty-http:jar:3.1.7:compile
[INFO] | +- jakarta.inject:jakarta.inject-api:jar:2.0.1:compile
[INFO] | +- org.eclipse.jetty:jetty-security:jar:11.0.20:compile
I'm reverting the jersey update and setting all jetty versions to 11.0.21 in #2186 and we can go from there. Thanks for the report and diagnosis!
Description
Updating to 2.0.9584 results in the websocket port (9090) not opening anymore. Configuration according to: https://github.com/jitsi/jitsi-videobridge/blob/master/doc/web-sockets.md edit: also affects colibri stats (http://localhost:8080/colibri/stats)
Current behavior
on startup, jvb shows the following errors port 9090 is not opened. 2.0.9584
Expected Behavior
port 9090 opening same configuration with 2.0.9457:
Possible Solution
not using websockets / http-bind instead downgrade to 2.0.9457
Steps to reproduce
upgrade to 2.0.9584
Environment details
custom install java 17.0.11