Erreur lors de la connexion

Bonjour,

il y a régulièrement ce message d’erreur dans les logs du serveur de prod lors de la connexion de certains utilisateurs.
je n’arrive pas à trouver d’ou cela vient :

2017-02-07 09:56:11,300 ERROR [com.simplicite.util.ObjectDirect]
SIMPLICITE|/crbsimplicite|ECORED0001|system|com.simplicite.util.ObjectDirect|error||Erreur
AppLogger

org.postgresql.util.PSQLException: ERREUR: valeur trop longue pour le type character varying(20)

	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)

	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)

	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)

	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)

	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)

	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:334)

	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)

	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)

	at com.simplicite.util.engine.DBAccess.update(DBAccess.java:1010)

	at com.simplicite.util.engine.ObjectManager.create(ObjectManager.java:1425)

	at com.simplicite.util.ObjectDirect.create(ObjectDirect.java:343)

	at com.simplicite.util.ObjectDB.create(ObjectDB.java:887)

	at com.simplicite.util.AppLog.saveLog(AppLog.java:619)

	at com.simplicite.util.AppLog.logSessionOut(AppLog.java:459)

	at com.simplicite.webapp.SimpliciteSessionListener.removeSession(SimpliciteSessionListener.java:100)

	at com.simplicite.webapp.SimpliciteSessionListener.sessionDestroyed(SimpliciteSessionListener.java:69)

	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:800)

	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:732)

	at org.apache.catalina.session.StandardSession.invalidate(StandardSession.java:1268)

	at org.apache.catalina.session.StandardSessionFacade.invalidate(StandardSessionFacade.java:188)

	at org.apache.jsp.logout_jsp._jspService(logout_jsp.java:104)

	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)

	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)

	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)

	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)

	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)

	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)

	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

	at java.lang.Thread.run(Thread.java:745)

D’après cette trace une colonne physique est trop petite varchar(20) dans la table des logs “m_log”. Le logout n’est donc pas tracé en base mais cela est sans impact sur le fonctionnement de la plateforme.

La seule colonne de cette taille est “log_user” qui doit être restée à 20 alors que usr_login doit être à 100 depuis que vous utilisez des emails ? Il faudrait l’agrandir en faisant un simple ALTER.

Il se peut donc que la mise à jour de usr_login n’ait pas prévue d’agrandir cette colonne automatiquement car rien ne dit au moteur que c’est un type login, ce sera corrigé dans les prochaine versions. En attendant il faut juste agrandir la colonne m_log.log_user en fonction de la taille de m_user.usr_login.