jitsi / jitsi-videobridge

Jitsi Videobridge is a WebRTC compatible video router or SFU that lets build highly scalable video conferencing infrastructure (i.e., up to hundreds of conferences per server).
https://jitsi.org/jitsi-videobridge
Apache License 2.0
2.87k stars 982 forks source link

JVB / Websocket Configuration not working anymore since 2.0.9584 / Port 9090 not opening #2184

Closed amsnek closed 1 week ago

amsnek commented 1 week ago

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

2024-07-05 15:12:59.408 INFO: [1] MainKt.main#121: Starting public http server
2024-07-05 15:12:59.455 WARNING: [20] MucClient.createXMPPTCPConnectionConfiguration#117: Disabling certificate verification!
2024-07-05 15:12:59.458 WARNING: [1] ColibriWebSocketService.<init>#51: Websockets enabled, but no domains specified: URLs=[wss://domain.tld/colibri-ws/videobridge1], Relay URLs=[]
2024-07-05 15:12:59.534 WARNING: [21] [hostname=domain.tld id=xmpp-server-1] MucClient.setPresenceExtensions#467: Cannot set presence extension: not connected.
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
#011at java.base/java.lang.ClassLoader.defineClass1(Native Method)
#011at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
#011at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
#011at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
#011at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
#011at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
#011at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
#011at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
#011at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
#011at org.jitsi.rest.JettyHelpers.createJettyServer(JettyHelpers.kt:50)
#011at org.jitsi.rest.JettyHelpers.createServer(JettyHelpers.kt:111)
#011at org.jitsi.videobridge.MainKt.main(Main.kt:125)
 #011at org.jitsi.videobridge.MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.Handler$Wrapper
#011at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
#011at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
#011at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
#011... 13 more

Expected Behavior

port 9090 opening same configuration with 2.0.9457:

2024-07-05 15:17:50.868 INFO: [1] MainKt.main#120: Starting public http server
2024-07-05 15:17:50.916 INFO: [18] [hostname=domain.tld id=xmpp-server-1] MucClient.initializeConnectAndJoin#350: Dispatching a thread to connect and login.
2024-07-05 15:17:50.918 WARNING: [1] ColibriWebSocketService.<init>#51: Websockets enabled, but no domains specified: URLs=[wss://domain.tld/colibri-ws/videobridge1], Relay URLs=[]
2024-07-05 15:17:51.070 INFO: [1] ColibriWebSocketService.registerServlet#84: Registering servlet with baseUrls = [wss://domain.tld/colibri-ws/videobridge1], relayBaseUrls = []
2024-07-05 15:17:51.102 INFO: [1] org.eclipse.jetty.server.Server.doStart: jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.11+9-LTS
2024-07-05 15:17:51.187 INFO: [1] org.eclipse.jetty.server.handler.ContextHandler.doStart: Started o.e.j.s.ServletContextHandler@7186333e{/,null,AVAILABLE}
2024-07-05 15:17:51.200 INFO: [1] org.eclipse.jetty.server.AbstractConnector.doStart: Started ServerConnector@7c455e96{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
2024-07-05 15:17:51.201 INFO: [1] org.eclipse.jetty.server.Server.doStart: Started Server@62e7dffa{STARTING}[11.0.20,sto=0] @1886ms
2024-07-05 15:17:51.201 INFO: [1] MainKt.main#138: Starting private http server
2024-07-05 15:17:51.228 INFO: [1] org.eclipse.jetty.server.Server.doStart: jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.11+9-LTS
2024-07-05 15:17:51.336 INFO: [18] [hostname=domain.tld id=xmpp-server-1] MucClient$2.connected#321: Connected.

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

damencho commented 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?

amsnek commented 1 week ago

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

damencho commented 1 week ago

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?

amsnek commented 1 week ago

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
damencho commented 1 week ago

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.

damencho commented 1 week ago

Please, when you have questions or problems use the community forum before opening new issues, thank you.

amsnek commented 1 week ago

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!

jbg commented 1 week ago

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.

amsnek commented 1 week ago

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!

bgrozev commented 1 week ago

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!