La fonction de proposition d'indexes ne fonctionne plus

Problem description

Bonjour, la fonction de proposition d’indexes ne fonctionne plus. La proposition est vide sans erreur ou message de la plateforme.

Steps to reproduce

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

Technical information

Instance /health
[Platform]
Status=OK
Version=5.2.27
BuiltOn=2023-01-08 22:50
Git=5.2/bf05ec5d781b1cf889e3b58e3c7eda01f4a25f4e
Encoding=UTF-8
EndpointIP=21.1.1.7
EndpointURL=http://4117f96b923f:8080
TimeZone=Europe/Paris
SystemDate=2023-01-19 12:21:39

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=https://bca.dok-re7.intra.renault.fr
ActiveSessions=1
TotalUsers=10766
EnabledUsers=1816
LastLoginDate=2023-01-19 08:17:18

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

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

[JavaVM]
Version=17.0.5
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=17.0.5+8
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=825753
HeapSize=1520512
HeapMaxSize=3040896
TotalFreeSize=2346137

[Cache]
ObjectCache=199
ObjectCacheMax=10000
ObjectCacheRatio=1
ProcessCache=0
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=0
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=2
ProductName=MySQL
ProductVersion=5.6.39-log
DriverName=MySQL Connector/J
DriverVersion=mysql-connector-j-8.0.31 (Revision: 0c86fc148d567b62266c2302bdad0f1e7a7e4eba)
DBDate=2023-01-19 12:21:39
DBDateOffset=0
DBPatchLevel=5;P02;00beb770ca0f9152abac9a7448a03091
UsingBLOBs=true

[Healthcheck]
Date=2023-01-19 12:21:39
ElapsedTime=24
Simplicité logs
RAS
Browser logs
RAS
Other relevant information

RAS

Bonjour,

De mémoire, il y a eu un changement récent pour appliquer les indexes en bases directement sans le demander à l’utilisateur à l’import module. Ca évite de former les gens à y penser :wink:

Le traitement a dû passer en asynchrone et du coup la UI n’a pas le retour.
On va revoir ça…

Effectivement 2 besoins se sont télescopés (poser la question côté UI, et forcer l’indexation à l’import de module en asynchrone) et le traitement était devenu asynchrone par défaut :

  • Il sera de nouveau synchrone dans ce cas UI “sans rebuild” pour afficher une réponse non vide
  • Si on sélectionne “rebuild”, la UI n’attendra pas la réponse du thread asynchrone
  • On en a profité pour agir uniquement sur les lignes sélectionnées (getSelectedIds) s’il y en a, avant ça bouclait sur toute la recherche courante
  • Pour rappel, les objets system sont ignorés par ce traitement
  • La proposition d’indexes contient aussi les DROP INDEX

Sinon j’ai noté que le CREATE TABLE complet n’était plus généré, c’était bien pratique à une époque d’avoir le schéma complet de la table en plus des indexes. @david ça te dit qq chose ?

En cas de pb, il est toujours possible d’appeler la méthode qui fait le taff :

SystemTool.generateIndexes(String object, boolean rebuildDBIndexes, boolean rebuildDataIndexes, boolean async)

Non, désolé, ça ne me dit rien.

Si ça a été retiré, ça doit faire longtemps car je n’ai pas souvenir récent d’avoir vu passer de create table en faisant une proposition d’index via l’action.

oui ça doit dater,
le createTable retourne toujours une chaine SQL vide et SonarQube n’a rien dit :wink: