发现一个net.Pipe io.Copy到net.Pipe 时的一个组阻塞问题。

37 views
Skip to first unread message

AbleG

unread,
Sep 7, 2019, 12:48:26 PM9/7/19
to Golang-China

我用net.Pipe() 做测试用例, 模拟两个用户连接到service , 发现一个Write 的阻塞,有遇到过相同问题的么?




 24 func (rc *RoomClientConn) Send(msg *message.Head) error {
 25     buf := bytes.NewBuffer(nil)
 26     out, err := proto.Marshal(msg)
 27     if err != nil {
 28         return err
 29     }
 30     rc.Log.Debug("================1", msg.Command)
 31     err = binary.Write(buf, binary.BigEndian, int32(len(out)))
 32     if err != nil {
 33         return err
 34     }
 35     rc.Log.Debug("================2", msg.Command)
 36     _, err = buf.Write(out)
 37     if err != nil {
 38         return err
 39     }
 40
 41     rc.Log.Debug("================3", msg.Command, buf.String())
 42     io.Copy(rc.Conn, buf)  // 阻塞位置
 43     buf.Reset()
 44     buf = nil
 45     return nil
 46 }

第一次遇到这种情况。 

=== 阻塞位置:

goroutine 8 [select]:
runtime.gopark(0x9b2658, 0x0, 0x1809, 0x1)
        /opt/go/src/runtime/proc.go:301 +0xef fp=0xc00030fa20 sp=0xc00030fa00 pc=0x430e4f
runtime.selectgo(0xc00030fbc0, 0xc00030fb78, 0x4, 0x0, 0x40)
        /opt/go/src/runtime/select.go:313 +0xcb8 fp=0xc00030fb48 sp=0xc00030fa20 pc=0x440558
net.(*pipe).write(0xc000144200, 0xc0002ea040, 0x17, 0x40, 0x0, 0x0, 0x0)
        /opt/go/src/net/pipe.go:199 +0x288 fp=0xc00030fc70 sp=0xc00030fb48 pc=0x5e02a8
net.(*pipe).Write(0xc000144200, 0xc0002ea040, 0x17, 0x40, 0x8fdac0, 0x976f60, 0x1)
        /opt/go/src/net/pipe.go:179 +0x4d fp=0xc00030fcd0 sp=0xc00030fc70 pc=0x5dfead
bytes.(*Buffer).WriteTo(0xc00011a480, 0x7ff4f74c2288, 0xc000144200, 0x7ff4f74c22a8, 0xc00011a480, 0x1)
        /opt/go/src/bytes/buffer.go:242 +0xb8 fp=0xc00030fd20 sp=0xc00030fcd0 pc=0x4e53c8
io.copyBuffer(0x7ff4f74c2288, 0xc000144200, 0xa393a0, 0xc00011a480, 0x0, 0x0, 0x0, 0x0, 0xc0000207c0, 0x0)
        /opt/go/src/io/io.go:384 +0x34e fp=0xc00030fd98 sp=0xc00030fd20 pc=0x49d47e
io.Copy(...)
        /opt/go/src/io/io.go:364
gitlab.int.nbt.ren/game/roomd/service.(*RoomServerConn).Send(0xc00046c290, 0xc0006fe3c0, 0xc00030fee8, 0xc)
        /home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/hook_rpc.go:61 +0x1ab fp=0xc00030fe18 sp=0xc00030fd98 pc=0x862c4b
gitlab.int.nbt.ren/game/roomd/service.(*RoomService).ShareTCP(0xc0001480e0, 0xa3d400, 0xc00046c290, 0x0, 0x0)
        /home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/roomd_listen.go:127 +0x4f5 fp=0xc00030ffb8 sp=0xc00030fe18 pc=0x866b05
runtime.goexit()
        /opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00030ffc0 sp=0xc00030ffb8 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/service.(*ServiceInTest).GetClient
        /home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/default_test_service.go:19 +0xca

goroutine 82 [select]:
runtime.gopark(0x9b2658, 0x0, 0x1809, 0x1)
        /opt/go/src/runtime/proc.go:301 +0xef fp=0xc00044f950 sp=0xc00044f930 pc=0x430e4f
runtime.selectgo(0xc00044faf0, 0xc00044faa8, 0x4, 0x38, 0xc00044fb18)
        /opt/go/src/runtime/select.go:313 +0xcb8 fp=0xc00044fa78 sp=0xc00044f950 pc=0x440558
net.(*pipe).write(0xc000144400, 0xc0000301c0, 0x28, 0x40, 0x0, 0x0, 0x0)
        /opt/go/src/net/pipe.go:199 +0x288 fp=0xc00044fba0 sp=0xc00044fa78 pc=0x5e02a8
net.(*pipe).Write(0xc000144400, 0xc0000301c0, 0x28, 0x40, 0x8fdac0, 0x976f60, 0x1)
        /opt/go/src/net/pipe.go:179 +0x4d fp=0xc00044fc00 sp=0xc00044fba0 pc=0x5dfead
bytes.(*Buffer).WriteTo(0xc0001205a0, 0x7ff4f74c2288, 0xc000144400, 0x7ff4f74c22a8, 0xc0001205a0, 0x1)
        /opt/go/src/bytes/buffer.go:242 +0xb8 fp=0xc00044fc50 sp=0xc00044fc00 pc=0x4e53c8
io.copyBuffer(0x7ff4f74c2288, 0xc000144400, 0xa393a0, 0xc0001205a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /opt/go/src/io/io.go:384 +0x34e fp=0xc00044fcc8 sp=0xc00044fc50 pc=0x49d47e
io.Copy(...)
        /opt/go/src/io/io.go:364
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).Send(0xc0002de1a0, 0xc00071c320, 0xc00044fe88, 0x2)
        /home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:42 +0x46b fp=0xc00044fde8 sp=0xc00044fcc8 pc=0x8639cb
gitlab.int.nbt.ren/game/roomd/handlers.DefaultU1U2Pipeline.func1(0xc0002de1a0, 0xc0001560f0)
        /home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:70 +0x437 fp=0xc00044ff38 sp=0xc00044fde8 pc=0x86ba97
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).ListenPipline(0xc0002de1a0, 0xc0001346f0, 0x0, 0x0)
        /home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:71 +0x11e fp=0xc00044ffc0 sp=0xc00044ff38 pc=0x863d2e
runtime.goexit()
        /opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00044ffc8 sp=0xc00044ffc0 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/handlers.DefaultU1U2Pipeline
        /home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:113 +0x625




完整的数据:


time="2019-09-08T00:34:23+08:00" level=debug msg="================1QUICK_JOIN_ROOM" UserID=userid1111111 line="service/room_client_conn.go:30" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================2QUICK_JOIN_ROOM" UserID=userid1111111 line="service/room_client_conn.go:35" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================3QUICK_JOIN_ROOM\x00\x00\x004\b\xe8\a\x1a \n\x00\x12\x1c\n\ruserid1111111\x1a\vuserid11111\"\ruserid1111111" UserID=userid1111111 line="service/room_client_conn.go:41" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================1HEARTBEAT_PVP" UserID=userid1111111 line="service/room_client_conn.go:30" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================2HEARTBEAT_PVP" UserID=userid1111111 line="service/room_client_conn.go:35" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================3HEARTBEAT_PVP\x00\x00\x00\x12\b\x8eN\"\ruserid1111111" UserID=userid1111111 line="service/room_client_conn.go:41" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="User joint to Room:useIDuserid1111111" line="handlers/handle_login.go:34"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN t1" line="handlers/handle_login.go:56"
time="2019-09-08T00:34:23+08:00" level=info msg="RoomID 20ff64fa-aabc-4405-9b1d-b2c411fb7c84 with be created" line="modules/room.go:20"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN 2" line="handlers/handle_login.go:65"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN 3" line="handlers/handle_login.go:74"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN 4" line="handlers/handle_login.go:78"
time="2019-09-08T00:34:23+08:00" level=debug msg="req:QUICK_JOIN_ROOMuserID:userid111111110,0,18,28,10,13,117,115,101,114,105,100,49,49,49,49,49,49,49,26,11,117,115,101,114,105,100,49,49,49,49,49 res:ROOM_INFO_UPDATE_TO_CLIENT 10,36,50,48,102,102,54,52,102,97,45,97,97,98,99,45,52,52,48,53,45,57,98,49,100,45,98,50,99,52,49,49,102,98,55,99,56,52,18,28,10,11,117,115,101,114,105,100,49,49,49,49,49,18,13,117,115,101,114,105,100,49,49,49,49,49,49,49 resType3 <nil>" line="service/roomd_listen.go:118"
time="2019-09-08T00:34:23+08:00" level=debug msg=ROOM_INFO_UPDATE_TO_CLIENT UserID=userid1111111 line="service/room_client_conn.go:70" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================1QUICK_JOIN_ROOM" UserID=userid222222 line="service/room_client_conn.go:30" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================2QUICK_JOIN_ROOM" UserID=userid222222 line="service/room_client_conn.go:35" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================3QUICK_JOIN_ROOM\x00\x00\x00Y\b\xe8\a\x1aF\n&\x1a$20ff64fa-aabc-4405-9b1d-b2c411fb7c84\x12\x1c\n\fuserid222222\x1a\fuserid222222\"\fuserid222222" UserID=userid222222 line="service/room_client_conn.go:41" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="req:HEARTBEAT_PVPuserID:userid1111111 res:HEARTBEAT_PVP  resType1 <nil>" line="service/roomd_listen.go:118"
time="2019-09-08T00:34:23+08:00" level=debug msg="================1HEARTBEAT_PVP" UserID=userid222222 line="service/room_client_conn.go:30" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="NOT REGIST TASKHEARTBEAT_PVP" UserID=userid1111111 line="service/room_client_conn.go:73" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================2HEARTBEAT_PVP" UserID=userid222222 line="service/room_client_conn.go:35" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================3HEARTBEAT_PVP\x00\x00\x00\x11\b\x8eN\"\fuserid222222" UserID=userid222222 line="service/room_client_conn.go:41" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="User joint to Room:20ff64fa-aabc-4405-9b1d-b2c411fb7c84useIDuserid222222" line="handlers/handle_login.go:34"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN t1" line="handlers/handle_login.go:56"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN 2" line="handlers/handle_login.go:65"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN 3" line="handlers/handle_login.go:74"
time="2019-09-08T00:34:23+08:00" level=debug msg="JOIN 4" line="handlers/handle_login.go:78"
time="2019-09-08T00:34:23+08:00" level=debug msg="req:QUICK_JOIN_ROOMuserID:userid22222210,38,26,36,50,48,102,102,54,52,102,97,45,97,97,98,99,45,52,52,48,53,45,57,98,49,100,45,98,50,99,52,49,49,102,98,55,99,56,52,18,28,10,12,117,115,101,114,105,100,50,50,50,50,50,50,26,12,117,115,101,114,105,100,50,50,50,50,50,50 res:ROOM_INFO_UPDATE_TO_CLIENT 10,36,50,48,102,102,54,52,102,97,45,97,97,98,99,45,52,52,48,53,45,57,98,49,100,45,98,50,99,52,49,49,102,98,55,99,56,52,18,28,10,11,117,115,101,114,105,100,49,49,49,49,49,18,13,117,115,101,114,105,100,49,49,49,49,49,49,49,18,30,10,12,117,115,101,114,105,100,50,50,50,50,50,50,18,12,117,115,101,114,105,100,50,50,50,50,50,50,32,1,32,1 resType3 <nil>" line="service/roomd_listen.go:118"
time="2019-09-08T00:34:23+08:00" level=debug msg=ROOM_INFO_UPDATE_TO_CLIENT UserID=userid1111111 line="service/room_client_conn.go:70" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=info msg="User..!!!!!!! Game Start!!!!userid1111111" UserID=userid1111111 line="handlers/handle_user_change_status_test.go:60" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg=ROOM_INFO_UPDATE_TO_CLIENT UserID=userid222222 line="service/room_client_conn.go:70" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="Need to send a ready  message!111userid1111111" UserID=userid1111111 line="handlers/handle_user_change_status_test.go:61" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=info msg="User..!!!!!!! Game Start!!!!userid222222" UserID=userid222222 line="handlers/handle_user_change_status_test.go:60" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="Need to send a ready  message!2222userid1111111" UserID=userid1111111 line="handlers/handle_user_change_status_test.go:69" prefix=ClientConn
ROOM_INFO_UPDATE_TO_CLIENT
time="2019-09-08T00:34:23+08:00" level=debug msg="================1GAME_UPDATE_PLAYER_STATUS" UserID=userid1111111 line="service/room_client_conn.go:30" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================2GAME_UPDATE_PLAYER_STATUS" UserID=userid1111111 line="service/room_client_conn.go:35" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================3GAME_UPDATE_PLAYER_STATUS\x00\x00\x00&\b\xd1\x0f\x1a\x12\n\ruserid1111111\x10\xc8\x01\"\ruserid1111111" UserID=userid1111111 line="service/room_client_conn.go:41" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="req:HEARTBEAT_PVPuserID:userid222222 res:HEARTBEAT_PVP  resType1 <nil>" line="service/roomd_listen.go:118"
time="2019-09-08T00:34:23+08:00" level=debug msg="Need to send a ready  message!3333userid1111111 <nil>" UserID=userid1111111 line="handlers/handle_user_change_status_test.go:71" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="Need to send a ready  message!111userid222222" UserID=userid222222 line="handlers/handle_user_change_status_test.go:61" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="Need to send a ready  message!2222userid222222" UserID=userid222222 line="handlers/handle_user_change_status_test.go:69" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================1GAME_UPDATE_PLAYER_STATUS" UserID=userid222222 line="service/room_client_conn.go:30" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================2GAME_UPDATE_PLAYER_STATUS" UserID=userid222222 line="service/room_client_conn.go:35" prefix=ClientConn
time="2019-09-08T00:34:23+08:00" level=debug msg="================3GAME_UPDATE_PLAYER_STATUS\x00\x00\x00$\b\xd1\x0f\x1a\x11\n\fuserid222222\x10\xc8\x01\"\fuserid222222" UserID=userid222222 line="service/room_client_conn.go:41" prefix=ClientConn
ROOM_INFO_UPDATE_TO_CLIENT
time="2019-09-08T00:34:23+08:00" level=debug msg="User status:READYuserid1111111" line="handlers/handle_user_change_status.go:19"
time="2019-09-08T00:34:23+08:00" level=debug msg="USER: READY userid1111111" line="handlers/handle_user_change_status.go:24"
time="2019-09-08T00:34:23+08:00" level=debug msg="not ready .id:\"userid222222\" nickName:\"userid222222\" " line="modules/room_change_status.go:18"
time="2019-09-08T00:34:23+08:00" level=debug msg="------------------ ||||||+++ " line="handlers/handle_user_change_status.go:29"
time="2019-09-08T00:34:23+08:00" level=debug msg="req:GAME_UPDATE_PLAYER_STATUSuserID:userid111111110,13,117,115,101,114,105,100,49,49,49,49,49,49,49,16,200,1 res:JOIN_TO_HALL  resType0 <nil>" line="service/roomd_listen.go:118"
panic: test timed out after 4s

goroutine 39 [running]:
panic(0x8c28e0, 0xc000068000)
/opt/go/src/runtime/panic.go:565 +0x2c5 fp=0xc000159788 sp=0xc0001596f8 pc=0x42ed35
testing.(*M).startAlarm.func1()
/opt/go/src/testing/testing.go:1334 +0xdf fp=0xc0001597e0 sp=0xc000159788 pc=0x4f738f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0001597e8 sp=0xc0001597e0 pc=0x45d741
created by time.goFunc
/opt/go/src/time/sleep.go:169 +0x44

goroutine 1 [chan receive]:
runtime.gopark(0x9b2618, 0xc0001542f8, 0x170d, 0x3)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000062b98 sp=0xc000062b78 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.chanrecv(0xc0001542a0, 0xc0000b9caf, 0xc000000101, 0x4f335a)
/opt/go/src/runtime/chan.go:524 +0x2ea fp=0xc000062c28 sp=0xc000062b98 pc=0x4077aa
runtime.chanrecv1(0xc0001542a0, 0xc0000b9caf)
/opt/go/src/runtime/chan.go:406 +0x2b fp=0xc000062c58 sp=0xc000062c28 pc=0x40746b
testing.(*T).Run(0xc0002a4100, 0x994365, 0x11, 0x9b1a10, 0x4b1e01)
/opt/go/src/testing/testing.go:917 +0x381 fp=0xc000062d08 sp=0xc000062c58 pc=0x4f3381
testing.runTests.func1(0xc0002a4000)
/opt/go/src/testing/testing.go:1157 +0x78 fp=0xc000062d58 sp=0xc000062d08 pc=0x4f7228
testing.tRunner(0xc0002a4000, 0xc0000b9e10)
/opt/go/src/testing/testing.go:865 +0xc0 fp=0xc000062d80 sp=0xc000062d58 pc=0x4f2fa0
testing.runTests(0xc000140060, 0xddd640, 0x2, 0x2, 0x0)
/opt/go/src/testing/testing.go:1155 +0x2a9 fp=0xc000062e40 sp=0xc000062d80 pc=0x4f47e9
testing.(*M).Run(0xc000144100, 0x0)
/opt/go/src/testing/testing.go:1072 +0x162 fp=0xc000062f10 sp=0xc000062e40 pc=0x4f3762
gitlab.int.nbt.ren/game/roomd/handlers.TestMain(0xc000144100)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/roomd_test.go:11 +0x2b fp=0xc000062f30 sp=0xc000062f10 pc=0x86afab
main.main()
_testmain.go:42 +0x13e fp=0xc000062f98 sp=0xc000062f30 pc=0x86c10e
runtime.main()
/opt/go/src/runtime/proc.go:200 +0x20c fp=0xc000062fe0 sp=0xc000062f98 pc=0x430a5c
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000062fe8 sp=0xc000062fe0 pc=0x45d741

