moethu/webg3n

master branch compiles but crashes on first connection

winwisely99 opened this issue · 3 comments


brew install libvorbis openal-soft
go run main.go

From the browser on port 8000 i clicks Connect to Server and it blew up.

output

cd /Users/apple/workspace/go/src/github.com/moethu/webg3n/ && go run .
# github.com/go-gl/glfw/v3.2/glfw
In file included from ../../../../pkg/mod/github.com/go-gl/glfw@v0.0.0-20190409004039-e6da0acd62b1/v3.2/glfw/c_glfw_darwin.go:8:
../../../../pkg/mod/github.com/go-gl/glfw@v0.0.0-20190409004039-e6da0acd62b1/v3.2/glfw/glfw/src/cocoa_window.m:989:9: warning: multiple methods named 'center' found [-Wobjc-multiple-method-names]
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSCollectionViewCompositionalLayout.h:601:19: note: using
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:312:1: note: also found
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (3 handlers)
[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (3 handlers)
[GIN-debug] GET    /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] POST   /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] PUT    /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] PATCH  /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] HEAD   /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] OPTIONS /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] DELETE /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] CONNECT /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] TRACE  /webg3n                   --> main.serveWebsocket (3 handlers)
[GIN-debug] GET    /                         --> main.home (3 handlers)
Starting HTTP Server on Port 8000
[GIN] 2020/03/08 - 18:54:01 | 200 |    1.203815ms |             ::1 | GET      /
[GIN] 2020/03/08 - 18:54:01 | 200 |    9.145224ms |             ::1 | GET      /static/style.css
[GIN] 2020/03/08 - 18:54:01 | 200 |    6.262736ms |             ::1 | GET      /static/webg3n.js
[GIN] 2020/03/08 - 18:54:01 | 200 |    3.265587ms |             ::1 | GET      /static/popper.min.js
[GIN] 2020/03/08 - 18:54:01 | 200 |    3.515273ms |             ::1 | GET      /static/bootstrap.min.js
[GIN] 2020/03/08 - 18:54:01 | 200 |   10.456957ms |             ::1 | GET      /static/bootstrap.min.css
[GIN] 2020/03/08 - 18:54:01 | 200 |    9.395575ms |             ::1 | GET      /static/jquery.js
[GIN] 2020/03/08 - 18:54:02 | 404 |         773ns |             ::1 | GET      /favicon.ico
[GIN] 2020/03/08 - 18:54:08 | 200 |     334.909µs |             ::1 | GET      /webg3n?h=563&w=1180
2020-03-08 18:54:08.468 webg3n[16517:4007909] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /BuildRoot/Library/Caches/com.apple.xbs/Sources/Foundation/Foundation-1674.114/Foundation/Misc.subproj/NSUndoManager.m:363
2020-03-08 18:54:08.471 webg3n[16517:4007909] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.'
*** First throw call stack:
(
        0   CoreFoundation                      0x00007fff2d5f58ab __exceptionPreprocess + 250
        1   libobjc.A.dylib                     0x00007fff638af805 objc_exception_throw + 48
        2   CoreFoundation                      0x00007fff2d61ed10 +[NSException raise:format:arguments:] + 88
        3   Foundation                          0x00007fff2fd17241 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191
        4   Foundation                          0x00007fff2fc55d5e +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 440
        5   AppKit                              0x00007fff2a72e16c -[NSApplication run] + 864
        6   webg3n                              0x00000000046d578b initializeAppKit + 1403
        7   webg3n                              0x00000000046d7331 _glfwPlatformCreateStandardCursor + 17
        8   webg3n                              0x00000000046cdbfd glfwCreateStandardCursor + 77
        9   webg3n                              0x00000000046d7c3c _cgo_e91ead9994e1_Cfunc_glfwCreateStandardCursor + 28
        10  webg3n                              0x0000000004067100 runtime.asmcgocall + 112
)
libc++abi.dylib: terminating with uncaught exception of type NSException
SIGABRT: abort
PC=0x7fff64d647fa m=4 sigcode=0
signal arrived during cgo execution

goroutine 25 [syscall, locked to thread]:
runtime.cgocall(0x46d7c20, 0xc000053c80, 0xc000053c88)
        /usr/local/opt/go/libexec/src/runtime/cgocall.go:133 +0x5b fp=0xc000053c50 sp=0xc000053c18 pc=0x400581b
github.com/go-gl/glfw/v3.2/glfw._Cfunc_glfwCreateStandardCursor(0xc000036001, 0x0)
        _cgo_gotypes.go:523 +0x4a fp=0xc000053c80 sp=0xc000053c50 pc=0x4365f2a
github.com/go-gl/glfw/v3.2/glfw.CreateStandardCursor(0x36001, 0xc0000e60f0)
        /Users/apple/workspace/go/pkg/mod/github.com/go-gl/glfw@v0.0.0-20190409004039-e6da0acd62b1/v3.2/glfw/input.go:434 +0x2e fp=0xc000053cc0 sp=0xc000053c80 pc=0x436b85e
github.com/g3n/engine/window.Glfw(0x47ae220, 0x5080980, 0x0, 0x0)
        /Users/apple/workspace/go/pkg/mod/github.com/moethu/engine@v0.0.0-20190918211458-57b17b524856/window/glfw.go:92 +0xfa fp=0xc000053d60 sp=0xc000053cc0 pc=0x437c2ca
github.com/g3n/engine/window.Manager(...)
        /Users/apple/workspace/go/pkg/mod/github.com/moethu/engine@v0.0.0-20190918211458-57b17b524856/window/window.go:331
github.com/g3n/engine/util/application.Create(0x489c4b5, 0x14, 0x233, 0x49c, 0x0, 0xc00025a0c0, 0x24, 0x0, 0x1, 0x1e, ...)
        /Users/apple/workspace/go/pkg/mod/github.com/moethu/engine@v0.0.0-20190918211458-57b17b524856/util/application/application.go:115 +0x353 fp=0xc000053e60 sp=0xc000053d60 pc=0x46bdc33
github.com/moethu/webg3n/renderer.LoadRenderingApp(0xc00026c000, 0xc00025a0c0, 0x24, 0x233, 0x49c, 0xc00023a120, 0xc00023a180, 0xc000230500, 0x14)
        /Users/apple/workspace/go/src/github.com/moethu/webg3n/renderer/renderer.go:85 +0xb7 fp=0xc000053f98 sp=0xc000053e60 pc=0x46c55b7
runtime.goexit()
        /usr/local/opt/go/libexec/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000053fa0 sp=0xc000053f98 pc=0x40679a1
created by main.serveWebsocket
        /Users/apple/workspace/go/src/github.com/moethu/webg3n/server.go:140 +0x42e

goroutine 1 [chan receive]:
main.main()
        /Users/apple/workspace/go/src/github.com/moethu/webg3n/main.go:51 +0x32a

goroutine 9 [IO wait]:
internal/poll.runtime_pollWait(0x2d600ee8, 0x72, 0x0)
        /usr/local/opt/go/libexec/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc000156018, 0x72, 0x0, 0x0, 0x48905ae)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc000156000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/internal/poll/fd_unix.go:384 +0x1d4
net.(*netFD).accept(0xc000156000, 0xaba8deb68bdce80, 0x7a8668bdce80, 0x100000001)
        /usr/local/opt/go/libexec/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc00000e040, 0x5e653140, 0xc000051de0, 0x4087c66)
        /usr/local/opt/go/libexec/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc00000e040, 0xc000051e30, 0x18, 0xc000154000, 0x42dec7c)
        /usr/local/opt/go/libexec/src/net/tcpsock.go:261 +0x64
