Bug #2826

Specificity, subcorpus, failure on computing

Added by Matthieu Decorde 5 months ago. Updated 5 months ago.

Status:New Start date:05/25/2020
Priority:Normal Due date:
Assignee:- % Done:

80%

Category:Commands Spent time: -
Target version:TXM 0.8.1

Description

BP

         il arrive que le calcul échoue ; c'est difficile à reproduire et cela n'échoue pas non plus toujours de la même façon (stacktrace ou non, TXM grisé ou non), sinon que dans tous ces cas le calcul n'aboutit pas. Ce n'est pas marginal, dans le contexte dans lequel je travaillais et en essayant de reproduire le bug j'ai dû réussir à planter TXM entre 5 et 10 fois en 30 mn. Il semble que ce soit lié au fait de demander un calcul de spécificités sur sous-corpus alors qu'un précédent traitement (par exemple un export un peu gros) n'est pas encore achevé : comme si le calcul se lance sans vérifier que tout le reste est fini. Voici un cas où on peut arriver à produire le bug :
            sur le corpus AFVOIXOFFV02, calculer le sous-corpus avancé commemoration52sujets avec la requête :

<div>[_.div_identifiant-de-la-notice="AFE86003334|AFE85001757|AFE85001758|AFE85002810|AFE85002811|AFE85002812|AFE85002208|AFE85002209|AFE85002210|AFE85003294|AFE85003810|AFE85004314|AFE85004816|AFE85005345|AFE85005346|AFE85007136|AFE85006464|AFE85007039|AFE85007637|AFE85008889|AFE85008890|AFE85009295|AFE85009716|AFE86000450|AFE86001304|AFE86003099|AFE85001424|AFE85002498|AFE85002499|AFE85002501|AFE85002502|AFE85001996|AFE85003069|AFE85003532|AFE85004556|AFE85004557|AFE85005074|AFE85005607|AFE85005608|AFE85005609|AFE85006145|AFE85007392|AFE85008288|AFE85008287|AFE85008675|AFE85009076|AFE85009513|AFE85009923|AFE85010276|AFE86000272|AFE86000593|AFE86000912" | _.div_identifiant-de-la-notice="AFE85001995" | (_.text_date-de-diffusion="15/11/1951|13/05/1954" & _.div_id="1") ] expand to div

    calculer spécificités sur word
    exporter
    puis aussitôt calculer spécificités sur frlemma, j'ai dans ce cas obtenu la stacktrace :

org.rosuda.REngine.Rserve.RserveException: Error while processing eval output: SEXP (type 10) expected but found result type 44.
    at org.rosuda.REngine.Rserve.RConnection.parseEvalResponse(RConnection.java:207)
    at org.rosuda.REngine.Rserve.RConnection.eval(RConnection.java:233)
    at org.txm.statsengine.r.core.RWorkspace.safeEval(RWorkspace.java:1548)
    at org.txm.statsengine.r.core.RWorkspace.eval(RWorkspace.java:1141)
    at org.txm.statsengine.r.core.data.VectorImpl.asStringsArray(VectorImpl.java:240)
    at org.txm.specificities.core.functions.Specificities.getTypeNames(Specificities.java:451)
    at org.txm.specificities.core.functions.Specificities.toTxt(Specificities.java:564)
    at org.txm.rcp.handlers.export.ExportResult$1.run(ExportResult.java:147)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
** Échec de l'exportation du résultat @frlemma : java.lang.NullPointerException
java.lang.NullPointerException
    at org.txm.statsengine.r.core.data.VectorImpl.asStringsArray(VectorImpl.java:241)
    at org.txm.specificities.core.functions.Specificities.getTypeNames(Specificities.java:451)
    at org.txm.specificities.core.functions.Specificities.toTxt(Specificities.java:564)
    at org.txm.rcp.handlers.export.ExportResult$1.run(ExportResult.java:147)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

Hypothesis

Deadlock produced when the export is not done and a new command is called ?
The result is not ready or is being computed ?

Solution

- if aborted the specificities result must release its R semaphore
- export is making to much R acess data command
- don't re-compute a result before exporting if not dirty
- a TXMResult must not be exported if it is currently in computing state

History

#1 Updated by Matthieu Decorde 5 months ago

  • Description updated (diff)

#2 Updated by Matthieu Decorde 5 months ago

  • Description updated (diff)

#3 Updated by Matthieu Decorde 5 months ago

  • Description updated (diff)
  • % Done changed from 0 to 40

r2861 add some fixes but more tests must be done

#4 Updated by Matthieu Decorde 5 months ago

  • % Done changed from 40 to 80

Also available in: Atom PDF