Bonjour, Je suis entrain de faire tourner un couplage entre ISIS-Fish et un autre modèle via R. Je ne fournis pas tout, c'est assez long et complexe à mettre en place (il vous faudrait installer R, changer des répertoires en dur dans les règles de gestion, il y a des inputs très lourds, etc.), ce sera plus simple d'en parler par téléphone ce lundi (0687186475). J'ai mis à ce lien le debug, la base .zip, les règles de gestion et la simulation utilisée, mais ce ne sera pas suffisant pour tout faire fonctionner : https://filesender.renater.fr/?s=download&token=df860e03-af33-ac9e-4b21-8c564583f04c Dans une règle de gestion (OgiveDeTri[...]), j'appelle une fonction en R, qui doit calculer une valeur et la renvoyer à ISIS-Fish (dans la condition de la règle, l351 à 362). Tel que je l'ai codé dans la règle, ce calcul n'est fait qu'une fois, au début d'une année (c'est le sens du flag firstIteration, pour éviter une boucle sur les métiers pour certains passages de la condition; et du if sur le mois de janvier). Le problème a lieu en janvier 8. A la toute fin de mon debug, j'ai d'abord ce bloc de lignes : 2018-02-18 15:38:22,036 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>YEAR >7 2018-02-18 15:38:22,036 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>JANUARY 2018-02-18 15:38:22,036 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>YEAR >7 + JANUARY 2018-02-18 15:38:22,036 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>Assessment loop 2018-02-18 15:38:22,050 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>2018-02-18 15:38:22,050 INFO [SimThread sim_simuGdGCalib2010NoAlgoCorr_CorrElasticity2METSEASPropSP09_NoTAC2010Split_Step3Iter3_10YearsRatio1112_EffVars_2018-02-18-15-23] (RProxy.java:116) initOnJNI - Trying to initialize the R Proxy over JNI 2018-02-18 15:38:22,321 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>2016 2018-02-18 15:38:22,321 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>0.27 2018-02-18 15:38:22,321 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>Last assessed year : 2017; current assessed year : 2016 2018-02-18 15:38:24,180 INFO [monitor-thread] (SimulationControl.java:206) setText - Evaluate rules conditions (3 rules) 2018-02-18 15:47:11,848 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>YEAR >7 2018-02-18 15:47:11,848 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>JANUARY 2018-02-18 15:47:11,848 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>YEAR >7 + JANUARY 2018-02-18 15:47:11,848 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>Assessment loop 2018-02-18 15:47:11,848 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>2018-02-18 15:47:11,848 INFO [SimThread sim_simuGdGCalib2010NoAlgoCorr_CorrElasticity2METSEASPropSP09_NoTAC2010Split_Step3Iter3_10YearsRatio1112_EffVars_2018-02-18-15-23] (RProxy.java:116) initOnJNI - Trying to initialize the R Proxy over JNI 2018-02-18 15:47:11,864 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>2016 2018-02-18 15:47:11,864 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>0.27 2018-02-18 15:47:11,864 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>Last assessed year : 2017; current assessed year : 2016 ISIS a donc bouclé sur la condition de la règle jusqu'à la boucle if ligne 358 (il n'a pas écrit le debug de la ligne 368 "Regle mere : le TAC est de : " + TACvalue), alors qu'il n'est pas censé le faire (il n'a aucune raison de s'arrêter à la ligne 356 et de recommencer la condition). La suite du debug est plus troublante : 2018-02-18 15:56:13,930 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus>An unrecoverable stack overflow has occurred. 2018-02-18 15:56:13,930 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># 2018-02-18 15:56:13,930 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># A fatal error has been detected by the Java Runtime Environment: 2018-02-18 15:56:13,930 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># 2018-02-18 15:56:13,930 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># EXCEPTION_STACK_OVERFLOW (0xc00000fd) at pc=0x00000000750c59e6, pid=8140, tid=0x000000000000237c 2018-02-18 15:56:13,930 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># 2018-02-18 15:56:13,931 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># JRE version: Java(TM) SE Runtime Environment (8.0_111-b14) (build 1.8.0_111-b14) 2018-02-18 15:56:13,931 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># Java VM: Java HotSpot(TM) 64-Bit Server VM (25.111-b14 mixed mode windows-amd64 compressed oops) 2018-02-18 15:56:13,931 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># Problematic frame: 2018-02-18 15:56:13,934 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># C [R.dll+0x2e59e6] 2018-02-18 15:56:13,934 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># 2018-02-18 15:56:13,934 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># Failed to write core dump. Minidumps are not enabled by default on client versions of Windows 2018-02-18 15:56:13,934 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># 2018-02-18 15:56:13,935 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># An error report file with more information is saved as: 2018-02-18 15:56:13,935 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># C:\Users\avigier\couplageISIS_SS3TEST3zones\hs_err_pid8140.log 2018-02-18 15:56:13,954 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># 2018-02-18 15:56:13,954 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># If you would like to submit a bug report, please visit: 2018-02-18 15:56:13,954 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># http://bugreport.java.com/bugreport/crash.jsp 2018-02-18 15:56:13,954 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># The crash happened outside the Java Virtual Machine in native code. 2018-02-18 15:56:13,954 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># See problematic frame for where to report the bug. 2018-02-18 15:56:13,954 INFO [Thread-16] (SubProcessSimulationLauncher.java:302) run - dans un sous processus># 2018-02-18 15:56:14,360 INFO [pool-3-thread-4] (SubProcessSimulationLauncher.java:251) subProcessSimulate - SubProcess finished (status = 1) Qu'est-ce que c'est cette histoire de stack overflow? Dans l'interface, la simulation est bloquée en janvier 8, à l'évaluation des conditions des règles de gestion. Qu'a-t-il pu se passer? Bon après-midi, Audric
Le 18/02/2018 à 16:45, Audric VIGIER a écrit :
Bonjour,
Je suis entrain de faire tourner un couplage entre ISIS-Fish et un autre modèle via R. Je ne fournis pas tout, c'est assez long et complexe à mettre en place (il vous faudrait installer R, changer des répertoires en dur dans les règles de gestion, il y a des inputs très lourds, etc.), ce sera plus simple d'en parler par téléphone ce lundi (0687186475). J'ai mis à ce lien le debug, la base .zip, les règles de gestion et la simulation utilisée, mais ce ne sera pas suffisant pour tout faire fonctionner : https://filesender.renater.fr/?s=download&token=df860e03-af33-ac9e-4b21-8c564583f04c Vu la trace qui contient "R.dll" c'est soit une erreur dans R ou dans jri (l'interface java -> R), mais quand même fournit par R.
Un stack over flow, c'est une erreur concernant un code qui s'appele lui même en boucle. Cela peut provenir de beaucoup de chose, du code R, des données... -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Merci pour l'explication. Du coup entre temps, j'avais remarqué qu'un script R avait qqchose qui clochait. J'ai corrigé, refait tourner et là je n'ai plus le stack overflow, et ISIS ne "sort" plus de sa boucle if. Du coup pb résolu. Bonne soirée! Le 18/02/2018 19:13, Eric Chatellier a écrit :
Le 18/02/2018 à 16:45, Audric VIGIER a écrit :
Bonjour,
Je suis entrain de faire tourner un couplage entre ISIS-Fish et un autre modèle via R. Je ne fournis pas tout, c'est assez long et complexe à mettre en place (il vous faudrait installer R, changer des répertoires en dur dans les règles de gestion, il y a des inputs très lourds, etc.), ce sera plus simple d'en parler par téléphone ce lundi (0687186475). J'ai mis à ce lien le debug, la base .zip, les règles de gestion et la simulation utilisée, mais ce ne sera pas suffisant pour tout faire fonctionner : https://filesender.renater.fr/?s=download&token=df860e03-af33-ac9e-4b21-8c564583f04c Vu la trace qui contient "R.dll" c'est soit une erreur dans R ou dans jri (l'interface java -> R), mais quand même fournit par R.
Un stack over flow, c'est une erreur concernant un code qui s'appele lui même en boucle. Cela peut provenir de beaucoup de chose, du code R, des données...
participants (2)
-
Audric VIGIER -
Eric Chatellier