Extension can hang if you halt

Offen
#17 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python, scala
Bereich
backend, tooling

Rechercherichtung

Beginne mit PythonExtension.scala, insbesondere mit PythonSubprocess.close und SetupPython.perform, und verwende die gemeldete Sequenz aus Wiederholen und Anhalten, um den Fehler zu reproduzieren. Prüfe, dass nach dem Anhalten py:setup und __reload_extensions wieder funktionieren; der Stacktrace und das Wiederherstellungsverhalten sollten nicht mehr zeigen, dass die Erweiterung feststeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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
Vorherrschende Sprache
Scala
Sterne
31
Forks
16
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus NetLogo/Python-Extension

Alle Issues in NetLogo/Python-Extension

Ähnliche Issues

Weitere Issues zu Scala

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.