Inist-CNRS / lodex

Linked Open Data EXperiment
https://www.lodex.fr/
Other
53 stars 12 forks source link

[14.051] Impossibilité de revenir au dataset via l'objet courant #2007

Closed AnaelKremer closed 4 months ago

AnaelKremer commented 4 months ago

En mode enrichissement il devient impossible d'écrire une formule qui nécessite de renvoyer à "value". Si l'on copie-colle une formule, cela n'engendre pas d'erreur critique mais un des champs souhaités n'est pas récupéré.

Si l'on saisit manuellement le script en revanche, la saisie de "self" et/ou "value" dans "self.value.quelquechose" fait disparaître les données de l'aperçu (on voit undefined quand on rédige un script). Si l'on essaie de sauvergarder on obtient un message d'erreur. Si l'on veut retourner voir la datagrid, elle est vide. Et si on tente de fermer puis réouvrir l'intance elle est inaccessible, comme toutes les autres instances du même container.

La situation revient à la normale après 3-4 min. Peut importe la machine, le container ou les données, cela se produit toujours dans la 14.051.

Quand self est executé le calcul de l'aperçu de la valeur fait crasher Lodex

TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'Object'
    |     property 'value' -> object with constructor 'Array'
    --- index 1 closes the circle
    at JSON.stringify (<anonymous>)
    at createErrorWith (/app/node_modules/@ezs/core/lib/engine.js:56:26)
    at push (/app/node_modules/@ezs/core/lib/engine.js:175:33)
    at Immediate.<anonymous> (/app/node_modules/@ezs/core/lib/feed.js:19:9)
    at processImmediate (node:internal/timers:476:21)
AlasDiablo commented 4 months ago

Apres analyse, les problème viens des version d'ezs supperieur à 3.8.3

Ce prolème est du a des change qui ne devais pas conntenir de logique. https://github.com/Inist-CNRS/ezs/commit/2a4f245bb9ad42c7e61a847c667a83e0bd061dcd https://github.com/Inist-CNRS/ezs/commit/0faecf39a93751b8141b39ae8f60dc2ca66a481b https://github.com/Inist-CNRS/ezs/commit/b64432f1942332de9c9785495b3fe27605c130cd https://github.com/Inist-CNRS/ezs/commit/e926286b4c2997efb84a0c97d3aea18685d00b2a

La stack trace nous remonte au niveau d'une fonction de débogage https://github.com/Inist-CNRS/ezs/blob/9f4f6c239896abc14f48cd988f663a4b78c48367/packages/core/src/engine.js#L45-L66

Je vais regardé s'il y a possibilité de récupérais l'erreur au niveau de lodex et d'évité un crash complé de l'application.

touv commented 4 months ago

Le script est interprété en direct, il est en erreur pendant que l'on est en train de l'écrire. Et dans certain cas, la génération du message d'erreur génère une erreur critique qui fait planter l'application. Le problème est à corriger à la source donc dans ezs pour éviter ce cas de figure particulier. Il est inutile de bidouiller Lodex pour contourner le problème.

touv commented 4 months ago

cf. https://github.com/Inist-CNRS/ezs/pull/412