jitsi / jigasi

Jigasi: a server-side application acting as a gateway to Jitsi Meet conferences. Currently allows regular SIP clients to join meetings and provides transcription capabilities.
Apache License 2.0
533 stars 298 forks source link

Possible thread leak when transcription is enabled #510

Open arnaldopereira opened 1 year ago

arnaldopereira commented 1 year ago

Description


With transcription and Vosk enabled, I'm noticing an odd behavior: the number of jigasi threads only increase after transcription sessions.

Current behavior


The feature works as expected: TR shows, subtitles works. Although, the number of threads increases with new sessions and never decreases.

Expected Behavior


Number of threads should decrease after a transcription session ends.

Possible Solution


Steps to reproduce


Enter a conference meeting as moderator, click 'start subtitles' and end the meeting.

Environment details


OS: Debian buster-slim docker image Jigasi: jigasi_1.1-313-gb21f752-1

Transcription config:

org.jitsi.jigasi.ENABLE_TRANSCRIPTION=true
org.jitsi.jigasi.transcription.ENABLE_TRANSLATION=true

org.jitsi.jigasi.transcription.DIRECTORY=/tmp/transcripts
org.jitsi.jigasi.transcription.BASE_URL=https://foo.bar/transcripts
org.jitsi.jigasi.transcription.jetty.port=-1
org.jitsi.jigasi.transcription.ADVERTISE_URL=false

org.jitsi.jigasi.transcription.SAVE_JSON=false
org.jitsi.jigasi.transcription.SEND_JSON=true
org.jitsi.jigasi.transcription.SEND_JSON_REMOTE_URLS=""
org.jitsi.jigasi.transcription.SAVE_TXT=false
org.jitsi.jigasi.transcription.SEND_TXT=false

org.jitsi.jigasi.transcription.customService=org.jitsi.jigasi.transcription.VoskTranscriptionService
org.jitsi.jigasi.transcription.vosk.websocket_url=ws://localhost:2700

org.jitsi.jigasi.transcription.RECORD_AUDIO=false
org.jitsi.jigasi.transcription.RECORD_AUDIO_FORMAT=wav

Output of /about/stats, without conference_sizes:

{
  "total_calls_with_connection_failed": 0,
  "threads": 120,
  "total_count_dropped_media": 0,
  "stress_level": 0,
  "graceful_shutdown": false,
  "total_conference_seconds": 185,
  "total_calls_with_sip_call_waiting": 0,
  "total_calls_no_heartbeat_response": 0,
  "total_conferences_completed": 5,
  "total_calls_with_sip_call_reconnected": 0,
  "current_timestamp": "2023-11-08 14:05:16.762",
  "total_participants": 20,
  "total_calls_jvb_no_media": 0,
  "conferences": 0,
  "total_calls_with_jvb_migrate": 0,
  "participants": 0,
  "total_calls_with_dropped_media": 0
}

Following is the log of the flow: click on 'start subtitles', talk for some seconds, end the conference. (the java.net.MalformedURLException exception can be avoided by commenting a line in the config file - I didn't want to filter out anything right now).

Nov 08, 2023 9:30:41 AM org.jitsi.utils.logging.LoggerImpl log
WARNING: Requests are not secured by JID filter!
Nov 08, 2023 9:30:41 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Got dial request null -> jitsi_meet_transcribe room: 096806971236@muc.meet.jitsi
Nov 08, 2023 9:30:41 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Starting JVB conference room: 096806971236@muc.meet.jitsi
Nov 08, 2023 9:30:41 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Using ProtocolProviderServiceJabberImpl(Jabber:jigasi@recorder.meet.jitsi/32ae1cfe)
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread run
SEVERE: Error writing packet to file
java.lang.SecurityException: Insufficient rights to access this file in current user's home directory: /config/log/jitsi0.pcap
        at org.jitsi.impl.fileaccess.FileAccessServiceImpl.getPrivatePersistentFile(FileAccessServiceImpl.java:171)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.getFileNames(PacketLoggingServiceImpl.java:194)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.savePacket(PacketLoggingServiceImpl.java:579)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread.run(PacketLoggingServiceImpl.java:833)
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread run
SEVERE: Error writing packet to file
java.lang.SecurityException: Insufficient rights to access this file in current user's home directory: /config/log/jitsi0.pcap
        at org.jitsi.impl.fileaccess.FileAccessServiceImpl.getPrivatePersistentFile(FileAccessServiceImpl.java:171)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.getFileNames(PacketLoggingServiceImpl.java:194)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.savePacket(PacketLoggingServiceImpl.java:579)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread.run(PacketLoggingServiceImpl.java:833)
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread run
SEVERE: Error writing packet to file
java.lang.SecurityException: Insufficient rights to access this file in current user's home directory: /config/log/jitsi0.pcap
        at org.jitsi.impl.fileaccess.FileAccessServiceImpl.getPrivatePersistentFile(FileAccessServiceImpl.java:171)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.getFileNames(PacketLoggingServiceImpl.java:194)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.savePacket(PacketLoggingServiceImpl.java:579)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread.run(PacketLoggingServiceImpl.java:833)
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread run
SEVERE: Error writing packet to file
java.lang.SecurityException: Insufficient rights to access this file in current user's home directory: /config/log/jitsi0.pcap
        at org.jitsi.impl.fileaccess.FileAccessServiceImpl.getPrivatePersistentFile(FileAccessServiceImpl.java:171)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.getFileNames(PacketLoggingServiceImpl.java:194)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl.savePacket(PacketLoggingServiceImpl.java:579)
        at net.java.sip.communicator.impl.packetlogging.PacketLoggingServiceImpl$SaverThread.run(PacketLoggingServiceImpl.java:833)
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl registrationStateChanged
INFO: Jingle : ON
Nov 08, 2023 9:30:41 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Registering XMPP.
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl$JabberConnectionListener authenticated
INFO: Authenticated: false
Nov 08, 2023 9:30:41 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Joining JVB conference room: 096806971236@muc.meet.jitsi
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl$MemberListener joined
INFO: 096806971236@muc.meet.jitsi/focus has joined the 096806971236@muc.meet.jitsi chat room.
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl$MemberListener joined
INFO: 096806971236@muc.meet.jitsi/88fdf67a has joined the 096806971236@muc.meet.jitsi chat room.
Nov 08, 2023 9:30:41 AM net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl$MemberListener joined
INFO: 096806971236@muc.meet.jitsi/32ae1cfe has joined the 096806971236@muc.meet.jitsi chat room.
Nov 08, 2023 9:30:42 AM net.java.sip.communicator.impl.protocol.jabber.IceUdpTransportManager createIceAgent
INFO: End gathering harvester within 72 ms
Nov 08, 2023 9:30:42 AM net.java.sip.communicator.impl.protocol.jabber.CallPeerMediaHandlerJabberImpl harvestCandidates
INFO: End candidate harvest within 53 ms
Nov 08, 2023 9:30:42 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Got invite from focus
Nov 08, 2023 9:30:42 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Error posting transcription
java.net.MalformedURLException: no protocol: ""
        at java.base/java.net.URL.<init>(URL.java:645)
        at java.base/java.net.URL.<init>(URL.java:541)
        at java.base/java.net.URL.<init>(URL.java:488)
        at org.jitsi.jigasi.transcription.Util.postJSON(Util.java:48)
        at org.jitsi.jigasi.transcription.RemotePublisherTranscriptionHandler.notify(RemotePublisherTranscriptionHandler.java:107)
        at org.jitsi.jigasi.transcription.Transcriber.fireTranscribeEvent(Transcriber.java:937)
        at org.jitsi.jigasi.transcription.Transcriber.start(Transcriber.java:517)
        at org.jitsi.jigasi.TranscriptionGatewaySession.onConferenceCallStarted(TranscriptionGatewaySession.java:203)
        at org.jitsi.jigasi.TranscriptionGatewaySession.onConferenceCallInvited(TranscriptionGatewaySession.java:163)
        at org.jitsi.jigasi.JvbConference$JvbCallListener.incomingCallReceivedInternal(JvbConference.java:1494)
        at org.jitsi.jigasi.JvbConference$JvbCallListener.lambda$incomingCallReceived$0(JvbConference.java:1403)
        at org.jitsi.jigasi.JvbConference.lambda$static$0(JvbConference.java:169)
        at org.jitsi.utils.queue.PacketQueue$HandlerAdapter.handleItem(PacketQueue.java:416)
        at org.jitsi.utils.queue.AsyncQueueHandler$1.run(AsyncQueueHandler.java:137)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Nov 08, 2023 9:30:42 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Error posting transcription
java.net.MalformedURLException: no protocol: ""
        at java.base/java.net.URL.<init>(URL.java:645)
        at java.base/java.net.URL.<init>(URL.java:541)
        at java.base/java.net.URL.<init>(URL.java:488)
        at org.jitsi.jigasi.transcription.Util.postJSON(Util.java:48)
        at org.jitsi.jigasi.transcription.RemotePublisherTranscriptionHandler.notify(RemotePublisherTranscriptionHandler.java:107)
        at org.jitsi.jigasi.transcription.Transcriber.fireTranscribeEvent(Transcriber.java:937)
        at org.jitsi.jigasi.transcription.Transcriber.participantJoined(Transcriber.java:304)
        at org.jitsi.jigasi.TranscriptionGatewaySession.addInitialMembers(TranscriptionGatewaySession.java:508)
        at org.jitsi.jigasi.TranscriptionGatewaySession.onConferenceCallStarted(TranscriptionGatewaySession.java:207)
        at org.jitsi.jigasi.TranscriptionGatewaySession.onConferenceCallInvited(TranscriptionGatewaySession.java:163)
        at org.jitsi.jigasi.JvbConference$JvbCallListener.incomingCallReceivedInternal(JvbConference.java:1494)
        at org.jitsi.jigasi.JvbConference$JvbCallListener.lambda$incomingCallReceived$0(JvbConference.java:1403)
        at org.jitsi.jigasi.JvbConference.lambda$static$0(JvbConference.java:169)
        at org.jitsi.utils.queue.PacketQueue$HandlerAdapter.handleItem(PacketQueue.java:416)
        at org.jitsi.utils.queue.AsyncQueueHandler$1.run(AsyncQueueHandler.java:137)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Nov 08, 2023 9:30:42 AM org.jitsi.utils.logging.LoggerImpl log
INFO: Transcriber: Media Device Audio
Nov 08, 2023 9:30:42 AM net.java.sip.communicator.service.protocol.media.MediaHandler registerDynamicPTsWithStream
INFO: Dynamic PT map: 126=rtpmap:-1 telephone-event/8000; 111=rtpmap:-1 opus/48000/2 fmtp:useinbandfec=1;minptime=10; 103=rtpmap:-1 unknown/90000;
Nov 08, 2023 9:30:42 AM net.java.sip.communicator.service.protocol.media.MediaHandler registerDynamicPTsWithStream
INFO: PT overrides [103->104 ]
Nov 08, 2023 9:30:42 AM net.java.sip.communicator.service.protocol.media.CallPeerMediaHandler start
INFO: Starting
Nov 08, 2023 9:30:42 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] JVB conference call IN_PROGRESS.
Nov 08, 2023 9:31:01 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Error posting transcription
java.net.MalformedURLException: no protocol: ""
        at java.base/java.net.URL.<init>(URL.java:645)
        at java.base/java.net.URL.<init>(URL.java:541)
        at java.base/java.net.URL.<init>(URL.java:488)
        at org.jitsi.jigasi.transcription.Util.postJSON(Util.java:48)
        at org.jitsi.jigasi.transcription.RemotePublisherTranscriptionHandler.publish(RemotePublisherTranscriptionHandler.java:79)
        at org.jitsi.jigasi.transcription.TranscriptHandler.publishTranscriptionResult(TranscriptHandler.java:146)
        at org.jitsi.jigasi.TranscriptionGatewaySession.sendTranscriptionResultToRoom(TranscriptionGatewaySession.java:641)
        at org.jitsi.jigasi.TranscriptionGatewaySession.notify(TranscriptionGatewaySession.java:373)
        at org.jitsi.jigasi.transcription.Transcriber.notify(Transcriber.java:885)
        at org.jitsi.jigasi.transcription.Participant.notify(Participant.java:581)
        at org.jitsi.jigasi.transcription.VoskTranscriptionService$VoskWebsocketStreamingSession.onMessage(VoskTranscriptionService.java:283)
        at org.eclipse.jetty.websocket.core.internal.messages.StringMessageSink.accept(StringMessageSink.java:53)
        at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.acceptMessage(JettyWebSocketFrameHandler.java:334)
        at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.onTextFrame(JettyWebSocketFrameHandler.java:407)
        at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.onFrame(JettyWebSocketFrameHandler.java:240)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession$IncomingAdaptor.lambda$onFrame$1(WebSocketCoreSession.java:671)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.handle(WebSocketCoreSession.java:118)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession$IncomingAdaptor.onFrame(WebSocketCoreSession.java:671)
        at org.eclipse.jetty.websocket.core.internal.ExtensionStack.onFrame(ExtensionStack.java:120)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.onFrame(WebSocketCoreSession.java:481)
        at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.onFrame(WebSocketConnection.java:262)
        at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.fillAndParse(WebSocketConnection.java:455)
        at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.onFillable(WebSocketConnection.java:340)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
        at java.base/java.lang.Thread.run(Thread.java:829)
