Extension can hang if you halt

Ouverte
#17 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python, scala
Domaine
backend, tooling

Piste de recherche

Commencez par PythonExtension.scala, en particulier PythonSubprocess.close et SetupPython.perform, en utilisant la séquence de répétition et d’arrêt signalée pour reproduire l’échec. Vérifiez qu’après l’arrêt, py:setup et __reload_extensions fonctionnent à nouveau ; la trace de la pile et le comportement de récupération ne devraient plus montrer que l’extension est bloquée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

This example is stupid, but I wonder if it means there are other conditions under which the extension will hang.

I was curious if closing down and opening the extension had any memory leakage (it didn't as far as I could tell), so I ran

repeat 10000 [py:setup py:python3]

It took a long time, so I just halted it. I got the message below, and now I can't get the extension to py:setup again. Removing the extension, recompiling, adding it, and recompiling doesn't work. Running __reload_extensions also doesn't work.

NetLogo is unable to supply you with more details about this error.  Please report the problem 
 at https://github.com/NetLogo/NetLogo/issues, or to bugs@ccl.northwestern.edu, and paste the 
contents of this window into your report. 


java.lang.InterruptedException
 at java.lang.Object.wait(Native Method)
 at java.lang.UNIXProcess.waitFor(UNIXProcess.java:412)
 at org.nlogo.extensions.py.PythonSubprocess.close(PythonExtension.scala:481)
 at org.nlogo.extensions.py.PythonExtension$.$anonfun$pythonProcess_$eq$1(PythonExtension.scala:49)
 at org.nlogo.extensions.py.PythonExtension$.$anonfun$pythonProcess_$eq$1$adapted(PythonExtension.scala:49)
 at scala.Option.foreach(Option.scala:274)
 at org.nlogo.extensions.py.PythonExtension$.pythonProcess_$eq(PythonExtension.scala:49)
 at org.nlogo.extensions.py.SetupPython$.perform(PythonExtension.scala:549)
 at org.nlogo.prim._extern.perform(_extern.java:36)
 at org.nlogo.nvm.Context.stepConcurrent(Context.java:107)
 at org.nlogo.nvm.ConcurrentJob.step(ConcurrentJob.scala:65)
 at org.nlogo.job.JobThread.runPrimaryJobs(JobThread.scala:133)
 at org.nlogo.job.JobThread.$anonfun$run$1(JobThread.scala:68)
 at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
 at scala.util.control.Exception$Catch.apply(Exception.scala:228)
 at org.nlogo.api.Exceptions$.handling(Exceptions.scala:41)
 at org.nlogo.job.JobThread.run(JobThread.scala:66)

NetLogo 6.1.0
main: org.nlogo.app.AppFrame
thread: AWT-EventQueue-0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_202 (Oracle Corporation; 1.8.0_202-b08)
operating system: Mac OS X 10.14.6 (x86_64 processor)
Scala version 2.12.8
JOGL: (3D View not initialized)
OpenGL Graphics: (3D View not initialized)
model: Untitled

01:12:41.017 AddJobEvent (org.nlogo.app.common.CommandLine) AWT-EventQueue-0
01:12:41.017 OutputEvent (org.nlogo.app.common.CommandLine) AWT-EventQueue-0
01:12:41.017 CompiledEvent (org.nlogo.window.CompilerManager) AWT-EventQueue-0
01:12:40.999 CompileMoreSourceEvent (org.nlogo.app.common.CommandLine) AWT-EventQueue-0
01:12:40.877 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
01:12:40.672 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
01:12:40.470 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
01:12:40.267 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
01:12:40.065 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
01:12:39.864 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
Langage dominant
Scala
Étoiles
31
Forks
16
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de NetLogo/Python-Extension

Toutes les issues de NetLogo/Python-Extension

Issues similaires

Plus d'issues Scala

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.