You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To reproduce, start present, navigate to localhost:3999 in your browser, and open a presentation. Then hit reload a bunch of times. For each reload, a new playground socket handler gets spun up, each of which permanently leaks a goroutine.
Hitting present with a SIGQUIT yields lots of these:
goroutine 52 [chan receive, 6 minutes]:
golang.org/x/tools/playground/socket.func·002()
$GOPATH/src/golang.org/x/tools/playground/socket/socket.go:125 +0x10b
created by golang.org/x/tools/playground/socket.socketHandler
$GOPATH/src/golang.org/x/tools/playground/socket/socket.go:131 +0x2b0
Note that in socketHandler.go line 125 there's a range loop reading from a channel that never gets closed.
Noticed because I added net/http/pprof to present for a demo and saw the goroutines profile number steadily increasing.
The text was updated successfully, but these errors were encountered:
As an aside, if vet had oracular powers, it could warn about such matters. There would probably be too many false positives, though. Plus oracle the lives in x/tools and somehow I don't see that changing soon.
To reproduce, start
present
, navigate tolocalhost:3999
in your browser, and open a presentation. Then hit reload a bunch of times. For each reload, a new playground socket handler gets spun up, each of which permanently leaks a goroutine.Hitting
present
with aSIGQUIT
yields lots of these:Note that in socketHandler.go line 125 there's a range loop reading from a channel that never gets closed.
Noticed because I added
net/http/pprof
topresent
for a demo and saw the goroutines profile number steadily increasing.The text was updated successfully, but these errors were encountered: