NetLogo / NetLogo/Python-Extension
Extension can hang if you halt
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 31
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with PythonExtension.scala, especially PythonSubprocess.close and SetupPython.perform, using the reported repeat-and-halt sequence to reproduce the failure. Check that after halting, py:setup and __reload_extensions work again; the stack trace and recovery behavior should no longer show the extension stuck.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, scala
- Domain
- backend, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100