goroutine 2 [force gc (idle)]:
runtime.gopark(0x9b2618, 0xdec2a0, 0x1410, 0x1)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000052fb0 sp=0xc000052f90 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.forcegchelper()
/opt/go/src/runtime/proc.go:250 +0xb7 fp=0xc000052fe0 sp=0xc000052fb0 pc=0x430cf7
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000052fe8 sp=0xc000052fe0 pc=0x45d741
created by runtime.init.5
/opt/go/src/runtime/proc.go:239 +0x35

goroutine 3 [runnable]:
runtime.Gosched(...)
/opt/go/src/runtime/proc.go:266
runtime.bgsweep(0xc00007c000)
/opt/go/src/runtime/mgcsweep.go:75 +0xb6 fp=0xc0000537d8 sp=0xc0000537a8 pc=0x422f36
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0000537e0 sp=0xc0000537d8 pc=0x45d741
created by runtime.gcenable
/opt/go/src/runtime/mgc.go:208 +0x58

goroutine 4 [finalizer wait]:
runtime.gopark(0x9b2618, 0xe09a18, 0x140f, 0x1)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000053f58 sp=0xc000053f38 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.runfinq()
/opt/go/src/runtime/mfinal.go:175 +0xa6 fp=0xc000053fe0 sp=0xc000053f58 pc=0x419be6
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000053fe8 sp=0xc000053fe0 pc=0x45d741
created by runtime.createfing
/opt/go/src/runtime/mfinal.go:156 +0x61

goroutine 6 [select]:
runtime.gopark(0x9b2658, 0x0, 0x1809, 0x1)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc0002b3bb0 sp=0xc0002b3b90 pc=0x430e4f
runtime.selectgo(0xc0002b3d58, 0xc0002b3d10, 0x4, 0xc000040000, 0xc000685d60)
/opt/go/src/runtime/select.go:313 +0xcb8 fp=0xc0002b3cd8 sp=0xc0002b3bb0 pc=0x440558
net.(*pipe).read(0xc000144380, 0xc0001424bc, 0x4, 0x4, 0x36, 0x4, 0xc000685e88)
/opt/go/src/net/pipe.go:164 +0x19b fp=0xc0002b3e08 sp=0xc0002b3cd8 pc=0x5dfc3b
net.(*pipe).Read(0xc000144380, 0xc0001424bc, 0x4, 0x4, 0xc000685eb8, 0x40b6b5, 0x8fd7c0)
/opt/go/src/net/pipe.go:147 +0x4d fp=0xc0002b3e68 sp=0xc0002b3e08 pc=0x5df8cd
io.ReadAtLeast(0x7ff4f7479008, 0xc000144380, 0xc0001424bc, 0x4, 0x4, 0x4, 0xded160, 0xc0001242c0, 0x8c28e0)
/opt/go/src/io/io.go:310 +0x88 fp=0xc0002b3ec8 sp=0xc0002b3e68 pc=0x49cea8
io.ReadFull(...)
/opt/go/src/io/io.go:329
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).Recv(0xc000140240, 0xc0006fe2d0, 0xc000067f80, 0x1)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:81 +0xfe fp=0xc0002b3f38 sp=0xc0002b3ec8 pc=0x863eee
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).ListenPipline(0xc000140240, 0xc0001346f0, 0x0, 0x0)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:64 +0x35 fp=0xc0002b3fc0 sp=0xc0002b3f38 pc=0x863c45
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0002b3fc8 sp=0xc0002b3fc0 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/handlers.DefaultU1U2Pipeline
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:95 +0x31a

goroutine 18 [chan receive]:
runtime.gopark(0x9b2618, 0xc00011e1d8, 0x170d, 0x3)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc00004e6f0 sp=0xc00004e6d0 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.chanrecv(0xc00011e180, 0x0, 0x1, 0x0)
/opt/go/src/runtime/chan.go:524 +0x2ea fp=0xc00004e780 sp=0xc00004e6f0 pc=0x4077aa
runtime.chanrecv1(0xc00011e180, 0x0)
/opt/go/src/runtime/chan.go:406 +0x2b fp=0xc00004e7b0 sp=0xc00004e780 pc=0x40746b
gitlab.int.nbt.ren/game/roomd/service.newRoomService.func1(0xc000138020)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/roomd.go:39 +0x49 fp=0xc00004e7d8 sp=0xc00004e7b0 pc=0x866ec9
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00004e7e0 sp=0xc00004e7d8 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/service.newRoomService
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/roomd.go:36 +0xef

goroutine 34 [syscall]:
runtime.notetsleepg(0xdf1240, 0x77309606, 0x0)
/opt/go/src/runtime/lock_futex.go:227 +0x34 fp=0xc00015c760 sp=0xc00015c730 pc=0x40c454
runtime.timerproc(0xdf1220)
/opt/go/src/runtime/time.go:311 +0x2ea fp=0xc00015c7d8 sp=0xc00015c760 pc=0x44d1da
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00015c7e0 sp=0xc00015c7d8 pc=0x45d741
created by runtime.(*timersBucket).addtimerLocked
/opt/go/src/runtime/time.go:169 +0x10e

goroutine 20 [timer goroutine (idle)]:
runtime.gopark(0x9b2618, 0xdf12a0, 0x1414, 0x1)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc00004f760 sp=0xc00004f740 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.timerproc(0xdf12a0)
/opt/go/src/runtime/time.go:303 +0x273 fp=0xc00004f7d8 sp=0xc00004f760 pc=0x44d163
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00004f7e0 sp=0xc00004f7d8 pc=0x45d741
created by runtime.(*timersBucket).addtimerLocked
/opt/go/src/runtime/time.go:169 +0x10e

goroutine 21 [chan receive]:
runtime.gopark(0x9b2618, 0xc000094658, 0xc00011170d, 0x3)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc0002ace78 sp=0xc0002ace58 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.chanrecv(0xc000094600, 0xc0002acf7c, 0xc0002fa001, 0x0)
/opt/go/src/runtime/chan.go:524 +0x2ea fp=0xc0002acf08 sp=0xc0002ace78 pc=0x4077aa
runtime.chanrecv1(0xc000094600, 0xc0002acf7c)
/opt/go/src/runtime/chan.go:406 +0x2b fp=0xc0002acf38 sp=0xc0002acf08 pc=0x40746b
gitlab.int.nbt.ren/game/roomd/handlers.TestUserSendReady(0xc0002a4100)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:145 +0x81 fp=0xc0002acfa8 sp=0xc0002acf38 pc=0x86af01
testing.tRunner(0xc0002a4100, 0x9b1a10)
/opt/go/src/testing/testing.go:865 +0xc0 fp=0xc0002acfd0 sp=0xc0002acfa8 pc=0x4f2fa0
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0002acfd8 sp=0xc0002acfd0 pc=0x45d741
created by testing.(*T).Run
/opt/go/src/testing/testing.go:916 +0x35a

goroutine 22 [chan receive]:
runtime.gopark(0x9b2618, 0xc0002dc058, 0xc00014170d, 0x3)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc00004fef0 sp=0xc00004fed0 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.chanrecv(0xc0002dc000, 0x0, 0x1, 0xffffffffffffffff)
/opt/go/src/runtime/chan.go:524 +0x2ea fp=0xc00004ff80 sp=0xc00004fef0 pc=0x4077aa
runtime.chanrecv1(0xc0002dc000, 0x0)
/opt/go/src/runtime/chan.go:406 +0x2b fp=0xc00004ffb0 sp=0xc00004ff80 pc=0x40746b
gitlab.int.nbt.ren/game/roomd/service.newRoomService.func1(0xc000138048)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/roomd.go:39 +0x49 fp=0xc00004ffd8 sp=0xc00004ffb0 pc=0x866ec9
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00004ffe0 sp=0xc00004ffd8 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/service.newRoomService
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/roomd.go:36 +0xef

goroutine 50 [syscall]:
runtime.notetsleepg(0xdf1340, 0x7734833b, 0x0)
/opt/go/src/runtime/lock_futex.go:227 +0x34 fp=0xc000158760 sp=0xc000158730 pc=0x40c454
runtime.timerproc(0xdf1320)
/opt/go/src/runtime/time.go:311 +0x2ea fp=0xc0001587d8 sp=0xc000158760 pc=0x44d1da
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0001587e0 sp=0xc0001587d8 pc=0x45d741
created by runtime.(*timersBucket).addtimerLocked
/opt/go/src/runtime/time.go:169 +0x10e

goroutine 23 [select]:
runtime.gopark(0x9b2658, 0x0, 0x1809, 0x1)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000451a90 sp=0xc000451a70 pc=0x430e4f
runtime.selectgo(0xc000451c38, 0xc000451bf0, 0x4, 0xc000451c10, 0x0)
/opt/go/src/runtime/select.go:313 +0xcb8 fp=0xc000451bb8 sp=0xc000451a90 pc=0x440558
net.(*pipe).read(0xc000144300, 0xc00014236c, 0x4, 0x4, 0x10e3b1739c054, 0x4, 0xc000451d68)
/opt/go/src/net/pipe.go:164 +0x19b fp=0xc000451ce8 sp=0xc000451bb8 pc=0x5dfc3b
net.(*pipe).Read(0xc000144300, 0xc00014236c, 0x4, 0x4, 0xc000451d98, 0x40b6b5, 0x8fd7c0)
/opt/go/src/net/pipe.go:147 +0x4d fp=0xc000451d48 sp=0xc000451ce8 pc=0x5df8cd
io.ReadAtLeast(0x7ff4f7479008, 0xc000144300, 0xc00014236c, 0x4, 0x4, 0x4, 0xded160, 0xc0001344b0, 0xc000028150)
/opt/go/src/io/io.go:310 +0x88 fp=0xc000451da8 sp=0xc000451d48 pc=0x49cea8
io.ReadFull(...)
/opt/go/src/io/io.go:329
gitlab.int.nbt.ren/game/roomd/service.(*RoomServerConn).Recv(0xc0001362b0, 0xc000142430, 0xd, 0xc0002e00a0)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/hook_rpc.go:71 +0xfe fp=0xc000451e18 sp=0xc000451da8 pc=0x862dbe
gitlab.int.nbt.ren/game/roomd/service.(*RoomService).ShareTCP(0xc0001480e0, 0xa3d400, 0xc0001362b0, 0x0, 0x0)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/roomd_listen.go:95 +0xa6 fp=0xc000451fb8 sp=0xc000451e18 pc=0x8666b6
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000451fc0 sp=0xc000451fb8 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/service.(*ServiceInTest).GetClient
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/default_test_service.go:19 +0xca

goroutine 24 [chan receive]:
runtime.gopark(0x9b2618, 0xc00011e5f8, 0xc00012170d, 0x3)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000523e90 sp=0xc000523e70 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.chanrecv(0xc00011e5a0, 0x0, 0x8c2801, 0xc0001241b0)
/opt/go/src/runtime/chan.go:524 +0x2ea fp=0xc000523f20 sp=0xc000523e90 pc=0x4077aa
runtime.chanrecv1(0xc00011e5a0, 0x0)
/opt/go/src/runtime/chan.go:406 +0x2b fp=0xc000523f50 sp=0xc000523f20 pc=0x40746b
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).Heartbeat(0xc000140240, 0xc00000270e, 0x9923dd, 0xd)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:58 +0x5a fp=0xc000523fc0 sp=0xc000523f50 pc=0x863aea
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000523fc8 sp=0xc000523fc0 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/handlers.DefaultU1U2Pipeline
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:85 +0x23a

goroutine 7 [syscall]:
runtime.notetsleepg(0xdf11c0, 0x6852b7269, 0x0)
/opt/go/src/runtime/lock_futex.go:227 +0x34 fp=0xc000054760 sp=0xc000054730 pc=0x40c454
runtime.timerproc(0xdf11a0)
/opt/go/src/runtime/time.go:311 +0x2ea fp=0xc0000547d8 sp=0xc000054760 pc=0x44d1da
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0000547e0 sp=0xc0000547d8 pc=0x45d741
created by runtime.(*timersBucket).addtimerLocked
/opt/go/src/runtime/time.go:169 +0x10e

goroutine 25 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000142b50, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000051760 sp=0xc000051740 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000032000)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc0000517d8 sp=0xc000051760 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0000517e0 sp=0xc0000517d8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 26 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc00012c630, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000051f60 sp=0xc000051f40 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000034500)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc000051fd8 sp=0xc000051f60 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000051fe0 sp=0xc000051fd8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 35 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc00012c640, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000050f60 sp=0xc000050f40 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000036a00)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc000050fd8 sp=0xc000050f60 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000050fe0 sp=0xc000050fd8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 36 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000470010, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000050760 sp=0xc000050740 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000038f00)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc0000507d8 sp=0xc000050760 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0000507e0 sp=0xc0000507d8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 51 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000142b60, 0x401417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000052760 sp=0xc000052740 pc=0x430e4f
runtime.gcBgMarkWorker(0xc00003b400)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc0000527d8 sp=0xc000052760 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0000527e0 sp=0xc0000527d8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 27 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000142b70, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000518760 sp=0xc000518740 pc=0x430e4f
runtime.gcBgMarkWorker(0xc00003d900)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc0005187d8 sp=0xc000518760 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0005187e0 sp=0xc0005187d8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 28 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc00012c650, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000518f60 sp=0xc000518f40 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000040000)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc000518fd8 sp=0xc000518f60 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000518fe0 sp=0xc000518fd8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 52 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc00012c660, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000158f60 sp=0xc000158f40 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000042500)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc000158fd8 sp=0xc000158f60 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000158fe0 sp=0xc000158fd8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 29 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000142b80, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000519760 sp=0xc000519740 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000044a00)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc0005197d8 sp=0xc000519760 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0005197e0 sp=0xc0005197d8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 37 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000142b90, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc00004ef60 sp=0xc00004ef40 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000046f00)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc00004efd8 sp=0xc00004ef60 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00004efe0 sp=0xc00004efd8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 38 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000470020, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc00015cf60 sp=0xc00015cf40 pc=0x430e4f
runtime.gcBgMarkWorker(0xc000049400)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc00015cfd8 sp=0xc00015cf60 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00015cfe0 sp=0xc00015cfd8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 30 [GC worker (idle)]:
runtime.gopark(0x9b24b0, 0xc000142ba0, 0x1417, 0x0)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc000519f60 sp=0xc000519f40 pc=0x430e4f
runtime.gcBgMarkWorker(0xc00004b900)
/opt/go/src/runtime/mgc.go:1836 +0xff fp=0xc000519fd8 sp=0xc000519f60 pc=0x41d69f
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000519fe0 sp=0xc000519fd8 pc=0x45d741
created by runtime.gcBgMarkStartWorkers
/opt/go/src/runtime/mgc.go:1784 +0x77

goroutine 8 [select]:
runtime.gopark(0x9b2658, 0x0, 0x1809, 0x1)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc00030fa20 sp=0xc00030fa00 pc=0x430e4f
runtime.selectgo(0xc00030fbc0, 0xc00030fb78, 0x4, 0x0, 0x40)
/opt/go/src/runtime/select.go:313 +0xcb8 fp=0xc00030fb48 sp=0xc00030fa20 pc=0x440558
net.(*pipe).write(0xc000144200, 0xc0002ea040, 0x17, 0x40, 0x0, 0x0, 0x0)
/opt/go/src/net/pipe.go:199 +0x288 fp=0xc00030fc70 sp=0xc00030fb48 pc=0x5e02a8
net.(*pipe).Write(0xc000144200, 0xc0002ea040, 0x17, 0x40, 0x8fdac0, 0x976f60, 0x1)
/opt/go/src/net/pipe.go:179 +0x4d fp=0xc00030fcd0 sp=0xc00030fc70 pc=0x5dfead
bytes.(*Buffer).WriteTo(0xc00011a480, 0x7ff4f74c2288, 0xc000144200, 0x7ff4f74c22a8, 0xc00011a480, 0x1)
/opt/go/src/bytes/buffer.go:242 +0xb8 fp=0xc00030fd20 sp=0xc00030fcd0 pc=0x4e53c8
io.copyBuffer(0x7ff4f74c2288, 0xc000144200, 0xa393a0, 0xc00011a480, 0x0, 0x0, 0x0, 0x0, 0xc0000207c0, 0x0)
/opt/go/src/io/io.go:384 +0x34e fp=0xc00030fd98 sp=0xc00030fd20 pc=0x49d47e
io.Copy(...)
/opt/go/src/io/io.go:364
gitlab.int.nbt.ren/game/roomd/service.(*RoomServerConn).Send(0xc00046c290, 0xc0006fe3c0, 0xc00030fee8, 0xc)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/hook_rpc.go:61 +0x1ab fp=0xc00030fe18 sp=0xc00030fd98 pc=0x862c4b
gitlab.int.nbt.ren/game/roomd/service.(*RoomService).ShareTCP(0xc0001480e0, 0xa3d400, 0xc00046c290, 0x0, 0x0)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/roomd_listen.go:127 +0x4f5 fp=0xc00030ffb8 sp=0xc00030fe18 pc=0x866b05
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00030ffc0 sp=0xc00030ffb8 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/service.(*ServiceInTest).GetClient
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/default_test_service.go:19 +0xca

goroutine 9 [chan receive]:
runtime.gopark(0x9b2618, 0xc0001321d8, 0xc00012170d, 0x3)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc0002ade90 sp=0xc0002ade70 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.chanrecv(0xc000132180, 0x0, 0x8c2801, 0xc000136260)
/opt/go/src/runtime/chan.go:524 +0x2ea fp=0xc0002adf20 sp=0xc0002ade90 pc=0x4077aa
runtime.chanrecv1(0xc000132180, 0x0)
/opt/go/src/runtime/chan.go:406 +0x2b fp=0xc0002adf50 sp=0xc0002adf20 pc=0x40746b
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).Heartbeat(0xc0002de1a0, 0xc00000270e, 0x991b98, 0xc)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:58 +0x5a fp=0xc0002adfc0 sp=0xc0002adf50 pc=0x863aea
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0002adfc8 sp=0xc0002adfc0 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/handlers.DefaultU1U2Pipeline
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:106 +0x537

goroutine 66 [syscall]:
runtime.notetsleepg(0xdf14c0, 0x2540af9ae, 0x0)
/opt/go/src/runtime/lock_futex.go:227 +0x34 fp=0xc00051bf60 sp=0xc00051bf30 pc=0x40c454
runtime.timerproc(0xdf14a0)
/opt/go/src/runtime/time.go:311 +0x2ea fp=0xc00051bfd8 sp=0xc00051bf60 pc=0x44d1da
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00051bfe0 sp=0xc00051bfd8 pc=0x45d741
created by runtime.(*timersBucket).addtimerLocked
/opt/go/src/runtime/time.go:169 +0x10e

goroutine 82 [select]:
runtime.gopark(0x9b2658, 0x0, 0x1809, 0x1)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc00044f950 sp=0xc00044f930 pc=0x430e4f
runtime.selectgo(0xc00044faf0, 0xc00044faa8, 0x4, 0x38, 0xc00044fb18)
/opt/go/src/runtime/select.go:313 +0xcb8 fp=0xc00044fa78 sp=0xc00044f950 pc=0x440558
net.(*pipe).write(0xc000144400, 0xc0000301c0, 0x28, 0x40, 0x0, 0x0, 0x0)
/opt/go/src/net/pipe.go:199 +0x288 fp=0xc00044fba0 sp=0xc00044fa78 pc=0x5e02a8
net.(*pipe).Write(0xc000144400, 0xc0000301c0, 0x28, 0x40, 0x8fdac0, 0x976f60, 0x1)
/opt/go/src/net/pipe.go:179 +0x4d fp=0xc00044fc00 sp=0xc00044fba0 pc=0x5dfead
bytes.(*Buffer).WriteTo(0xc0001205a0, 0x7ff4f74c2288, 0xc000144400, 0x7ff4f74c22a8, 0xc0001205a0, 0x1)
/opt/go/src/bytes/buffer.go:242 +0xb8 fp=0xc00044fc50 sp=0xc00044fc00 pc=0x4e53c8
io.copyBuffer(0x7ff4f74c2288, 0xc000144400, 0xa393a0, 0xc0001205a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/opt/go/src/io/io.go:384 +0x34e fp=0xc00044fcc8 sp=0xc00044fc50 pc=0x49d47e
io.Copy(...)
/opt/go/src/io/io.go:364
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).Send(0xc0002de1a0, 0xc00071c320, 0xc00044fe88, 0x2)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:42 +0x46b fp=0xc00044fde8 sp=0xc00044fcc8 pc=0x8639cb
gitlab.int.nbt.ren/game/roomd/handlers.DefaultU1U2Pipeline.func1(0xc0002de1a0, 0xc0001560f0)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:70 +0x437 fp=0xc00044ff38 sp=0xc00044fde8 pc=0x86ba97
gitlab.int.nbt.ren/game/roomd/service.(*RoomClientConn).ListenPipline(0xc0002de1a0, 0xc0001346f0, 0x0, 0x0)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/service/room_client_conn.go:71 +0x11e fp=0xc00044ffc0 sp=0xc00044ff38 pc=0x863d2e
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00044ffc8 sp=0xc00044ffc0 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/handlers.DefaultU1U2Pipeline
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:113 +0x625

goroutine 83 [chan receive]:
runtime.gopark(0x9b2618, 0xc000154778, 0xc00011170d, 0x3)
/opt/go/src/runtime/proc.go:301 +0xef fp=0xc0005166b0 sp=0xc000516690 pc=0x430e4f
runtime.goparkunlock(...)
/opt/go/src/runtime/proc.go:307
runtime.chanrecv(0xc000154720, 0xc0005167b4, 0xc00056c001, 0x0)
/opt/go/src/runtime/chan.go:524 +0x2ea fp=0xc000516740 sp=0xc0005166b0 pc=0x4077aa
runtime.chanrecv1(0xc000154720, 0xc0005167b4)
/opt/go/src/runtime/chan.go:406 +0x2b fp=0xc000516770 sp=0xc000516740 pc=0x40746b
gitlab.int.nbt.ren/game/roomd/handlers.TestUserSendReady.func1(0xc000140240)
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:139 +0x45 fp=0xc0005167d8 sp=0xc000516770 pc=0x86bc35
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0005167e0 sp=0xc0005167d8 pc=0x45d741
created by gitlab.int.nbt.ren/game/roomd/handlers.TestUserSendReady
/home/nbt/code/mygo/src/gitlab.int.nbt.ren/game/roomd/handlers/handle_user_change_status_test.go:137 +0x5d

goroutine 84 [syscall]:
runtime.notetsleepg(0xdf1440, 0x6fc23878e, 0x0)
/opt/go/src/runtime/lock_futex.go:227 +0x34 fp=0xc000516f60 sp=0xc000516f30 pc=0x40c454
runtime.timerproc(0xdf1420)
/opt/go/src/runtime/time.go:311 +0x2ea fp=0xc000516fd8 sp=0xc000516f60 pc=0x44d1da
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000516fe0 sp=0xc000516fd8 pc=0x45d741
created by runtime.(*timersBucket).addtimerLocked
/opt/go/src/runtime/time.go:169 +0x10e
signal: aborted (core dumped)
FAIL gitlab.int.nbt.ren/game/roomd/handlers 4.141s





AbleG

unread,
Sep 7, 2019, 1:42:54 PM9/7/19
to Golang-China


net.Pipe() 没有缓冲区,容易阻塞, 和实际网络情况有些差异。 


用这个库。

在 2019年9月8日星期日 UTC+8上午12:48:26,AbleG写道:
Reply all
Reply to author
Forward
0 new messages