Nov 08, 2023 9:31:04 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Error posting transcription
java.net.MalformedURLException: no protocol: ""
        at java.base/java.net.URL.<init>(URL.java:645)
        at java.base/java.net.URL.<init>(URL.java:541)
        at java.base/java.net.URL.<init>(URL.java:488)
        at org.jitsi.jigasi.transcription.Util.postJSON(Util.java:48)
        at org.jitsi.jigasi.transcription.RemotePublisherTranscriptionHandler.publish(RemotePublisherTranscriptionHandler.java:79)
        at org.jitsi.jigasi.transcription.TranscriptHandler.publishTranscriptionResult(TranscriptHandler.java:146)
        at org.jitsi.jigasi.TranscriptionGatewaySession.sendTranscriptionResultToRoom(TranscriptionGatewaySession.java:641)
        at org.jitsi.jigasi.TranscriptionGatewaySession.notify(TranscriptionGatewaySession.java:373)
        at org.jitsi.jigasi.transcription.Transcriber.notify(Transcriber.java:885)
        at org.jitsi.jigasi.transcription.Participant.notify(Participant.java:581)
        at org.jitsi.jigasi.transcription.VoskTranscriptionService$VoskWebsocketStreamingSession.onMessage(VoskTranscriptionService.java:283)
        at org.eclipse.jetty.websocket.core.internal.messages.StringMessageSink.accept(StringMessageSink.java:53)
        at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.acceptMessage(JettyWebSocketFrameHandler.java:334)
        at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.onTextFrame(JettyWebSocketFrameHandler.java:407)
        at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.onFrame(JettyWebSocketFrameHandler.java:240)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession$IncomingAdaptor.lambda$onFrame$1(WebSocketCoreSession.java:671)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.handle(WebSocketCoreSession.java:118)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession$IncomingAdaptor.onFrame(WebSocketCoreSession.java:671)
        at org.eclipse.jetty.websocket.core.internal.ExtensionStack.onFrame(ExtensionStack.java:120)
        at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.onFrame(WebSocketCoreSession.java:481)
        at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.onFrame(WebSocketConnection.java:262)
        at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.fillAndParse(WebSocketConnection.java:455)
        at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.onFillable(WebSocketConnection.java:340)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
        at java.base/java.lang.Thread.run(Thread.java:829)
