Bug #2682

Updated by Sebastien Jacquot over 1 year ago

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.

h3. Steps

On Windows, if we continue
to reproduce use several commands in a row, it also can lead to a JVM and a Visual C++ runtime crash (javaw.exe). See some logs at the end of this issue.

h3. Bugs

# JNI crash on Windows
=> have a Partition based on a complex query, eg. ELTECFRAORIG_sp_n
=> launch TXM execute Index with "faire" query
=> execute another new Index and type another query
=> cqpjni crashes and
the editor and console return no results JVM too

h3. Solutions to restrict and/or avoid this behavior

# to avoid the JNI crash we need to define MemCqiClient method as synchronized
=> will lead to errors but should stop crashes
permit only one compute at a time in TXMEditor.Compute() by storing the current computing Job and returns if it's already running
=> will avoid the possibility to get some wrong results when the Partition is not yet computed (eg. typing "faire" in an Index does not return empty result anymore, atm this message is displayed in the console: "Editor is already computing .... Please wait or abort the computing job (Calcul de Index de partition: ELTECFRAORIG_sp_n: ...…).")
=> It doesn't avoid to open another Index anoth

Eclipse log:
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


Windows Events log:

Nom de l’application défaillante javaw.exe, version :, horodatage : 0x5c15d0df
Nom du module défaillant : cqpjni.dll, version :, 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

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 :
P3 : 5c15d0df
P4 : cqpjni.dll
P5 :
P6 : 5ccbfcdd
P7 : 40000015
P8 : 0000000000044cf2
P9 :
P10 :

Fichiers joints :

Ces fichiers sont peut-être disponibles ici :

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

Other tests, executing several queries:

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.
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.

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