NetLogo / NetLogo/Python-Extension

Extension can hang if you halt

Aperta
#17 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Scala
Stelle
31
Fork
16
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da PythonExtension.scala, in particolare da PythonSubprocess.close e SetupPython.perform, usando la sequenza di ripetizione e arresto segnalata per riprodurre il problema. Verifica che, dopo l’arresto, py:setup e __reload_extensions funzionino di nuovo; lo stack trace e il comportamento di ripristino non dovrebbero più mostrare che l’estensione è bloccata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python, scala
Ambito
backend, tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.