Problèmes divers avec les objects "service-simplicite" instanciés sur une 5.2 avec une source "objet métier" hébergée sur une 5.1

Problem description

Problèmes divers avec les objects “service-simplicite” instanciés sur une 5.2 avec une source “objet métier” hébergée sur une 5.1

Steps to reproduce

I have reproduced the problem on an up-to-date Simplicité instance
and those are the steps to do it:

1.Exposer un objet métier (standard) sur une instance 5.1
2.Configurer un objet “service-simpiocite” sur une instance 5.2
3. L’accès en lecture est OK
4. Afficher le popup de recherche
→ problème n°1: les champs de recherche sont affichés en double (seul l’un des deux champs active le filtre apparemment)
→ voir copies d’écran dans “Other relevant information”
5. Editer un formulaire puis sauvegarder
→ problème n°2.1: la modification n’est pas sauvegardée (aucune exception/erreur n’est affichée à l’écran)
→ problème n°2.2: les logs systèmes indiquent un problème de parsing JSON / duplicate key row_id

Technical information

Instance /health

5.2 (config “service-simplicite”)

[Platform]
Status=OK
Version=5.2.4
BuiltOn=2022-05-20 16:13
Git=5.2/3ce8b1329500cc6509184aeb3bd647e02c569e65
Encoding=UTF-8
EndpointIP=149.202.171.75
EndpointURL=http://renault.simplicite.io:10028
TimeZone=Europe/Paris
SystemDate=2022-05-23 09:57:44

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=https://bcsi.renault.simplicite.io
ActiveSessions=1
TotalUsers=12
EnabledUsers=9
LastLoginDate=2022-05-23 09:21:09

[Server]
ServerInfo=Apache Tomcat/9.0.63
ServerType=WEB
ServerActiveSessions=1
ServerSessionTimeout=30

[OS]
Name=Linux
Architecture=amd64
Version=3.10.0-1160.62.1.el7.x86_64
SystemEncoding=UTF-8

[Disk]
DiskFree=25146
DiskUsable=23037
DiskTotal=50286

[JavaVM]
Version=17.0.1
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=17.0.1+12
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=95285
HeapSize=478208
HeapMaxSize=524288
TotalFreeSize=141365

[Cache]
ObjectCache=389
ObjectCacheMax=10000
ObjectCacheRatio=3
ProcessCache=8
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=0
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=2
ProductName=MySQL
ProductVersion=5.5.68-MariaDB
DriverName=MySQL Connector/J
DriverVersion=mysql-connector-java-8.0.29 (Revision: dd61577595edad45c398af508cf91ad26fc4144f)
DBDate=2022-05-23 09:57:44
DBDateOffset=0
DBPatchLevel=5;P02;b9f4fe8fb3118bd1efdcb4fcd73ae33e
UsingBLOBs=true

[Healthcheck]
Date=2022-05-23 09:57:45
ElapsedTime=432

5.1 (config “objet métier”)

[Platform]
Status=OK
Version=5.1.43
BuiltOn=2022-04-29 15:09
Git=5.1/b1c022956d87408a4a9535fb1589fd828ef92f68
Encoding=UTF-8
EndpointIP=172.17.0.6
EndpointURL=http://7ec5e6f49410:8080
TimeZone=Europe/Paris
SystemDate=2022-05-23 09:58:57

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=https://re7.rfi.re7.aws.renault.com
ActiveSessions=3
TotalUsers=49
EnabledUsers=45
LastLoginDate=2022-05-23 09:20:58

[Server]
ServerInfo=Apache Tomcat/9.0.62
ServerType=WEB
ServerActiveSessions=7

[OS]
Name=Linux
Architecture=amd64
Version=4.14.275-207.503.amzn2.x86_64
DockerImageName=centos7
SystemEncoding=UTF-8

[JavaVM]
Version=17.0.3
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=17.0.3+7
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=287045
HeapSize=506944
HeapMaxSize=1773888
TotalFreeSize=1553989

[Cache]
GrantCache=0
GrantCacheMax=0
GrantCacheRatio=0
ObjectCache=204
ObjectCacheMax=10000
ObjectCacheRatio=2
ProcessCache=1
ProcessCacheMax=10000
ProcessCacheRatio=0

