Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
runtime: intermittent os/exec.Command.Start() Hang on Darwin in Presence of "plugin" Package #38824
What version of Go are you using (
Background: I maintain a fork/branch of Joker (a Clojure interpreter/clone written in Go) that "autowraps" much of the Go standard library for easy access by Joker code.
A couple of weeks ago, I first noticed that the (small) test suite occasionally hung. Digging further, I posted this to get some feedback:
As suggested there, I ran
Later, I boiled the pertinent Joker code down to a small test program and was able to reproduce that. The first such version pulled in all the Go standard library that my fork of Joker did. I then performed manual bisections of that set and narrowed them down to just the
This issue is being tracked (on my end) via jcburley/joker#19. It's Closed due to a workaround being implemented such that
A slightly "fuller" version of the sample program, along with instructions on another approach to run it, is here:
Hi, the same thing in
I took a quick look at this today and can at the very least confirm that the bug still exists with 1.14.3:
(Here's my very slightly modified code, where all I did was add some more STDOUT output to figure out what's going on.)
As we can see here, I ran it the same way as James and indeed it locked after only 3 attempts. At the point this screenshot was taken, the same program had been hanging for 7 minutes, 35 seconds.
So I looked at Activity Monitor.app to see if I can get some more information:
Here's the text of that stack trace if you can't view the image for some reason:
That last line caught my eye. Stuck in a mutex wait in the kernel? I went for a
It's just flat hung on the last line, no progress beyond that point at all.
My theory at this point is that the process isn't returning because one of the executions of
This is about the depth of my ability to debug at this point (I'm always learning, in fact that's why I'm looking at this issue!). I don't know how much help it'll be, but I certainly hope this aids in tracking things down.