net/http.(*Server).Serve(0xc0001a00e0, 0x49cd1a0, 0xc00000e040, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/net/http/server.go:2901 +0x25d
net/http.(*Server).ListenAndServe(0xc0001a00e0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/net/http/server.go:2830 +0xb7
main.main.func1(0xc0001a00e0)
        /Users/apple/workspace/go/src/github.com/moethu/webg3n/main.go:39 +0x2f
created by main.main
        /Users/apple/workspace/go/src/github.com/moethu/webg3n/main.go:38 +0x280

goroutine 10 [syscall]:
os/signal.signal_recv(0x0)
        /usr/local/opt/go/libexec/src/runtime/sigqueue.go:144 +0x96
os/signal.loop()
        /usr/local/opt/go/libexec/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.Notify.func1
        /usr/local/opt/go/libexec/src/os/signal/signal.go:127 +0x44

goroutine 50 [IO wait]:
internal/poll.runtime_pollWait(0x2d600e08, 0x72, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc000156098, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000156080, 0xc000151000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/internal/poll/fd_unix.go:169 +0x201
net.(*netFD).Read(0xc000156080, 0xc000151000, 0x1000, 0x1000, 0x40877aa, 0x7b10a133ce0c, 0x0)
        /usr/local/opt/go/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000098028, 0xc000151000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/net/net.go:184 +0x8e
net/http.(*connReader).Read(0xc00007b530, 0xc000151000, 0x1000, 0x1000, 0xbf916ac46ceb67a8, 0x91b2ecc9c5, 0x5051fa0)
        /usr/local/opt/go/libexec/src/net/http/server.go:786 +0xf4
bufio.(*Reader).fill(0xc0002067e0)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:100 +0x103
bufio.(*Reader).Peek(0xc0002067e0, 0x4, 0x91b2ecc9c5, 0x5051fa0, 0x0, 0x0, 0x5051fa0)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).serve(0xc0001ce000, 0x49cf0a0, 0xc000068440)
        /usr/local/opt/go/libexec/src/net/http/server.go:1920 +0x9d7
created by net/http.(*Server).Serve
        /usr/local/opt/go/libexec/src/net/http/server.go:2933 +0x35c

goroutine 51 [IO wait]:
internal/poll.runtime_pollWait(0x2d600d28, 0x72, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc000156118, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000156100, 0xc00037c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/internal/poll/fd_unix.go:169 +0x201
net.(*netFD).Read(0xc000156100, 0xc00037c000, 0x1000, 0x1000, 0x40877aa, 0x7b10a1351cd4, 0x0)
        /usr/local/opt/go/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000098030, 0xc00037c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/net/net.go:184 +0x8e
net/http.(*connReader).Read(0xc000200450, 0xc00037c000, 0x1000, 0x1000, 0xbf916ac46cda96f8, 0x91b2dbfbc3, 0x5051fa0)
        /usr/local/opt/go/libexec/src/net/http/server.go:786 +0xf4
bufio.(*Reader).fill(0xc00010a360)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:100 +0x103
bufio.(*Reader).Peek(0xc00010a360, 0x4, 0x91b2dbfbc3, 0x5051fa0, 0x0, 0x0, 0x5051fa0)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).serve(0xc0001ce140, 0x49cf0a0, 0xc00009c040)
        /usr/local/opt/go/libexec/src/net/http/server.go:1920 +0x9d7
created by net/http.(*Server).Serve
        /usr/local/opt/go/libexec/src/net/http/server.go:2933 +0x35c

goroutine 38 [IO wait]:
internal/poll.runtime_pollWait(0x2d600c48, 0x72, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc0000ac218, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000ac200, 0xc0000ec000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/internal/poll/fd_unix.go:169 +0x201
net.(*netFD).Read(0xc0000ac200, 0xc0000ec000, 0x1000, 0x1000, 0x40877aa, 0x7b10a14dbe67, 0x0)
        /usr/local/opt/go/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0000100b0, 0xc0000ec000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/net/net.go:184 +0x8e
net/http.(*connReader).Read(0xc000092660, 0xc0000ec000, 0x1000, 0x1000, 0xbf916ac46cf51c08, 0x91b2f67f58, 0x5051fa0)
        /usr/local/opt/go/libexec/src/net/http/server.go:786 +0xf4
bufio.(*Reader).fill(0xc0000904e0)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:100 +0x103
bufio.(*Reader).Peek(0xc0000904e0, 0x4, 0x91b2f67f58, 0x5051fa0, 0x0, 0x0, 0x5051fa0)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).serve(0xc0000ea000, 0x49cf0a0, 0xc0001e2a40)
        /usr/local/opt/go/libexec/src/net/http/server.go:1920 +0x9d7
created by net/http.(*Server).Serve
        /usr/local/opt/go/libexec/src/net/http/server.go:2933 +0x35c

goroutine 40 [IO wait]:
internal/poll.runtime_pollWait(0x2d600b68, 0x72, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc0000ac398, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000ac380, 0xc00022a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/internal/poll/fd_unix.go:169 +0x201
net.(*netFD).Read(0xc0000ac380, 0xc00022a000, 0x1000, 0x1000, 0x40877aa, 0x7b10a16543a3, 0x0)
        /usr/local/opt/go/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0000100c8, 0xc00022a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/net/net.go:184 +0x8e
net/http.(*connReader).Read(0xc000222030, 0xc00022a000, 0x1000, 0x1000, 0xbf916ac46cdc5448, 0x91b2ddb78c, 0x5051fa0)
        /usr/local/opt/go/libexec/src/net/http/server.go:786 +0xf4
bufio.(*Reader).fill(0xc000228000)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:100 +0x103
bufio.(*Reader).Peek(0xc000228000, 0x4, 0x91b2ddb78c, 0x5051fa0, 0x0, 0x0, 0x5051fa0)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).serve(0xc0000ea0a0, 0x49cf0a0, 0xc000224000)
        /usr/local/opt/go/libexec/src/net/http/server.go:1920 +0x9d7
created by net/http.(*Server).Serve
        /usr/local/opt/go/libexec/src/net/http/server.go:2933 +0x35c

goroutine 20 [IO wait]:
internal/poll.runtime_pollWait(0x2d600a88, 0x72, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc000232118, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000232100, 0xc000258000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/internal/poll/fd_unix.go:169 +0x201
net.(*netFD).Read(0xc000232100, 0xc000258000, 0x1000, 0x1000, 0x40877aa, 0x7b10befc87b9, 0x0)
        /usr/local/opt/go/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00022c018, 0xc000258000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/net/net.go:184 +0x8e
net/http.(*connReader).Read(0xc000222240, 0xc000258000, 0x1000, 0x1000, 0xbf916ac48e7bdaf0, 0x91d017cd71, 0x5051fa0)
        /usr/local/opt/go/libexec/src/net/http/server.go:786 +0xf4
bufio.(*Reader).fill(0xc000228180)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:100 +0x103
bufio.(*Reader).Peek(0xc000228180, 0x4, 0x91d017cd71, 0x5051fa0, 0x0, 0x0, 0x5051fa0)
        /usr/local/opt/go/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).serve(0xc00024c000, 0x49cf0a0, 0xc000224200)
        /usr/local/opt/go/libexec/src/net/http/server.go:1920 +0x9d7
created by net/http.(*Server).Serve
        /usr/local/opt/go/libexec/src/net/http/server.go:2933 +0x35c

goroutine 21 [IO wait]:
internal/poll.runtime_pollWait(0x2d6009a8, 0x72, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc000232198, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/opt/go/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000232180, 0xc000256000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/opt/go/libexec/src/internal/poll/fd_unix.go:169 +0x201
net.(*netFD).Read(0xc0002321

Hi, are you building on MacOS?
I found this issue being related to missing openGL support on MacOS
google/dart-glfw#13

I'll label this as invalid, since macOS has deprecated OpenGL