Nov 08, 2023 9:31:08 AM net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl$MemberListener left
INFO: 096806971236@muc.meet.jitsi/88fdf67a has left the 096806971236@muc.meet.jitsi chat room.
Nov 08, 2023 9:31:08 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Error posting transcription
java.net.MalformedURLException: no protocol: ""
        at java.base/java.net.URL.<init>(URL.java:645)
        at java.base/java.net.URL.<init>(URL.java:541)
        at java.base/java.net.URL.<init>(URL.java:488)
        at org.jitsi.jigasi.transcription.Util.postJSON(Util.java:48)
        at org.jitsi.jigasi.transcription.RemotePublisherTranscriptionHandler.notify(RemotePublisherTranscriptionHandler.java:107)
        at org.jitsi.jigasi.transcription.Transcriber.fireTranscribeEvent(Transcriber.java:937)
        at org.jitsi.jigasi.transcription.Transcriber.participantLeft(Transcriber.java:480)
        at org.jitsi.jigasi.TranscriptionGatewaySession.notifyChatRoomMemberLeft(TranscriptionGatewaySession.java:297)
        at org.jitsi.jigasi.JvbConference.memberPresenceChangedInternal(JvbConference.java:1175)
        at org.jitsi.jigasi.JvbConference.lambda$memberPresenceChanged$3(JvbConference.java:1130)
        at org.jitsi.jigasi.JvbConference.lambda$static$0(JvbConference.java:169)
        at org.jitsi.utils.queue.PacketQueue$HandlerAdapter.handleItem(PacketQueue.java:416)
        at org.jitsi.utils.queue.AsyncQueueHandler$1.run(AsyncQueueHandler.java:137)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Nov 08, 2023 9:31:08 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Member left : OWNER 88fdf67a-9265-4206-82af-cd876e286cc0@meet.jitsi/hSVw8HHr
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Error posting transcription
java.net.MalformedURLException: no protocol: ""
        at java.base/java.net.URL.<init>(URL.java:645)
        at java.base/java.net.URL.<init>(URL.java:541)
        at java.base/java.net.URL.<init>(URL.java:488)
        at org.jitsi.jigasi.transcription.Util.postJSON(Util.java:48)
        at org.jitsi.jigasi.transcription.RemotePublisherTranscriptionHandler.notify(RemotePublisherTranscriptionHandler.java:107)
        at org.jitsi.jigasi.transcription.Transcriber.fireTranscribeEvent(Transcriber.java:937)
        at org.jitsi.jigasi.transcription.Transcriber.willStop(Transcriber.java:596)
        at org.jitsi.jigasi.TranscriptionGatewaySession.onJvbConferenceWillStop(TranscriptionGatewaySession.java:271)
        at org.jitsi.jigasi.JvbConference.stop(JvbConference.java:569)
        at org.jitsi.jigasi.TranscriptionGatewaySession.lambda$notifyChatRoomMemberUpdated$0(TranscriptionGatewaySession.java:326)
        at java.base/java.lang.Thread.run(Thread.java:829)
Nov 08, 2023 9:31:11 AM net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl leave
WARNING: Force sending presence unavailable to 096806971236@muc.meet.jitsi for 32ae1cfe
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Error posting transcription
java.net.MalformedURLException: no protocol: ""
        at java.base/java.net.URL.<init>(URL.java:645)
        at java.base/java.net.URL.<init>(URL.java:541)
        at java.base/java.net.URL.<init>(URL.java:488)
        at org.jitsi.jigasi.transcription.Util.postJSON(Util.java:48)
        at org.jitsi.jigasi.transcription.RemotePublisherTranscriptionHandler.notify(RemotePublisherTranscriptionHandler.java:107)
        at org.jitsi.jigasi.transcription.Transcriber.fireTranscribeEvent(Transcriber.java:937)
        at org.jitsi.jigasi.transcription.Transcriber.stop(Transcriber.java:546)
        at org.jitsi.jigasi.TranscriptionGatewaySession.onJvbConferenceStopped(TranscriptionGatewaySession.java:252)
        at org.jitsi.jigasi.JvbConference.stop(JvbConference.java:598)
        at org.jitsi.jigasi.TranscriptionGatewaySession.lambda$notifyChatRoomMemberUpdated$0(TranscriptionGatewaySession.java:326)
        at java.base/java.lang.Thread.run(Thread.java:829)
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Member left : OWNER focus@auth.meet.jitsi/focus
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
WARNING: 096806971236@muc.meet.jitsi: participant with identifier 32ae1cfe left while it did not exist
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Removed session for call. Sessions:0
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Member left : MEMBER jigasi@recorder.meet.jitsi
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Failed to send a packet to target /172.20.0.1:10000:java.io.IOException: No active socket.
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: Failed to send a packet to target /172.20.0.1:10000:java.io.IOException: No active socket.
Nov 08, 2023 9:31:11 AM net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl registrationStateChanged
INFO: Jingle : OFF
Nov 08, 2023 9:31:11 AM org.jitsi.utils.logging.LoggerImpl log
INFO: [ctx=1699453841806513592582] Removing account Jabber:jigasi@recorder.meet.jitsi/32ae1cfe
Nov 08, 2023 9:31:11 AM net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl registrationStateChanged
INFO: Jingle : OFF

