Bug #2682

Updated by Sebastien Jacquot over 1 year ago

WIP:

Warning: there is a bug in 0.8.0 where the index of partition found nothing if the parent partition parts are not computed yet, typically when reopening TXM.
More information: the problem here is important. When creating an index of partition, the editor opens and the parent and children of parent are computed in background. But since the editor is ready, if we type eg. "faire" before the parts are computed, nothing is found in the index.

On Windows, if we continue to use several commands in a row, it also can lead to a JVM and a Visual C++ runtime crash (javaw.exe).

Eclipse log:
<pre>
Assertion failed!

Program: C:\Tools\Coding\Java\jdks_txm\jdk1.8.0_202_win-x64\jre\bin\javaw.exe
File: eval.c, Line 1037

Expression: rs && ls

</pre>

Windows Events log:

<pre>
Nom de l’application défaillante javaw.exe, version : 8.0.202.8, horodatage : 0x5c15d0df
Nom du module défaillant : cqpjni.dll, version : 0.0.0.0, horodatage : 0x5ccbfcdd
Code d’exception : 0x40000015
Décalage d’erreur : 0x0000000000044cf2
ID du processus défaillant : 0xe110
Heure de début de l’application défaillante : 0x01d5ac1544367a5b
Chemin d’accès de l’application défaillante : C:\Tools\Coding\Java\jdks_txm\jdk1.8.0_202_win-x64\jre\bin\javaw.exe
Chemin d’accès du module défaillant: C:\Tools\Coding\Java\workspace_txm2\org.txm.libs.cqp.win32\res\win64\cqpjni.dll
ID de rapport : c238cdb5-1819-11ea-89af-005056c00008
</pre>

<pre>
Récipient d’erreurs , type 0
Nom d’événement : APPCRASH
Réponse : Non disponible
ID de CAB : 0

Signature du problème :
P1 : javaw.exe
P2 : 8.0.202.8
P3 : 5c15d0df
P4 : cqpjni.dll
P5 : 0.0.0.0
P6 : 5ccbfcdd
P7 : 40000015
P8 : 0000000000044cf2
P9 :
P10 :

Fichiers joints :

Ces fichiers sont peut-être disponibles ici :
C:\Users\xxx\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_javaw.exe_fdfbe352e741d037c14b6ba92f3017caf2974ea9_c0202ac9

Symbole d’analyse :
Nouvelle recherche de la solution : 0
ID de rapport : c238cdb5-1819-11ea-89af-005056c00008
Statut du rapport : 0
</pre>

Other tests, executing several queries:

<pre>
AFC de la partition ELTECFRAORIG_sp_n, propriété [word]...
AFC de la partition ELTECFRAORIG_sp_n, propriété [word]...
CQP Error:
Illegal type (65535) of LHS argument in pattern.
Warning:
Evaluation interruted: results will be incomplete.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006dc426e0, pid=58868, tid=0x000000000000c4c8
#
# JRE version: Java(TM) SE Runtime Environment (8.0_202-b08) (build 1.8.0_202-b08)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.202-b08 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [cqpjni.dll+0x26e0]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Tools\Coding\Java\eclipse-rcp-oxygen-3a-win32-x86_64\hs_err_pid58868.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
</pre>

NOTE: I guess accessing a subcorpus not fully realized crashes cqpjni.dll.

NOTES:

<pre>

1) rendre compte du fait que l'objet sélectionné est en cours de calcul interne : par exemple dans la barre de statut 'partition en cours de construction...'
-> ce qui me permettrait d'attendre que l'objet soit disponible avant d'essayer de l'utiliser
2) bloquer l'application d'une commande sur un objet en cours de calcul
-> plus sûr, mais pas exclusif de 1) toujours utile
3) barre de statut

1. Building AFC...
2. Building partition...
2. Building part chirac...
...
9. <empty>
soit empiler les calculs imbriqués :
1. Building AFC...
2. Building AFC / partition...
2. Building AFC / partition / chirac...
...
9. <empty>

Problème de l'accès à la barre de statut depuis la couche TBX :
- utiliser un composant compatible avec la TBX ?
- récupérer le protocole utilisé par la console pour mettre à jour la barre de statut ?
- mettre une console d'une seule ligne à la place de la barre de statut ?
- implémenter les listeners,handlers et callback pour TXMResult, eg. onStartComputing(), onEndComputing(), etc.
- implémenter un watcher

</pre>

Back