Nous sommes en train de travailler sur un usecase pour monter en compétences sur la plateforme SIMPLICITE et celle-ci ne fonctionne plus. Nous avons le message d’erreur suivant (cf. Copie d’écran) :
On a vu un truc dans le code Simplicité qui pourrait avoir ce type de comportement au logout (ou au timeout de session) au niveau des remontées de logs via websockets. On avait jamais vu ce genre de pb. A titre conservatoire on a renforcé la robustresse de cette partie du code ce sera poussé ce soir
En attendant regardez si vous n’avez pas aussi ce genre de boucles infinies dans votre code
J’ai vu passer le stackoverflow (je surveillais les logs), je vais investiguer.
Visiblement la mise à jour ne s’est pas faite, il semble que la mécanique SIM soit “cassée” (sans doute à cause du file system full). Je vais voir pour réparer ça.
Tout à fait, l’instance est de nouveau down, j’ai fait qu’une seule manip : me connecter en tant que User puis changer de scope vers Designer, peut être ça vous dira quelque chose par rapport au Logout que vous avez cité
je ne sais pas si ç’est ça le probléme mais on a toujours ça dans les logs au moment de changer d’utilisateur, pour l’instant l’instance fonctionne toujours
2021-01-06 17:47:09,171 WARN [root] SIMPLICITE: Unable to send data to basic remote c
java.lang.IllegalStateException: Message will not be sent because the WebSocket session has been closed
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:439)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:311)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:251)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:192)
at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37)
at com.simplicite.util.websockets.AbstractWebsocket$GrantSession.send(AbstractWebsocket.java:146)
at com.simplicite.util.websockets.WebsocketEvent.pushLog(WebsocketEvent.java:175)
at com.simplicite.util.AppLog.debug(AppLog.java:651)
at com.simplicite.util.AppLog.log(AppLog.java:424)
at com.simplicite.util.AppLog.log(AppLog.java:377)
at com.simplicite.util.AppLog.log(AppLog.java:547)
at com.simplicite.util.websockets.AbstractWebsocket.log(AbstractWebsocket.java:387)
at com.simplicite.util.websockets.AbstractWebsocket.onClose(AbstractWebsocket.java:203)
at com.simplicite.util.websockets.AbstractWebsocket.onCloseHandler(AbstractWebsocket.java:357)
at com.simplicite.webapp.websockets.ui.Events.onCloseHandler(Events.java:62)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onClose(PojoEndpointBase.java:103)
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:556)
at org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:534)
at org.apache.tomcat.websocket.WsFrameBase.processDataControl(WsFrameBase.java:367)
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:296)
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:85)
at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:183)
at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:162)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:156)
at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:60)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:832)
Oui visiblement votre infra (firewalls, proxies, …) et/ou votre navigateur n’aime pas les websockets.
Du coup ça tombait dans un cas aux limites pas suffisamment robuste où le warning partait en boucle. La correction qu’on a apporté rend ce cas plus robuste, ce warning est donc “normal” dans votre cas particulier que je vois pour la 1ère fois et il ne part plus en boucle.
Il faudra quand même que vous investiguiez de votre coté pour comprendre pourquoi les websockets ont des pbs chez vous. Pour rappel nous remontons les logs serveur dans la console du navigateur en temps réel via des websockets pour designer et c’est quand même infiniment plus pratique que le vieux log viewer legacy ou que d’aller faire des tail -f sur le serveur: