Giter Club home page Giter Club logo

Comments (4)

changkun avatar changkun commented on May 27, 2024

Debugging:

  1. Run the server
  2. Attach to running process:
$ docker exec -it occamy /bin/bash                                                                                                               [11:24:35]
[root@585e16728f8a occamy] gdb attach 1 -ex cont
  1. Run the test:
package tests

import (
	"fmt"
	"sync"
	"testing"

	"github.com/gorilla/websocket"
)

var (
	urlVNC = "ws://0.0.0.0:5636/api/v1/connect?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzI5NTMwOTEsImhvc3QiOiIxNzIuMTYuMjM4LjExOjU5MDEiLCJvcmlnX2lhdCI6MTU3Mjk0OTQ5MSwicGFzc3dvcmQiOiJ2bmNwYXNzd29yZCIsInByb3RvY29sIjoidm5jIiwidXNlcm5hbWUiOiIifQ.hc39gN1Y-JQeRaVaBXtK_0cggOi8tM2UQ9lYgg6no7A"
)

func successConnect(url string) error {
	conn, _, err := websocket.DefaultDialer.Dial(url, nil)
	if err != nil {
		return fmt.Errorf("connect: dial failed, err: %v", err)
	}
	for i := 0; i < 50; i++ {
		_, data, err := conn.ReadMessage()
		if err != nil {
			fmt.Println("client: ", err)
			return nil
		}
		// fmt.Println("server: ", string(data))
		if len(data) > 6 && string(data[0:6]) == "4.sync" {
			fmt.Println("client: ", string(data))
			conn.WriteMessage(websocket.TextMessage, data)
			continue
		}
		if len(data) > 5 && string(data[0:5]) == "3.nop" {
			fmt.Println("client: ", string(data))
			conn.WriteMessage(websocket.TextMessage, data)
			continue
		}
		if len(data) > 12 && string(data[0:12]) == "10.disconnect" {
			fmt.Println("client: ", string(data))
			conn.WriteMessage(websocket.TextMessage, data)
			return nil
		}
	}
	conn.WriteMessage(websocket.TextMessage, []byte("10.disconnect;"))
	fmt.Println("client: 10.disconnect;")
	fmt.Println("close connection... Done.")
	return conn.Close()
}

const (
	maxc = 2
)

func TestConnectionPressure(t *testing.T) {
	var wg sync.WaitGroup
	for i := 1; i <= maxc; i++ {
		wg.Add(1)
		// time.Sleep(time.Second)
		go func(i int) {
			err := successConnect(urlVNC)
			if err != nil {
				fmt.Println("err: ", err)
			}
			wg.Done()
		}(i)
	}
	wg.Wait()
}
...
warning: File "/usr/local/go/src/runtime/runtime-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load:/usr/bin/mono-gdb.py".
To enable execution of this file add
        add-auto-load-safe-path /usr/local/go/src/runtime/runtime-gdb.py
line to your configuration file "/root/.gdbinit".
To completely disable this security protection add
        set auto-load safe-path /
line to your configuration file "/root/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
        info "(gdb)Auto-loading safe path"
Continuing.
[New Thread 0x7ff9ada3f700 (LWP 41)]
[New Thread 0x7ff99ffff700 (LWP 40)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff9c2fad700 (LWP 9)]
0x00007ff9cbcd1cc0 in pthread_mutex_lock () from /lib64/libpthread.so.0
Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.6-13.el7.x86_64 cairo-1.15.12-4.el7.x86_64 dbus-libs-1.10.24-13.el7_6.x86_64 elfutils-libelf-0.176-2.el7.x86_64 elfutils-libs-0.176-2.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 flac-libs-1.3.0-5.el7_1.x86_64 fontconfig-2.13.0-4.3.el7.x86_64 freetype-2.8-14.el7.x86_64 glibc-2.17-292.el7.x86_64 gmp-6.0.0-15.el7.x86_64 gnutls-3.3.29-9.el7_6.x86_64 gsm-1.0.13-11.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libICE-1.0.9-9.el7.x86_64 libSM-1.2.2-2.el7.x86_64 libX11-1.6.7-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXext-1.3.3-3.el7.x86_64 libXi-1.7.9-1.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libXtst-1.2.3-1.el7.x86_64 libasyncns-0.8-7.el7.x86_64 libattr-2.4.46-13.el7.x86_64 libcap-2.22-10.el7.x86_64 libcom_err-1.42.9-16.el7.x86_64 libffi-3.0.13-18.el7.x86_64 libgcc-4.8.5-39.el7.x86_64 libgcrypt-1.5.3-14.el7.x86_64 libglvnd-1.0.1-0.8.git5baa1e5.el7.x86_64 libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64 libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64 libgpg-error-1.12-3.el7.x86_64 libjpeg-turbo-1.2.90-8.el7.x86_64 libogg-1.3.0-7.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.5-14.1.el7.x86_64 libsndfile-1.0.25-10.el7.x86_64 libtasn1-4.10-1.el7.x86_64 libuuid-2.23.2-61.el7.x86_64 libvncserver-0.9.9-13.el7_6.x86_64 libvorbis-1.3.3-8.el7.1.x86_64 libwebp-0.3.0-7.el7.x86_64 libxcb-1.13-1.el7.x86_64 lz4-1.7.5-3.el7.x86_64 lzo-minilzo-2.06-8.el7.x86_64 nettle-2.7.1-8.el7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 p11-kit-0.23.5-3.el7.x86_64 pcre-8.32-17.el7.x86_64 pixman-0.34.0-1.el7.x86_64 pulseaudio-libs-10.0-5.el7.x86_64 systemd-libs-219-67.el7_7.2.x86_64 tcp_wrappers-libs-7.6-77.el7.x86_64 uuid-1.6.2-26.el7.x86_64 xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) bt
#0  0x00007ff9cbcd1cc0 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007ff9c05a0bd3 in guac_common_display_dup (display=0x0, user=user@entry=0x7ff9900008c0, socket=0x7ff990000b60) at display.c:169
#2  0x00007ff9c059fbd7 in guac_vnc_user_join_handler (user=0x7ff9900008c0, argc=<optimized out>, argv=0x7ff9900048a0) at user.c:87
#3  0x00007ff9cbeeafc8 in guac_client_add_user (client=client@entry=0x7ff9a4000bb0, user=user@entry=0x7ff9900008c0, argc=22, argv=<optimized out>)
    at client.c:307
#4  0x00007ff9cbef2311 in guac_user_handle_connection (user=0x7ff9900008c0, usec_timeout=15000000) at user-handshake.c:414
#5  0x00000000009f6cca in _cgo_e9e34657347d_Cfunc_guac_user_handle_connection (v=0xc000143de0) at cgo-gcc-prolog:84
#6  0x00000000004607c0 in runtime.asmcgocall () at /usr/local/go/src/runtime/asm_amd64.s:655
#7  0x0000000000438fcd in runtime.park_m (gp=0xc000001e00) at /usr/local/go/src/runtime/proc.go:2610
#8  0x000000c00008a600 in ?? ()
#9  0x000000c000001e00 in ?? ()
#10 0x0000000000000000 in ?? ()
(gdb)

from occamy.

changkun avatar changkun commented on May 27, 2024

the variable display=0x0 seems become the cause of the problem.

from occamy.

changkun avatar changkun commented on May 27, 2024

There are still some of the panics:

occamy    | [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
occamy    |
occamy    | [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
occamy    |  - using env:       export GIN_MODE=release
occamy    |  - using code:      gin.SetMode(gin.ReleaseMode)
occamy    |
occamy    | [GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (3 handlers)
occamy    | [GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (3 handlers)
occamy    | [GIN-debug] GET    /api/v1/ping              --> github.com/changkun/occamy/server.(*proxy).routers.func3 (3 handlers)
occamy    | [GIN-debug] POST   /api/v1/login             --> github.com/appleboy/gin-jwt/v2.(*GinJWTMiddleware).LoginHandler-fm (3 handlers)
occamy    | [GIN-debug] GET    /api/v1/connect           --> github.com/changkun/occamy/server.(*proxy).serveWS-fm (4 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/             --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/cmdline      --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/profile      --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] POST   /debug/pprof/symbol       --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/symbol       --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/trace        --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/block        --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/goroutine    --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/heap         --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/mutex        --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | [GIN-debug] GET    /debug/pprof/threadcreate --> github.com/changkun/occamy/server.profile.func1.1 (3 handlers)
occamy    | time="2019-11-05T12:32:12Z" level=info msg="occamy-proxy: starting at http://0.0.0.0:5636..."
occamy    | [GIN] 2019/11/05 - 12:32:50 | 200 |       621.9µs |    172.16.238.1 | POST     /api/v1/login
occamy    | time="2019-11-05T12:32:50Z" level=info msg="occamy-proxy: new session was created: $7609bbb6-073f-42f1-ad11-7cd1aabd891e"
occamy    | occamy-lib[140088726476544]: Cursor rendering: local
occamy    | occamy-lib[140088726476544]: User "@eb5f9b9b-6c0a-4d1c-9a30-916e7c97de1e" joined connection "$7609bbb6-073f-42f1-ad11-7cd1aabd891e" (1 users now present)
occamy    | [GIN] 2019/11/05 - 12:32:56 | 200 |       117.9µs |    172.16.238.1 | POST     /api/v1/login
occamy    | time="2019-11-05T12:32:56Z" level=info msg="occamy-proxy: new session was created: $9038d3e7-5627-4f27-a183-e83e41ee2e89"
occamy    | occamy-lib[140088751654656]: No security mode specified. Defaulting to RDP.
occamy    | occamy-lib[140088751654656]: Resize method: none
occamy    | occamy-lib[140088751654656]: User "@bf3db162-24fc-43cc-8f66-6f5bc7704401" joined connection "$9038d3e7-5627-4f27-a183-e83e41ee2e89" (1 users now present)
occamy    | occamy-lib[140088040560384]: Loading keymap "base"
occamy    | occamy-lib[140088040560384]: Loading keymap "en-us-qwerty"
occamy    | occamy-lib[140088040560384]: Failed to load guacdr plugin. Drive redirection and printing will not work. Sound MAY not work.
occamy    | occamy-lib[140088040560384]: Failed to load guacsnd alongside guacdr plugin. Sound will not work. Drive redirection and printing MAY not work.
occamy    | [GIN] 2019/11/05 - 12:33:01 | 200 |      2.5902ms |    172.16.238.1 | POST     /api/v1/login
occamy    | time="2019-11-05T12:33:01Z" level=info msg="occamy-proxy: new session was created: $6127baa5-7e8c-4e97-8820-e7b6e2093abe"
occamy    | occamy-lib[140087773869824]: User "@7d7c4a76-9613-42ef-bb97-224d415c49a8" joined connection "$6127baa5-7e8c-4e97-8820-e7b6e2093abe" (1 users now present)
occamy    | occamy-lib[140087404787456]: No known host keys provided, host identity will not be verified.
occamy    | occamy-lib[140087404787456]: SSH connection successful.
occamy    | fatal error: unexpected signal during runtime execution
occamy    | [signal SIGSEGV: segmentation violation code=0x2 addr=0x7f68a8000088 pc=0x7f68a8000088]
occamy    |
occamy    | runtime stack:
occamy    | runtime.throw(0xb8a798, 0x2a)
occamy    |     /usr/local/go/src/runtime/panic.go:774 +0x72
occamy    | runtime.sigpanic()
occamy    |     /usr/local/go/src/runtime/signal_unix.go:378 +0x47c
occamy    |
occamy    | goroutine 12 [syscall]:
occamy    | runtime.cgocall(0x9f6e90, 0xc000043710, 0x44375f)
occamy    |     /usr/local/go/src/runtime/cgocall.go:128 +0x5b fp=0xc0000436e0 sp=0xc0000436a8 pc=0x4050bb
occamy    | github.com/changkun/occamy/lib._Cfunc_guac_user_handle_connection(0x7f68a8053f00, 0x7f6800e4e1c0, 0x0)
occamy    |     _cgo_gotypes.go:385 +0x4d fp=0xc000043710 sp=0xc0000436e0 pc=0x9f011d
occamy    | github.com/changkun/occamy/lib.(*User).HandleConnection.func1(0xc0000aa500, 0x12c8f20)
occamy    |     /go/src/github.com/changkun/occamy/lib/user.go:59 +0x66 fp=0xc000043750 sp=0xc000043710 pc=0x9f1246
occamy    | github.com/changkun/occamy/lib.(*User).HandleConnection(0xc0000aa500, 0xc0000ba0a0, 0x7f68f13f40f8)
occamy    |     /go/src/github.com/changkun/occamy/lib/user.go:59 +0x2f fp=0xc000043780 sp=0xc000043750 pc=0x9f0c6f
occamy    | github.com/changkun/occamy/server.(*Session).Join.func1(0xc0000aa500)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:93 +0x2f fp=0xc0000437d8 sp=0xc000043780 pc=0x9f623f
occamy    | runtime.goexit()
occamy    |     /usr/local/go/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc0000437e0 sp=0xc0000437d8 pc=0x461041
occamy    | created by github.com/changkun/occamy/server.(*Session).Join
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:92 +0x533
occamy    |
occamy    | goroutine 1 [IO wait, locked to thread]:
occamy    | internal/poll.runtime_pollWait(0x7f68f13f3ed8, 0x72, 0x0)
occamy    |     /usr/local/go/src/runtime/netpoll.go:184 +0x55
occamy    | internal/poll.(*pollDesc).wait(0xc0001f8198, 0x72, 0x0, 0x0, 0xb740e7)
occamy    |     /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
occamy    | internal/poll.(*pollDesc).waitRead(...)
occamy    |     /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
occamy    | internal/poll.(*FD).Accept(0xc0001f8180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
occamy    |     /usr/local/go/src/internal/poll/fd_unix.go:384 +0x1f8
occamy    | net.(*netFD).accept(0xc0001f8180, 0xc000185c60, 0x6d91a4, 0xc00022e180)
occamy    |     /usr/local/go/src/net/fd_unix.go:238 +0x42
occamy    | net.(*TCPListener).accept(0xc000114620, 0x5dc16bfd, 0xc000185c60, 0x484806)
occamy    |     /usr/local/go/src/net/tcpsock_posix.go:139 +0x32
occamy    | net.(*TCPListener).Accept(0xc000114620, 0xc000185cb0, 0x18, 0xc000000180, 0x6d86be)
occamy    |     /usr/local/go/src/net/tcpsock.go:261 +0x47
occamy    | net/http.(*Server).Serve(0xc00022e0e0, 0xc84960, 0xc000114620, 0x0, 0x0)
occamy    |     /usr/local/go/src/net/http/server.go:2896 +0x286
occamy    | net/http.(*Server).ListenAndServe(0xc00022e0e0, 0x4, 0xb8803d)
occamy    |     /usr/local/go/src/net/http/server.go:2825 +0xb7
occamy    | github.com/changkun/occamy/server.(*proxy).serve(0xc000114280)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:71 +0x1ec
occamy    | github.com/changkun/occamy/server.Run()
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:43 +0xfa
occamy    | main.main()
occamy    |     /go/src/github.com/changkun/occamy/occamy.go:18 +0x20
occamy    |
occamy    | goroutine 20 [syscall]:
occamy    | os/signal.signal_recv(0x0)
occamy    |     /usr/local/go/src/runtime/sigqueue.go:147 +0x9c
occamy    | os/signal.loop()
occamy    |     /usr/local/go/src/os/signal/signal_unix.go:23 +0x22
occamy    | created by os/signal.init.0
occamy    |     /usr/local/go/src/os/signal/signal_unix.go:29 +0x41
occamy    |
occamy    | goroutine 34 [chan receive]:
occamy    | github.com/changkun/occamy/server.(*proxy).serve.func1(0xc00022e0e0)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:62 +0xe0
occamy    | created by github.com/changkun/occamy/server.(*proxy).serve
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:59 +0x14f
occamy    |
occamy    | goroutine 36 [IO wait]:
occamy    | internal/poll.runtime_pollWait(0x7f68f13f3d38, 0x72, 0xffffffffffffffff)
occamy    |     /usr/local/go/src/runtime/netpoll.go:184 +0x55
occamy    | internal/poll.(*pollDesc).wait(0xc0001f8298, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
occamy    |     /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
occamy    | internal/poll.(*pollDesc).waitRead(...)
occamy    |     /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
occamy    | internal/poll.(*FD).Read(0xc0001f8280, 0xc00021f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
occamy    |     /usr/local/go/src/internal/poll/fd_unix.go:169 +0x1cf
occamy    | net.(*netFD).Read(0xc0001f8280, 0xc00021f000, 0x1000, 0x1000, 0xc0002799e8, 0x4cb79d, 0xc0001f8280)
occamy    |     /usr/local/go/src/net/fd_unix.go:202 +0x4f
occamy    | net.(*conn).Read(0xc000118110, 0xc00021f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
occamy    |     /usr/local/go/src/net/net.go:184 +0x68
occamy    | net/http.(*connReader).Read(0xc000112ed0, 0xc00021f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
occamy    |     /usr/local/go/src/net/http/server.go:785 +0xf4
occamy    | bufio.(*Reader).fill(0xc000110cc0)
occamy    |     /usr/local/go/src/bufio/bufio.go:100 +0x103
occamy    | bufio.(*Reader).Peek(0xc000110cc0, 0x4, 0x0, 0x0, 0x0, 0x0, 0xc63fd2)
occamy    |     /usr/local/go/src/bufio/bufio.go:138 +0x4f
occamy    | net/http.(*conn).readRequest(0xc0001e63c0, 0xc86620, 0xc0001c63c0, 0x0, 0x0, 0x0)
occamy    |     /usr/local/go/src/net/http/server.go:962 +0xb3b
occamy    | net/http.(*conn).serve(0xc0001e63c0, 0xc86620, 0xc0001c63c0)
occamy    |     /usr/local/go/src/net/http/server.go:1817 +0x6d4
occamy    | created by net/http.(*Server).Serve
occamy    |     /usr/local/go/src/net/http/server.go:2927 +0x38e
occamy    |
occamy    | goroutine 38 [chan receive, locked to thread]:
occamy    | github.com/changkun/occamy/server.(*Session).serveIO(0xc0001138c0, 0xc000114c00, 0xc000272840, 0xc00027b668, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:208 +0x11b
occamy    | github.com/changkun/occamy/server.(*Session).Join(0xc0001138c0, 0xc000272840, 0xc00027b668, 0x1, 0xc00027b560, 0x0, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:110 +0x691
occamy    | github.com/changkun/occamy/server.(*proxy).routeConn(0xc000114280, 0xc000272840, 0xc00027b668, 0x8, 0xc000216cf8)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:219 +0x268
occamy    | github.com/changkun/occamy/server.(*proxy).serveWS(0xc000114280, 0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:195 +0x447
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/appleboy/gin-jwt/v2.(*GinJWTMiddleware).middlewareImpl(0xc000216120, 0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/appleboy/gin-jwt/v2/auth_jwt.go:382 +0x2bf
occamy    | github.com/appleboy/gin-jwt/v2.(*GinJWTMiddleware).MiddlewareFunc.func1(0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/appleboy/gin-jwt/v2/auth_jwt.go:344 +0x34
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.RecoveryWithWriter.func1(0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/recovery.go:83 +0x64
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/logger.go:240 +0xe1
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0001e83c0, 0xc00021c0b0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/gin.go:389 +0x5b2
occamy    | github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0001e83c0, 0xc84c20, 0xc00022e2a0, 0xc00028c000)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/gin.go:351 +0x134
occamy    | net/http.serverHandler.ServeHTTP(0xc00022e0e0, 0xc84c20, 0xc00022e2a0, 0xc00028c000)
occamy    |     /usr/local/go/src/net/http/server.go:2802 +0xa4
occamy    | net/http.(*conn).serve(0xc0001e6500, 0xc86620, 0xc0001c6540)
occamy    |     /usr/local/go/src/net/http/server.go:1890 +0x875
occamy    | created by net/http.(*Server).Serve
occamy    |     /usr/local/go/src/net/http/server.go:2927 +0x38e
occamy    |
occamy    | goroutine 40 [syscall]:
occamy    | github.com/changkun/occamy/lib._Cfunc_guac_user_handle_connection(0x7f68e402d840, 0x7f6800e4e1c0, 0x0)
occamy    |     _cgo_gotypes.go:385 +0x4d
occamy    | github.com/changkun/occamy/lib.(*User).HandleConnection.func1(0xc000114be0, 0x12c8f20)
occamy    |     /go/src/github.com/changkun/occamy/lib/user.go:59 +0x66
occamy    | github.com/changkun/occamy/lib.(*User).HandleConnection(0xc000114be0, 0xc0001ca5a0, 0x7f68f13f40f8)
occamy    |     /go/src/github.com/changkun/occamy/lib/user.go:59 +0x2f
occamy    | github.com/changkun/occamy/server.(*Session).Join.func1(0xc000114be0)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:93 +0x2f
occamy    | created by github.com/changkun/occamy/server.(*Session).Join
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:92 +0x533
occamy    |
occamy    | goroutine 5 [syscall]:
occamy    | syscall.Syscall(0x0, 0xa, 0xc0002a0000, 0x2000, 0xc0002281c0, 0xc66311, 0xb9c301)
occamy    |     /usr/local/go/src/syscall/asm_linux_amd64.s:18 +0x5
occamy    | syscall.read(0xa, 0xc0002a0000, 0x2000, 0x2000, 0xc000272840, 0xc00029200c, 0x14)
occamy    |     /usr/local/go/src/syscall/zsyscall_linux_amd64.go:732 +0x5a
occamy    | syscall.Read(...)
occamy    |     /usr/local/go/src/syscall/syscall_unix.go:183
occamy    | github.com/changkun/occamy/protocol.IO.Read(0xa, 0xc0002a0000, 0x2000, 0x2000, 0xc0002505a0, 0x9e2d57, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/protocol/io.go:21 +0x49
occamy    | bufio.(*Reader).fill(0xc000111200)
occamy    |     /usr/local/go/src/bufio/bufio.go:100 +0x103
occamy    | bufio.(*Reader).ReadSlice(0xc000111200, 0xc0002a003b, 0x12, 0xc000272840, 0xc000250758, 0x9e502c, 0xc000250728)
occamy    |     /usr/local/go/src/bufio/bufio.go:359 +0x3d
occamy    | bufio.(*Reader).ReadBytes(0xc000111200, 0x3b, 0xc0001f4160, 0x12, 0x12, 0x0, 0x0)
occamy    |     /usr/local/go/src/bufio/bufio.go:437 +0x73
occamy    | github.com/changkun/occamy/protocol.(*InstructionIO).ReadRaw(...)
occamy    |     /go/src/github.com/changkun/occamy/protocol/instruction.go:148
occamy    | github.com/changkun/occamy/server.(*Session).serveIO.func1(0xc00006c2a0, 0xc00002a340, 0xc000114c00, 0xc000272840)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:181 +0x41
occamy    | created by github.com/changkun/occamy/server.(*Session).serveIO
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:178 +0xb8
occamy    |
occamy    | goroutine 6 [runnable]:
occamy    | syscall.Syscall(0x0, 0x7, 0xc000290000, 0x2000, 0x8, 0x2000, 0x0)
occamy    |     /usr/local/go/src/syscall/asm_linux_amd64.s:18 +0x5
occamy    | syscall.read(0x7, 0xc000290000, 0x2000, 0x2000, 0x0, 0xc77e40, 0x126e0c0)
occamy    |     /usr/local/go/src/syscall/zsyscall_linux_amd64.go:732 +0x5a
occamy    | syscall.Read(...)
occamy    |     /usr/local/go/src/syscall/syscall_unix.go:183
occamy    | internal/poll.(*FD).Read(0xc0001f8480, 0xc000290000, 0x2000, 0x2000, 0x0, 0x0, 0x0)
occamy    |     /usr/local/go/src/internal/poll/fd_unix.go:165 +0x164
occamy    | net.(*netFD).Read(0xc0001f8480, 0xc000290000, 0x2000, 0x2000, 0x18, 0x0, 0x0)
occamy    |     /usr/local/go/src/net/fd_unix.go:202 +0x4f
occamy    | net.(*conn).Read(0xc000118190, 0xc000290000, 0x2000, 0x2000, 0x0, 0x0, 0x0)
occamy    |     /usr/local/go/src/net/net.go:184 +0x68
occamy    | bufio.(*Reader).fill(0xc0001111a0)
occamy    |     /usr/local/go/src/bufio/bufio.go:100 +0x103
occamy    | bufio.(*Reader).Peek(0xc0001111a0, 0x2, 0x4ea389, 0xc00004fd88, 0x43a15f, 0xc000034f00, 0xc00004fd98)
occamy    |     /usr/local/go/src/bufio/bufio.go:138 +0x4f
occamy    | github.com/gorilla/websocket.(*Conn).read(0xc000272840, 0x2, 0xc000034f00, 0xc00004fe18, 0x478290, 0x4762da, 0x1)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gorilla/websocket/conn.go:357 +0x40
occamy    | github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000272840, 0x0, 0x0, 0x1000)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gorilla/websocket/conn.go:787 +0x5c
occamy    | github.com/gorilla/websocket.(*Conn).NextReader(0xc000272840, 0xc0001c66c0, 0x0, 0x0, 0x600, 0x12)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gorilla/websocket/conn.go:947 +0xa0
occamy    | github.com/gorilla/websocket.(*Conn).ReadMessage(0xc000272840, 0xc000238600, 0x12, 0x600, 0x12, 0x0, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gorilla/websocket/conn.go:1028 +0x2f
occamy    | github.com/changkun/occamy/server.(*Session).serveIO.func2(0xc00006c2a0, 0xc00002a340, 0xc000114c00, 0xc000272840)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:196 +0x37
occamy    | created by github.com/changkun/occamy/server.(*Session).serveIO
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:193 +0xfb
occamy    |
occamy    | goroutine 43 [syscall]:
occamy    | github.com/changkun/occamy/lib._Cfunc_guac_user_handle_connection(0x7f68d8006420, 0x7f6800e4e1c0, 0x0)
occamy    |     _cgo_gotypes.go:385 +0x4d
occamy    | github.com/changkun/occamy/lib.(*User).HandleConnection.func1(0xc000114f60, 0x12c8f20)
occamy    |     /go/src/github.com/changkun/occamy/lib/user.go:59 +0x66
occamy    | github.com/changkun/occamy/lib.(*User).HandleConnection(0xc000114f60, 0xc0001ca780, 0x7f68f13f40f8)
occamy    |     /go/src/github.com/changkun/occamy/lib/user.go:59 +0x2f
occamy    | github.com/changkun/occamy/server.(*Session).Join.func1(0xc000114f60)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:93 +0x2f
occamy    | created by github.com/changkun/occamy/server.(*Session).Join
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:92 +0x533
occamy    |
occamy    | goroutine 7 [runnable, locked to thread]:
occamy    | github.com/changkun/occamy/server.(*Session).serveIO(0xc000113e60, 0xc000114f80, 0xc0002731e0, 0xc000275668, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:208 +0x11b
occamy    | github.com/changkun/occamy/server.(*Session).Join(0xc000113e60, 0xc0002731e0, 0xc000275668, 0x1, 0xc000275560, 0x0, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:110 +0x691
occamy    | github.com/changkun/occamy/server.(*proxy).routeConn(0xc000114280, 0xc0002731e0, 0xc000275668, 0x8, 0xc000217618)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:219 +0x268
occamy    | github.com/changkun/occamy/server.(*proxy).serveWS(0xc000114280, 0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:195 +0x447
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/appleboy/gin-jwt/v2.(*GinJWTMiddleware).middlewareImpl(0xc000216120, 0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/appleboy/gin-jwt/v2/auth_jwt.go:382 +0x2bf
occamy    | github.com/appleboy/gin-jwt/v2.(*GinJWTMiddleware).MiddlewareFunc.func1(0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/appleboy/gin-jwt/v2/auth_jwt.go:344 +0x34
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.RecoveryWithWriter.func1(0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/recovery.go:83 +0x64
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/logger.go:240 +0xe1
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0001e83c0, 0xc00021c210)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/gin.go:389 +0x5b2
occamy    | github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0001e83c0, 0xc84c20, 0xc00022e460, 0xc00026c400)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/gin.go:351 +0x134
occamy    | net/http.serverHandler.ServeHTTP(0xc00022e0e0, 0xc84c20, 0xc00022e460, 0xc00026c400)
occamy    |     /usr/local/go/src/net/http/server.go:2802 +0xa4
occamy    | net/http.(*conn).serve(0xc0003c2000, 0xc86620, 0xc00006a300)
occamy    |     /usr/local/go/src/net/http/server.go:1890 +0x875
occamy    | created by net/http.(*Server).Serve
occamy    |     /usr/local/go/src/net/http/server.go:2927 +0x38e
occamy    |
occamy    | goroutine 44 [syscall]:
occamy    | syscall.Syscall(0x0, 0xe, 0xc0003ca000, 0x2000, 0xc000228380, 0xc66311, 0xb9c301)
occamy    |     /usr/local/go/src/syscall/asm_linux_amd64.s:18 +0x5
occamy    | syscall.read(0xe, 0xc0003ca000, 0x2000, 0x2000, 0xc0002731e0, 0xc00029450c, 0x14)
occamy    |     /usr/local/go/src/syscall/zsyscall_linux_amd64.go:732 +0x5a
occamy    | syscall.Read(...)
occamy    |     /usr/local/go/src/syscall/syscall_unix.go:183
occamy    | github.com/changkun/occamy/protocol.IO.Read(0xe, 0xc0003ca000, 0x2000, 0x2000, 0xc000251da0, 0x9e2d57, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/protocol/io.go:21 +0x49
occamy    | bufio.(*Reader).fill(0xc0001114a0)
occamy    |     /usr/local/go/src/bufio/bufio.go:100 +0x103
occamy    | bufio.(*Reader).ReadSlice(0xc0001114a0, 0xc0003ca03b, 0x12, 0xc0002731e0, 0xc000251f58, 0x9e502c, 0xc000251f28)
occamy    |     /usr/local/go/src/bufio/bufio.go:359 +0x3d
occamy    | bufio.(*Reader).ReadBytes(0xc0001114a0, 0x3b, 0xc0001f41e0, 0x12, 0x12, 0x0, 0x0)
occamy    |     /usr/local/go/src/bufio/bufio.go:437 +0x73
occamy    | github.com/changkun/occamy/protocol.(*InstructionIO).ReadRaw(...)
occamy    |     /go/src/github.com/changkun/occamy/protocol/instruction.go:148
occamy    | github.com/changkun/occamy/server.(*Session).serveIO.func1(0xc000111500, 0xc0001e56e0, 0xc000114f80, 0xc0002731e0)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:181 +0x41
occamy    | created by github.com/changkun/occamy/server.(*Session).serveIO
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:178 +0xb8
occamy    |
occamy    | goroutine 10 [syscall, locked to thread]:
occamy    | github.com/changkun/occamy/lib._Cfunc_guac_client_free(0x7f68a8000bb0)
occamy    |     _cgo_gotypes.go:282 +0x41
occamy    | github.com/changkun/occamy/lib.(*Client).Close.func1.2(0xc0000aa480)
occamy    |     /go/src/github.com/changkun/occamy/lib/client.go:91 +0x5e
occamy    | github.com/changkun/occamy/lib.(*Client).Close.func1()
occamy    |     /go/src/github.com/changkun/occamy/lib/client.go:91 +0x3d
occamy    | sync.(*Once).doSlow(0xc0000aa488, 0xc000103310)
occamy    |     /usr/local/go/src/sync/once.go:66 +0xe3
occamy    | sync.(*Once).Do(...)
occamy    |     /usr/local/go/src/sync/once.go:57
occamy    | github.com/changkun/occamy/lib.(*Client).Close(0xc0000aa480)
occamy    |     /go/src/github.com/changkun/occamy/lib/client.go:89 +0x65
occamy    | github.com/changkun/occamy/server.(*Session).close(0xc00009ba40)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:128 +0x41
occamy    | github.com/changkun/occamy/server.(*Session).Join(0xc00009ba40, 0xc0004f66e0, 0xc000103668, 0x1, 0xc000103560, 0x0, 0x0)
occamy    |     /go/src/github.com/changkun/occamy/server/session.go:110 +0x6ac
occamy    | github.com/changkun/occamy/server.(*proxy).routeConn(0xc000114280, 0xc0004f66e0, 0xc000103668, 0x8, 0xc0000be9c8)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:219 +0x268
occamy    | github.com/changkun/occamy/server.(*proxy).serveWS(0xc000114280, 0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/server/connection.go:195 +0x447
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/appleboy/gin-jwt/v2.(*GinJWTMiddleware).middlewareImpl(0xc000216120, 0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/appleboy/gin-jwt/v2/auth_jwt.go:382 +0x2bf
occamy    | github.com/appleboy/gin-jwt/v2.(*GinJWTMiddleware).MiddlewareFunc.func1(0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/appleboy/gin-jwt/v2/auth_jwt.go:344 +0x34
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.RecoveryWithWriter.func1(0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/recovery.go:83 +0x64
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/logger.go:240 +0xe1
occamy    | github.com/gin-gonic/gin.(*Context).Next(0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/context.go:124 +0x3b
occamy    | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0001e83c0, 0xc0000cc2c0)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/gin.go:389 +0x5b2
occamy    | github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0001e83c0, 0xc84c20, 0xc00022e1c0, 0xc0000f2100)
occamy    |     /go/src/github.com/changkun/occamy/vendor/github.com/gin-gonic/gin/gin.go:351 +0x134
occamy    | net/http.serverHandler.ServeHTTP(0xc00022e0e0, 0xc84c20, 0xc00022e1c0, 0xc0000f2100)
occamy    |     /usr/local/go/src/net/http/server.go:2802 +0xa4
occamy    | net/http.(*conn).serve(0xc0000b4280, 0xc86620, 0xc0000c8000)
occamy    |     /usr/local/go/src/net/http/server.go:1890 +0x875
occamy    | created by net/http.(*Server).Serve
occamy    |     /usr/local/go/src/net/http/server.go:2927 +0x38e
occamy exited with code 2

and here is a back trace:

Continuing.
[New Thread 0x7f2b8e9ff700 (LWP 35)]
[New Thread 0x7f2b8fa01700 (LWP 33)]
[New Thread 0x7f2b8f200700 (LWP 34)]
[New Thread 0x7f2b8e1fe700 (LWP 36)]
[New Thread 0x7f2b8d9fd700 (LWP 38)]
[New Thread 0x7f2b8d1fc700 (LWP 37)]
[New Thread 0x7f2b7ea4b700 (LWP 40)]
[New Thread 0x7f2b7e24a700 (LWP 41)]
[New Thread 0x7f2b7f24c700 (LWP 39)]
[New Thread 0x7f2b7da49700 (LWP 42)]
[New Thread 0x7f2b7cec0700 (LWP 43)]
[New Thread 0x7f2b63fff700 (LWP 44)]
[New Thread 0x7f2b61783700 (LWP 46)]
[New Thread 0x7f2b61f84700 (LWP 45)]
[New Thread 0x7f2b60f82700 (LWP 47)]
[New Thread 0x7f2b4bfff700 (LWP 48)]
[New Thread 0x7f2b4b7fe700 (LWP 49)]
[New Thread 0x7f2b4affd700 (LWP 50)]
[New Thread 0x7f2b4a7fc700 (LWP 51)]
[New Thread 0x7f2b49ffb700 (LWP 52)]
[New Thread 0x7f2b497fa700 (LWP 53)]
[Thread 0x7f2b4a7fc700 (LWP 51) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f2b7cec0700 (LWP 43)]
0x00007f2bacef82f4 in guac_socket_fd_read_handler (socket=0x7f2b6c004070, buf=0x7f2b8400162c, count=31164) at socket-fd.c:143
143         retval = read(data->fd, buf, count);
Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.6-13.el7.x86_64 cairo-1.15.12-4.el7.x86_64 dbus-libs-1.10.24-13.el7_6.x86_64 elfutils-libelf-0.176-2.el7.x86_64 elfutils-libs-0.176-2.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 flac-libs-1.3.0-5.el7_1.x86_64 fontconfig-2.13.0-4.3.el7.x86_64 freerdp-libs-1.0.2-15.el7.x86_64 freerdp-plugins-1.0.2-15.el7.x86_64 freetype-2.8-14.el7.x86_64 fribidi-1.0.2-1.el7.x86_64 glib2-2.56.1-5.el7.x86_64 glibc-2.17-292.el7.x86_64 gmp-6.0.0-15.el7.x86_64 gnutls-3.3.29-9.el7_6.x86_64 graphite2-1.3.10-1.el7_3.x86_64 gsm-1.0.13-11.el7.x86_64 harfbuzz-1.7.5-2.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libICE-1.0.9-9.el7.x86_64 libSM-1.2.2-2.el7.x86_64 libX11-1.6.7-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXext-1.3.3-3.el7.x86_64 libXi-1.7.9-1.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libXtst-1.2.3-1.el7.x86_64 libasyncns-0.8-7.el7.x86_64 libattr-2.4.46-13.el7.x86_64 libcap-2.22-10.el7.x86_64 libcom_err-1.42.9-16.el7.x86_64 libffi-3.0.13-18.el7.x86_64 libgcc-4.8.5-39.el7.x86_64 libgcrypt-1.5.3-14.el7.x86_64 libglvnd-1.0.1-0.8.git5baa1e5.el7.x86_64 libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64 libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64 libgpg-error-1.12-3.el7.x86_64 libjpeg-turbo-1.2.90-8.el7.x86_64 libogg-1.3.0-7.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.5-14.1.el7.x86_64 libsndfile-1.0.25-10.el7.x86_64 libssh2-1.8.0-3.el7.x86_64 libtasn1-4.10-1.el7.x86_64 libthai-0.1.14-9.el7.x86_64 libuuid-2.23.2-61.el7.x86_64 libvncserver-0.9.9-13.el7_6.x86_64 libvorbis-1.3.3-8.el7.1.x86_64 libwebp-0.3.0-7.el7.x86_64 libxcb-1.13-1.el7.x86_64 lz4-1.7.5-3.el7.x86_64 lzo-minilzo-2.06-8.el7.x86_64 nettle-2.7.1-8.el7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 p11-kit-0.23.5-3.el7.x86_64 pango-1.42.4-4.el7_7.x86_64 pcre-8.32-17.el7.x86_64 pixman-0.34.0-1.el7.x86_64 pulseaudio-libs-10.0-5.el7.x86_64 systemd-libs-219-67.el7_7.2.x86_64 tcp_wrappers-libs-7.6-77.el7.x86_64 uuid-1.6.2-26.el7.x86_64 xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) bt
#0  0x00007f2bacef82f4 in guac_socket_fd_read_handler (socket=0x7f2b6c004070, buf=0x7f2b8400162c, count=31164) at socket-fd.c:143
#1  0x00007f2bacef482b in guac_parser_read (parser=parser@entry=0x7f2b84000bb0, socket=socket@entry=0x7f2b6c004070, usec_timeout=usec_timeout@entry=15000000) at parser.c:227
#2  0x00007f2bacef9e55 in guac_user_input_thread (data=<optimized out>) at user-handshake.c:201
#3  0x00007f2baccd7e65 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f2baca0088d in clone () at /lib64/libc.so.6

from occamy.

changkun avatar changkun commented on May 27, 2024

The previous panic does not appear in the master branch. It is a bug in local changes.

Close since the issue is fixed in 12e3421.

from occamy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.