[Database]
Vendor=3
ProductName=PostgreSQL
ProductVersion=10.18
DriverName=PostgreSQL JDBC Driver
DriverVersion=42.3.4
DBDate=2022-05-23 09:58:57
DBDateOffset=0
DBPatchLevel=5;P01;425e2ee5f00a2dcaca289d821f852cca
UsingBLOBs=true

[Healthcheck]
Date=2022-05-23 09:58:57
ElapsedTime=311
Simplicité logs

5.2 (config “service-simplicite”)

2022-05-23 09:25:40,708|SIMPLICITE|ERROR||http://renault.simplicite.io:10028||ECORED0001|system|com.simplicite.util.engine.ObjectDirect|update||Error IT4ITProduct
    org.json.JSONException: Duplicate key "row_id" at 26 [character 27 line 1]
     at org.json.JSONTokener.syntaxError(JSONTokener.java:507)
     at org.json.JSONObject.<init>(JSONObject.java:252)
     at org.json.JSONObject.<init>(JSONObject.java:414)
     at com.simplicite.util.ObjectServiceSimplicite.saveService(ObjectServiceSimplicite.java:771)
     at com.simplicite.util.ObjectServiceSimplicite.updateService(ObjectServiceSimplicite.java:817)
     at com.simplicite.util.engine.ObjectManager.update(ObjectManager.java:2568)
     at com.simplicite.util.engine.ObjectDirect.update(ObjectDirect.java:435)
     at com.simplicite.util.ObjectDB.update(ObjectDB.java:1270)
     at com.simplicite.util.engine.ObjectManager.save(ObjectManager.java:3392)
     at com.simplicite.util.engine.ObjectDirect.save(ObjectDirect.java:478)
     at com.simplicite.util.ObjectDB.save(ObjectDB.java:1313)
     at com.simplicite.webapp.tools.JSONServletTool.update(JSONServletTool.java:1253)
     at com.simplicite.webapp.ObjectJson.update(ObjectJson.java:611)
     at com.simplicite.webapp.tools.JSONServletTool.businessObjectService(JSONServletTool.java:634)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.service(AbstractJSONServlet.java:102)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
     at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:219)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
     at com.simplicite.webapp.filters.HTTPHeadersFilter.doFilter(HTTPHeadersFilter.java:39)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
     at com.simplicite.webapp.filters.RewriteFilter.doFilter(RewriteFilter.java:62)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:49)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:183)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
     at com.simplicite.tomcat.valves.APISessionValve.invoke(APISessionValve.java:242)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
     at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
     at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
     at java.base/java.lang.Thread.run(Thread.java:833)

5.1 (config “objet métier”)

aucune écriture significative dans ce contexte
Browser logs
NA
Other relevant information

5.2 (config “service-simplicite”)

5.1 (config “objet métier”)

On va essayer de reproduire le pb décrit.

Quelle est la configuration des tokens coté 5.1 (“serveur”) ? = les params *USERTOKEN*

Merci David.

Voici les infos demandées:

Je constate aussi les pbs décrits entre une 5.3 cliente et une 5.2 serveur:


@Francois est-ce que ça ne serait pas lié au sujet des DataLinks ?

Les objets “service” n’ont conceptuellement rien a voir avec les DataLinks qui échangent des objets “normaux” connus des 2 côtés (avec les row_id en plus pour synchro). Mais à un moment ça passe nécessairement par le même tuyau d’API.

OK, je posais juste la question avant de commencer à analyser de plus près les flux.

@bmo y avait il ces pbs entre instances 5.1 ?

Non, entre 5.1 tout fonctionne bien (CRUD depuis l’instance Simplicité cliente).

Précisément:

Instance serveur :

[Platform]
Status=OK
Version=5.1.43
BuiltOn=2022-04-29 15:09
Git=5.1/b1c022956d87408a4a9535fb1589fd828ef92f68

Instance cliente :

[Platform]
Status=OK
Version=5.1.44
BuiltOn=2022-05-10 18:36
Git=5.1/a51516647c95b8cab51e136ca72a2a5e5c30e27c

OK merci @bmo, je te tiens au courant

OK vu, il y avait un pb d’accès concurrent sur le chargement des metadata dans les objets remote qui aboutissait dans certains cas à un chargement multiple (à minima double) des fields et c’est ça qui générait ensuite les pbs bizarres ensuite constatés.

On a rendu ça plus robuste et sera poussé ce soir dans le cadre de la 5.2.4

Ce qui est étonnant dans l’histoire c’est que le pb ne produise pas en 5.1 (on backportera la correction quand même)

1 Like