I took a thread dump a little before the above output. I don't know if this is helpful, but here it goes:

313-gb21f752-1|⇒ awk '/State: / { print }' < jigasi-docker-logs-313-gb21f752-1.txt|sort|uniq -c
   1    java.lang.Thread.State: BLOCKED (on object monitor)
  23    java.lang.Thread.State: RUNNABLE
   8    java.lang.Thread.State: TIMED_WAITING (on object monitor)
  45    java.lang.Thread.State: TIMED_WAITING (parking)
  12    java.lang.Thread.State: WAITING (on object monitor)
  13    java.lang.Thread.State: WAITING (parking)

And those threads:

313-gb21f752-1|⇒ awk '/parking to wait for / { print }' < jigasi-docker-logs-313-gb21f752-1.txt|sort|uniq -c
   1    - parking to wait for  <0x0000000740a2de70> (a java.util.concurrent.ForkJoinPool)
   1    - parking to wait for  <0x0000000740df1518> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   2    - parking to wait for  <0x0000000740df1828> (a java.util.concurrent.SynchronousQueue$TransferStack)
   1    - parking to wait for  <0x0000000740e8a5a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   1    - parking to wait for  <0x000000074128a990> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   1    - parking to wait for  <0x00000007412df450> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   3    - parking to wait for  <0x00000007412f42a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   4    - parking to wait for  <0x0000000741300fb8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   1    - parking to wait for  <0x0000000741450d68> (a java.util.concurrent.SynchronousQueue$TransferStack)
   1    - parking to wait for  <0x00000007415ceaa8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   7    - parking to wait for  <0x0000000741687480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   1    - parking to wait for  <0x00000007416a5870> (a java.util.concurrent.SynchronousQueue$TransferStack)
   1    - parking to wait for  <0x00000007416a6db8> (a java.util.concurrent.SynchronousQueue$TransferStack)
   1    - parking to wait for  <0x00000007418fc1c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   5    - parking to wait for  <0x000000074204a310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   2    - parking to wait for  <0x000000074204cb28> (a java.util.concurrent.SynchronousQueue$TransferStack)
   1    - parking to wait for  <0x000000074204cca8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   7    - parking to wait for  <0x0000000742052a88> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   1    - parking to wait for  <0x000000074205f338> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   7    - parking to wait for  <0x00000007433069a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   1    - parking to wait for  <0x00000007433077d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   2    - parking to wait for  <0x00000007433486d8> (a java.util.concurrent.SynchronousQueue$TransferStack)
   5    - parking to wait for  <0x00000007433488c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   1    - parking to wait for  <0x0000000743349208> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
arnaldopereira commented 1 year ago

By the way, I just confirmed the issue doesn't appear when using google service for transcription.