[ 
https://issues.apache.org/jira/browse/OPENMEETINGS-2355?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Solodovnik resolved OPENMEETINGS-2355.
--------------------------------------------
    Fix Version/s: 5.0.0-M5
       Resolution: Fixed

Should be fixed,

please reopen with additional steps if still an issue

> Growing list of stream connection in admin->connections
> -------------------------------------------------------
>
>                 Key: OPENMEETINGS-2355
>                 URL: https://issues.apache.org/jira/browse/OPENMEETINGS-2355
>             Project: Openmeetings
>          Issue Type: Bug
>          Components: Room
>    Affects Versions: 5.0.0-M5
>            Reporter: Konstantin Kuzov
>            Assignee: Maxim Solodovnik
>            Priority: Major
>             Fix For: 5.0.0-M5
>
>         Attachments: stale-processors.png
>
>
> After OPENMEETINGS-2315 and OPENMEETINGS-2316 some stream connections states 
> not terminating fully and there are growing list of stale streams in 
> admin->connections (look at stale-processors.png).
>  It happens randomly, most likely due to unreliable network, slow devices or 
> browser quirks.
>  I found the only one reliable way to reproduce this (for me working 100% of 
> the time) using android's chrome which also unearth reconnection problem:
>  - enter the room with one another participant
>  - not closing tab with om, just switch to another tab with random page. 
> Another participant will see frozen image.
>  - wait around 10 seconds and switch back, on your end you will see fully 
> working webcam, but on participant's end the image will still be frozen.
>  - after another 5 seconds there will be a message on both ends about trying 
> to reconnect which will result in fast refresh of already seamingly working 
> camera on android chrome, but on another participant there will be only empty 
> window with avatar. And it will stay that way forever. At that point android 
> user can exit the room and his stream will stuck.
> During reconnect attempt there are this error:
> {noformat}
> ERROR 05-14 16:42:46.464 o.a.o.w.c.OmWebSocketPanel:144 [-nio-443-exec-7] - 
> Error while processing incoming message
> java.lang.NullPointerException: null
>         at 
> org.apache.openmeetings.core.remote.KStream.startBroadcast(KStream.java:88)
>         at 
> org.apache.openmeetings.core.remote.StreamProcessor.startBroadcast(StreamProcessor.java:212)
>         at 
> org.apache.openmeetings.core.remote.StreamProcessor.handleBroadcastStarted(StreamProcessor.java:187)
>         at 
> org.apache.openmeetings.core.remote.StreamProcessor.onMessage(StreamProcessor.java:110)
>         at 
> org.apache.openmeetings.core.remote.KurentoHandler.onMessage(KurentoHandler.java:233)
>         at 
> org.apache.openmeetings.core.remote.Wicket_Proxy_KurentoHandler$$FastClassByCGLIB$$756e116d.invoke(<generated>)
>         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
>         at 
> org.apache.wicket.proxy.LazyInitProxyFactory$AbstractCGLibInterceptor.intercept(LazyInitProxyFactory.java:364)
>         at 
> org.apache.openmeetings.core.remote.Wicket_Proxy_KurentoHandler$$EnhancerByCGLIB$$e2e8f0f.onMessage(<generated>)
>         at 
> org.apache.openmeetings.web.common.OmWebSocketPanel$2.onMessage(OmWebSocketPanel.java:125)
>         at 
> org.apache.wicket.protocol.ws.api.WebSocketBehavior.onEvent(WebSocketBehavior.java:64)
>         at 
> org.apache.wicket.settings.FrameworkSettings.dispatchEvent(FrameworkSettings.java:147)
>         at 
> org.apache.wicket.ComponentEventSender.dispatchToComponent(ComponentEventSender.java:292)
>         at 
> org.apache.wicket.ComponentEventSender$ComponentEventVisitor.component(ComponentEventSender.java:329)
>         at 
> org.apache.wicket.ComponentEventSender$ComponentEventVisitor.component(ComponentEventSender.java:306)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:192)
>         at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:988)
>         at 
> org.apache.wicket.ComponentEventSender.breadth(ComponentEventSender.java:160)
>         at 
> org.apache.wicket.ComponentEventSender.send(ComponentEventSender.java:68)
>         at org.apache.wicket.Component.send(Component.java:4418)
>         at 
> org.apache.wicket.protocol.ws.api.WebSocketMessageBroadcastHandler$1.run(WebSocketMessageBroadcastHandler.java:74)
>         at 
> org.apache.wicket.protocol.ws.WebSocketSettings$SameThreadExecutor.run(WebSocketSettings.java:393)
>         at 
> org.apache.wicket.protocol.ws.api.WebSocketMessageBroadcastHandler.respond(WebSocketMessageBroadcastHandler.java:97)
>         at 
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:917)
>         at 
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63)
>         at 
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)
>         at 
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:254)
>         at 
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:222)
>         at 
> org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor.broadcastMessage(AbstractWebSocketProcessor.java:272)
>         at 
> org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor.onMessage(AbstractWebSocketProcessor.java:151)
>         at 
> org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor$StringMessageHandler.onMessage(JavaxWebSocketProcessor.java:65)
>         at 
> org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor$StringMessageHandler.onMessage(JavaxWebSocketProcessor.java:60)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:395)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:495)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:294)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
>         at 
> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
>         at 
> org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
>         at 
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
>         at 
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
>         at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
>         at 
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at 
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>         at java.base/java.lang.Thread.run(Thread.java:834)
> {noformat}
> And right after one above multiple ones like this:
> {noformat}
> DEBUG 05-14 16:42:46.471 o.a.o.c.r.StreamProcessor:91 [-nio-443-exec-7] - 
> Incoming message from user with ID '5': 
> {"type":"kurento","id":"onIceCandidate","candidate":{"candidate":"candidate:505713252
>  1 udp 2122260223 10.1.1.67 43537 typ host generation 0 ufrag JMPb network-id 
> 2 network-cost 
> 10","sdpMid":"0","sdpMLineIndex":0},"uid":"eec0c0ef-10fe-4070-b40d-95bcec65a09a","luid":"eec0c0ef-10fe-4070-b40d-95bcec65a09a"}
> ERROR 05-14 16:42:46.471 o.a.o.w.c.OmWebSocketPanel:144 [-nio-443-exec-7] - 
> Error while processing incoming message
> java.lang.NullPointerException: null
>         at 
> org.apache.openmeetings.core.remote.KStream.addCandidate(KStream.java:393)
>         at 
> org.apache.openmeetings.core.remote.StreamProcessor.onMessage(StreamProcessor.java:122)
>         at 
> org.apache.openmeetings.core.remote.KurentoHandler.onMessage(KurentoHandler.java:233)
>         at 
> org.apache.openmeetings.core.remote.Wicket_Proxy_KurentoHandler$$FastClassByCGLIB$$756e116d.invoke(<generated>)
>         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
>         at 
> org.apache.wicket.proxy.LazyInitProxyFactory$AbstractCGLibInterceptor.intercept(LazyInitProxyFactory.java:364)
>         at 
> org.apache.openmeetings.core.remote.Wicket_Proxy_KurentoHandler$$EnhancerByCGLIB$$e2e8f0f.onMessage(<generated>)
>         at 
> org.apache.openmeetings.web.common.OmWebSocketPanel$2.onMessage(OmWebSocketPanel.java:125)
>         at 
> org.apache.wicket.protocol.ws.api.WebSocketBehavior.onEvent(WebSocketBehavior.java:64)
>         at 
> org.apache.wicket.settings.FrameworkSettings.dispatchEvent(FrameworkSettings.java:147)
>         at 
> org.apache.wicket.ComponentEventSender.dispatchToComponent(ComponentEventSender.java:292)
>         at 
> org.apache.wicket.ComponentEventSender$ComponentEventVisitor.component(ComponentEventSender.java:329)
>         at 
> org.apache.wicket.ComponentEventSender$ComponentEventVisitor.component(ComponentEventSender.java:306)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
>         at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:192)
>         at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:988)
>         at 
> org.apache.wicket.ComponentEventSender.breadth(ComponentEventSender.java:160)
>         at 
> org.apache.wicket.ComponentEventSender.send(ComponentEventSender.java:68)
>         at org.apache.wicket.Component.send(Component.java:4418)
>         at 
> org.apache.wicket.protocol.ws.api.WebSocketMessageBroadcastHandler$1.run(WebSocketMessageBroadcastHandler.java:74)
>         at 
> org.apache.wicket.protocol.ws.WebSocketSettings$SameThreadExecutor.run(WebSocketSettings.java:393)
>         at 
> org.apache.wicket.protocol.ws.api.WebSocketMessageBroadcastHandler.respond(WebSocketMessageBroadcastHandler.java:97)
>         at 
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:917)
>         at 
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63)
>         at 
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)
>         at 
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:254)
>         at 
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:222)
>         at 
> org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor.broadcastMessage(AbstractWebSocketProcessor.java:272)
>         at 
> org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor.onMessage(AbstractWebSocketProcessor.java:151)
>         at 
> org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor$StringMessageHandler.onMessage(JavaxWebSocketProcessor.java:65)
>         at 
> org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor$StringMessageHandler.onMessage(JavaxWebSocketProcessor.java:60)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:395)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:495)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:294)
>         at 
> org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
>         at 
> org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
>         at 
> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
>         at 
> org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
>         at 
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
>         at 
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
>         at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
>         at 
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at 
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>         at java.base/java.lang.Thread.run(Thread.java:834)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to