agiledragon / gomonkey

gomonkey is a library to make monkey patching in unit tests easy
MIT License
1.92k stars 178 forks source link

panic: runtime error: index out of range [0] with length 0 [darwin/arm64] [M1] #153

Open kilianc opened 6 months ago

kilianc commented 6 months ago

https://github.com/kilianc/base-golang/blob/da0a110c1a5afb8cfa810282485d3dc5181040ee/fetchpeople_test.go

I am getting intermittent failures in tests and panic.

panic: runtime error: index out of range [0] with length 0 [recovered]
        panic: runtime error: index out of range [0] with length 0

Repro

run https://github.com/kilianc/base-golang/blob/da0a110c1a5afb8cfa810282485d3dc5181040ee/go-test.sh on a M1 and it will fail about 50% of the times run https://github.com/kilianc/base-golang/blob/da0a110c1a5afb8cfa810282485d3dc5181040ee/docker.sh on a M1 and it will not fail

Succeeds on go version go1.21.5 linux/arm64 and fails go version go1.21.5 darwin/arm64

Full log:

--- FAIL: TestFetchPeople (0.00s)
    --- FAIL: TestFetchPeople/should_return_a_list_of_people (0.00s)
        fetchpeople_test.go:48: 
                Error Trace:    /Users/kciuffolo/workspace/base-go/fetchpeople_test.go:48
                Error:          Expected nil, but got: &errors.errorString{s:"error"}
                Test:           TestFetchPeople/should_return_a_list_of_people
        fetchpeople_test.go:49: 
                Error Trace:    /Users/kciuffolo/workspace/base-go/fetchpeople_test.go:49
                Error:          Not equal: 
                                expected: "http://test-url/"
                                actual  : "initial value"

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1 @@
                                -http://test-url/
                                +initial value
                Test:           TestFetchPeople/should_return_a_list_of_people
        fetchpeople_test.go:50: 
                Error Trace:    /Users/kciuffolo/workspace/base-go/fetchpeople_test.go:50
                Error:          Not equal: 
                                expected: 1
                                actual  : 0
                Test:           TestFetchPeople/should_return_a_list_of_people
panic: runtime error: index out of range [0] with length 0 [recovered]
        panic: runtime error: index out of range [0] with length 0

goroutine 22 [running]:
testing.tRunner.func1.2({0x100f9be00, 0x140000bc300})
        /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1545 +0x1c4
testing.tRunner.func1()
        /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1548 +0x364
panic({0x100f9be00?, 0x140000bc300?})
        /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/panic.go:914 +0x200
github.com/kilianc/go.TestFetchPeople.func3(0x0?)
        /Users/kciuffolo/workspace/base-go/fetchpeople_test.go:51 +0x2dc
testing.tRunner(0x14000093ba0, 0x140000ab750)
        /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1595 +0xf8
created by testing.(*T).Run in goroutine 19
        /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1648 +0x318
exit status 2
FAIL    github.com/kilianc/go   0.164s
kilianc commented 6 months ago
test suite failing from c27aed55b9c97d5f66b76ae870741ce91588da17
go: downloading github.com/smartystreets/goconvey v1.6.4
go: downloading github.com/jtolds/gls v4.20.0+incompatible
go: downloading github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d
unexpected fault address 0x1044f6028
fatal error: fault
[signal SIGBUS: bus error code=0x1 addr=0x1044f6028 pc=0x1044f6028]

goroutine 19 [running]:
runtime.throw({0x10450edc5?, 0x0?})
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/panic.go:1077 +0x40 fp=0x140000e5310 sp=0x140000e52e0 pc=0x1043b2960
runtime.sigpanic()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/signal_unix.go:858 +0x10c fp=0x140000e5340 sp=0x140000e5310 pc=0x1043c98cc
github.com/agiledragon/gomonkey/v2.write(0x1044f7980, 0x140000ae018, 0x18, 0x1044f4000, 0x4000, 0x5)
    /Users/kciuffolo/workspace/gomonkey/write_darwin_arm64.s:36 +0x1028 fp=0x140000e5380 sp=0x140000e5350 pc=0x1044f6028
github.com/agiledragon/gomonkey/v2.modifyBinary(0x18?, {0x140000ae018, 0x18, 0x18})
    /Users/kciuffolo/workspace/gomonkey/modify_binary_darwin.go:16 +0x78 fp=0x140000e53f0 sp=0x140000e5380 pc=0x1044f2528
github.com/agiledragon/gomonkey/v2.replace(0x104553c60?, 0x1400009c9f0?)
    /Users/kciuffolo/workspace/gomonkey/patch.go:280 +0x74 fp=0x140000e5460 sp=0x140000e53f0 pc=0x1044f45c4
github.com/agiledragon/gomonkey/v2.(*Patches).ApplyCore(0x140000a4138, {0x104553c60?, 0x10458e528?, 0x1?}, {0x104553c60, 0x1400009c9f0, 0x13})
    /Users/kciuffolo/workspace/gomonkey/patch.go:213 +0x78 fp=0x140000e54e0 sp=0x140000e5460 pc=0x1044f3da8
github.com/agiledragon/gomonkey/v2.(*Patches).ApplyFuncReturn(0x140000e55b8?, {0x104553c60, 0x10458e528}, {0x140000d2060, 0x2, 0x2})
    /Users/kciuffolo/workspace/gomonkey/patch.go:170 +0xc4 fp=0x140000e5580 sp=0x140000e54e0 pc=0x1044f38b4
github.com/agiledragon/gomonkey/v2.ApplyFuncReturn({0x104553c60, 0x10458e528}, {0x140000d2060, 0x2, 0x2})
    /Users/kciuffolo/workspace/gomonkey/patch.go:61 +0x48 fp=0x140000e55c0 sp=0x140000e5580 pc=0x1044f2b28
github.com/agiledragon/gomonkey/v2/test.TestApplyFuncReturn.func1.1()
    /Users/kciuffolo/workspace/gomonkey/test/apply_func_return_test.go:20 +0xb0 fp=0x140000e56a0 sp=0x140000e55c0 pc=0x10450dfb0
github.com/smartystreets/goconvey/convey.parseAction.func1({0x104518335, 0x22})
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/discovery.go:80 +0x24 fp=0x140000e56b0 sp=0x140000e56a0 pc=0x104504134
github.com/smartystreets/goconvey/convey.(*context).conveyInner(0x1400008e240, {0x104518335?, 0x140000c0360?}, 0x1400008c7e0)
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:261 +0x15c fp=0x140000e5740 sp=0x140000e56b0 pc=0x1045035bc
github.com/smartystreets/goconvey/convey.(*context).Convey.func1()
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:163 +0x30 fp=0x140000e5770 sp=0x140000e5740 pc=0x104503000
github.com/jtolds/gls.(*ContextManager).SetValues.func1(0x0)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:97 +0x330 fp=0x140000e58e0 sp=0x140000e5770 pc=0x1044fc3b0
github.com/jtolds/gls.EnsureGoroutineId(0x1400009c810)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/gid.go:19 +0xe8 fp=0x140000e5940 sp=0x140000e58e0 pc=0x1044fc788
github.com/jtolds/gls.(*ContextManager).SetValues(0x1400008c510, 0x1400009c7b0, 0x140000a4108)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:63 +0x150 fp=0x140000e5980 sp=0x140000e5940 pc=0x1044fc030
github.com/smartystreets/goconvey/convey.(*context).Convey(0x1400008e1e0, {0x14000099a68?, 0x14000099a68?, 0x1044ffb84?})
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:162 +0x3b8 fp=0x140000e5a10 sp=0x140000e5980 pc=0x104502f98
github.com/smartystreets/goconvey/convey.Convey({0x14000099a68, 0x2, 0x2})
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/doc.go:77 +0x3c fp=0x140000e5a40 sp=0x140000e5a10 pc=0x10450426c
github.com/agiledragon/gomonkey/v2/test.TestApplyFuncReturn.func1()
    /Users/kciuffolo/workspace/gomonkey/test/apply_func_return_test.go:17 +0x60 fp=0x140000e5a90 sp=0x140000e5a40 pc=0x10450e350
github.com/smartystreets/goconvey/convey.parseAction.func1({0x104512a0b, 0x13})
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/discovery.go:80 +0x24 fp=0x140000e5aa0 sp=0x140000e5a90 pc=0x104504134
github.com/smartystreets/goconvey/convey.(*context).conveyInner(0x1400008e1e0, {0x104512a0b?, 0x8e00000000000000?}, 0x1400008c7b0)
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:261 +0x15c fp=0x140000e5b30 sp=0x140000e5aa0 pc=0x1045035bc
github.com/smartystreets/goconvey/convey.rootConvey.func1()
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:110 +0xcc fp=0x140000e5bb0 sp=0x140000e5b30 pc=0x1045029bc
github.com/jtolds/gls.(*ContextManager).SetValues.func1(0x0)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:97 +0x330 fp=0x140000e5d20 sp=0x140000e5bb0 pc=0x1044fc3b0
github.com/jtolds/gls.EnsureGoroutineId.func1()
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/gid.go:24 +0x2c fp=0x140000e5d40 sp=0x140000e5d20 pc=0x1044fc7ec
github.com/jtolds/gls._m(0x14000099d98?, 0x1044fc71c?)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/stack_tags.go:108 +0x28 fp=0x140000e5d60 sp=0x140000e5d40 pc=0x1044fd378
github.com/jtolds/gls.github_com_jtolds_gls_markS(0x1046dac01?, 0x14000099d80?)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/stack_tags.go:56 +0x1c fp=0x140000e5d80 sp=0x140000e5d60 pc=0x1044fce1c
github.com/jtolds/gls.addStackTag(0x1046dacc0?, 0x1400009c6c0?)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/stack_tags.go:49 +0x20 fp=0x140000e5da0 sp=0x140000e5d80 pc=0x1044fcdc0
github.com/jtolds/gls.EnsureGoroutineId(0x1400009c6c0)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/gid.go:24 +0xc0 fp=0x140000e5e00 sp=0x140000e5da0 pc=0x1044fc760
github.com/jtolds/gls.(*ContextManager).SetValues(0x1400008c510, 0x1400009c660, 0x140000d2040)
    /Users/kciuffolo/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:63 +0x150 fp=0x140000e5e40 sp=0x140000e5e00 pc=0x1044fc030
github.com/smartystreets/goconvey/convey.rootConvey({0x14000099f28?, 0x1043e8990?, 0x77dd53563?})
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:105 +0x224 fp=0x140000e5ed0 sp=0x140000e5e40 pc=0x1045028b4
github.com/smartystreets/goconvey/convey.Convey({0x14000099f28, 0x3, 0x3})
    /Users/kciuffolo/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/doc.go:75 +0x50 fp=0x140000e5f00 sp=0x140000e5ed0 pc=0x104504280
github.com/agiledragon/gomonkey/v2/test.TestApplyFuncReturn(0x0?)
    /Users/kciuffolo/workspace/gomonkey/test/apply_func_return_test.go:15 +0x74 fp=0x140000e5f60 sp=0x140000e5f00 pc=0x1045047f4
testing.tRunner(0x14000082d00, 0x10458e228)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1595 +0xf8 fp=0x140000e5fb0 sp=0x140000e5f60 pc=0x104477588
testing.(*T).Run.func1()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1648 +0x2c fp=0x140000e5fd0 sp=0x140000e5fb0 pc=0x10447823c
runtime.goexit()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/asm_arm64.s:1197 +0x4 fp=0x140000e5fd0 sp=0x140000e5fd0 pc=0x1043e7a94
created by testing.(*T).Run in goroutine 1
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1648 +0x318

goroutine 1 [chan receive]:
runtime.gopark(0x10458e5e0, 0x140000da0c8, 0xe, 0x17, 0x2)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:398 +0xe0 fp=0x14000098a90 sp=0x14000098a60 pc=0x1043b5360
runtime.chanrecv(0x140000da070, 0x14000098b8f, 0x1)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/chan.go:583 +0x27c fp=0x14000098b10 sp=0x14000098a90 pc=0x10437e7ec
runtime.chanrecv1(0x10458aea0?, 0x104549960?)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/chan.go:442 +0x14 fp=0x14000098b40 sp=0x14000098b10 pc=0x10437e534
testing.(*T).Run(0x14000082b60, {0x104512a0b, 0x13}, 0x10458e228)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1649 +0x32c fp=0x14000098c00 sp=0x14000098b40 pc=0x10447810c
testing.runTests.func1(0x14000098c78?)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:2054 +0x48 fp=0x14000098c50 sp=0x14000098c00 pc=0x104479d38
testing.tRunner(0x14000082b60, 0x14000098d48)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1595 +0xf8 fp=0x14000098ca0 sp=0x14000098c50 pc=0x104477588
testing.runTests(0x140000a80a0?, {0x1046d65a0, 0xe, 0xe}, {0x104511671?, 0xf?, 0x1046dade0?})
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:2052 +0x2ec fp=0x14000098d70 sp=0x14000098ca0 pc=0x104479c3c
testing.(*M).Run(0x140000a80a0)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/testing/testing.go:1925 +0x418 fp=0x14000098ed0 sp=0x14000098d70 pc=0x104478ae8
main.main()
    _testmain.go:73 +0x90 fp=0x14000098f50 sp=0x14000098ed0 pc=0x10450e470
runtime.main()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:267 +0x244 fp=0x14000098fd0 sp=0x14000098f50 pc=0x1043b4f04
runtime.goexit()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/asm_arm64.s:1197 +0x4 fp=0x14000098fd0 sp=0x14000098fd0 pc=0x1043e7a94

goroutine 2 [force gc (idle)]:
runtime.gopark(0x10458e918, 0x1046da760, 0x11, 0x14, 0x1)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:398 +0xe0 fp=0x14000046f70 sp=0x14000046f40 pc=0x1043b5360
runtime.goparkunlock(0x0?, 0x0?, 0x0?, 0x0?)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:404 +0x34 fp=0x14000046fa0 sp=0x14000046f70 pc=0x1043b53f4
runtime.forcegchelper()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:322 +0xb4 fp=0x14000046fd0 sp=0x14000046fa0 pc=0x1043b5184
runtime.goexit()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/asm_arm64.s:1197 +0x4 fp=0x14000046fd0 sp=0x14000046fd0 pc=0x1043e7a94
created by runtime.init.6 in goroutine 1
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:310 +0x24

goroutine 3 [GC sweep wait]:
runtime.gopark(0x10458e918, 0x1046dab40, 0xc, 0x14, 0x1)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:398 +0xe0 fp=0x14000047730 sp=0x14000047700 pc=0x1043b5360
runtime.goparkunlock(0x0?, 0x0?, 0x0?, 0x0?)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:404 +0x34 fp=0x14000047760 sp=0x14000047730 pc=0x1043b53f4
runtime.bgsweep(0x0?)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mgcsweep.go:280 +0x9c fp=0x140000477b0 sp=0x14000047760 pc=0x10439eb0c
runtime.gcenable.func1()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mgc.go:200 +0x28 fp=0x140000477d0 sp=0x140000477b0 pc=0x104393958
runtime.goexit()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/asm_arm64.s:1197 +0x4 fp=0x140000477d0 sp=0x140000477d0 pc=0x1043e7a94
created by runtime.gcenable in goroutine 1
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mgc.go:200 +0x6c

goroutine 17 [GC scavenge wait]:
runtime.gopark(0x10458e918, 0x1046daee0, 0xd, 0x14, 0x2)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:398 +0xe0 fp=0x14000042720 sp=0x140000426f0 pc=0x1043b5360
runtime.goparkunlock(0x1400005c000?, 0x28?, 0xcc?, 0x1?)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:404 +0x34 fp=0x14000042750 sp=0x14000042720 pc=0x1043b53f4
runtime.(*scavengerState).park(0x1046daee0)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mgcscavenge.go:425 +0x4c fp=0x14000042780 sp=0x14000042750 pc=0x10439bfcc
runtime.bgscavenge(0x0?)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mgcscavenge.go:653 +0x44 fp=0x140000427b0 sp=0x14000042780 pc=0x10439c504
runtime.gcenable.func2()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mgc.go:201 +0x28 fp=0x140000427d0 sp=0x140000427b0 pc=0x1043938f8
runtime.goexit()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/asm_arm64.s:1197 +0x4 fp=0x140000427d0 sp=0x140000427d0 pc=0x1043e7a94
created by runtime.gcenable in goroutine 1
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mgc.go:201 +0xac

goroutine 18 [finalizer wait]:
runtime.gopark(0x10458e640, 0x10470ed68, 0x10, 0x14, 0x1)
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/proc.go:398 +0xe0 fp=0x14000046590 sp=0x14000046560 pc=0x1043b5360
runtime.runfinq()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mfinal.go:193 +0xf0 fp=0x140000467d0 sp=0x14000046590 pc=0x104392b50
runtime.goexit()
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/asm_arm64.s:1197 +0x4 fp=0x140000467d0 sp=0x140000467d0 pc=0x1043e7a94
created by runtime.createfing in goroutine 1
    /opt/homebrew/Cellar/go/1.21.5/libexec/src/runtime/mfinal.go:163 +0x4c
exit status 2
FAIL    github.com/agiledragon/gomonkey/v2/test 0.488s
kilianc commented 6 months ago

If use a different method, it doesn't work at all:

t.Run("should return a list of people", func(t *testing.T) {
    calledWithUrl := "initial value"

    stub := func(req *fasthttp.Request, resp *fasthttp.Response) error {
        calledWithUrl = string(req.URI().FullURI())
        body := "[{\"id\": 1, \"name\": \"test-name\", \"email\": \"test-email\"}]"
        resp.SetBody([]byte(body))
        return nil
    }

    gm.ApplyFunc(fasthttp.Do, stub)
    defer gm.Reset()

    result, err := FetchPeople("http://test-url")
    assert.Nil(t, err)
    assert.Equal(t, "http://test-url/", calledWithUrl)
    assert.Equal(t, 1, len(result))
    assert.Equal(t, 1, result[0].ID)
    assert.Equal(t, "test-name", result[0].Name)
    assert.Equal(t, "test-email", result[0].Email)
})
error from docker and local
runtime: g 22: unexpected return pc for github.com/kilianc/base-golang.TestFetchPeople.func4 called from 0x300000000000000
stack: frame={sp:0x40000f9e60, fp:0x40000f9ed0} stack=[0x40000f8000,0x40000fa000)
0x00000040000f9d60:  0x0202010100000000  0x000000000000001c 
0x00000040000f9d70:  0x0000000000000030  0x0000000000000020 
0x00000040000f9d80:  0x00000040000febf0  0x000000400010e4b0 
0x00000040000f9d90:  0x00000040000b4500  0x0000004000083a00 
0x00000040000f9da0:  0x00000040000b01b0  0x00000040000b4540 
0x00000040000f9db0:  0x0000000000686508  0x00000040000fea80 
0x00000040000f9dc0:  0x00000040000ec380  0x0000000000000000 
0x00000040000f9dd0:  0x0000000000000000  0x00000000002b6aa0  
0x00000040000f9de0:  0x0000004000083b8c  0x0000000000000030 
0x00000040000f9df0:  0x00000040000b01b0  0x00000000002b6b20  
0x00000040000f9e00:  0x0000000000686460  0x00000040000fea80 
0x00000040000f9e10:  0x0000000000000003  0x00000040000f9dd8 
0x00000040000f9e20:  0x0000000000000000  0x00000040000f9e28 
0x00000040000f9e30:  0x0000000000313dfc   0x0000000000686460 
0x00000040000f9e40:  0x00000000003c3df9  0x000000400010a460 
0x00000040000f9e50:  0x0000000000000001  0x0000000000000001 
0x00000040000f9e60: <0x0300000000000000  0x00000040000ec380 
0x00000040000f9e70:  0x00000040000fea80  0x0000000000448c0a 
0x00000040000f9e80:  0x0000000000000000  0x0000000000000000 
0x00000040000f9e90:  0x0000000000313480   0x00000040000ec380 
0x00000040000f9ea0:  0x00000000003134e0   0x00000040000fea80 
0x00000040000f9eb0:  0x000000000059e120  0x00000000006293c0 
0x00000040000f9ec0:  0x0000000000000000  0x0000000000000000 
0x00000040000f9ed0: >0x0000000000000000  0x0000004000093e90 
0x00000040000f9ee0:  0x0000004000093ea0  0x0000004000093f58 
0x00000040000f9ef0:  0x00000000001242c8   0x00000000003d6b20 
0x00000040000f9f00:  0x000000000000002a  0x0000049ea8e0d757 
0x00000040000f9f10:  0x00000000006293c0  0x0000004000093f48 
0x00000040000f9f20:  0x00000000000a6c1c   0x0000000065765826 
0x00000040000f9f30:  0x000000400ed7c24b  0x0ed7c24b00000000 
0x00000040000f9f40:  0x0000000065765826  0x0000004000093f58 
0x00000040000f9f50:  0x0000004000083860  0x0000004000093fa8 
0x00000040000f9f60:  0x0000000000124f7c   0x0000000000000000 
0x00000040000f9f70:  0x0300000000000000  0x0000000000124340  
0x00000040000f9f80:  0x0000004000083860  0x0000000000124390  
0x00000040000f9f90:  0x0000004000083860  0x0000004000093f78 
0x00000040000f9fa0:  0x0000004000093f88  0x0000000000000000 
0x00000040000f9fb0:  0x0000000000084ad4   0x0000004000083860 
0x00000040000f9fc0:  0x00000000003fbdd8  0x0000000000000000 
fatal error: unknown caller pc

runtime stack:
runtime.throw({0x3c8a65?, 0x0?})
        /usr/local/go/src/runtime/panic.go:1077 +0x40 fp=0xffffd53ff8f0 sp=0xffffd53ff8c0 pc=0x4fb10
runtime.(*unwinder).next(0xffffd53ffaf8)
        /usr/local/go/src/runtime/traceback.go:475 +0x2e4 fp=0xffffd53ff980 sp=0xffffd53ff8f0 pc=0x75e44
runtime.copystack(0x40000831e0, 0x2000)
        /usr/local/go/src/runtime/stack.go:934 +0x244 fp=0xffffd53ffc60 sp=0xffffd53ff980 pc=0x698f4
runtime.newstack()
        /usr/local/go/src/runtime/stack.go:1116 +0x384 fp=0xffffd53ffe00 sp=0xffffd53ffc60 pc=0x69d44
traceback: unexpected SPWRITE function runtime.morestack
runtime.morestack()
        /usr/local/go/src/runtime/asm_arm64.s:316 +0x70 fp=0xffffd53ffe00 sp=0xffffd53ffe00 pc=0x82770

goroutine 22 [copystack]:
runtime.mallocgc(0x70?, 0x389fc0?, 0x1?)
        /usr/local/go/src/runtime/malloc.go:952 +0x6fc fp=0x40000f93a0 sp=0x40000f93a0 pc=0x2217c
runtime.newobject(0x0?)
        /usr/local/go/src/runtime/malloc.go:1328 +0x2c fp=0x40000f93d0 sp=0x40000f93a0 pc=0x222ec
context.WithDeadlineCause({0x41af30, 0x6bb720}, {0x40000934c8?, 0x2db9c0?, 0x685e20?}, {0x0?, 0x0})
        /usr/local/go/src/context/context.go:621 +0x90 fp=0x40000f9480 sp=0x40000f93d0 pc=0x116940
context.WithDeadline({0x41af30?, 0x6bb720?}, {0x3c852c?, 0x4000093508?, 0x685e20?})
        /usr/local/go/src/context/context.go:607 +0x30 fp=0x40000f94d0 sp=0x40000f9480 pc=0x116870
github.com/valyala/fasthttp.resolveTCPAddrs({0x40000b4540?, 0x3476a0?}, 0x0, {0x0, 0x0}, {0x903e8?, 0x40000936b8?, 0x685e20?})
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:429 +0xb4 fp=0x40000f9650 sp=0x40000f94d0 pc=0x2dba04
github.com/valyala/fasthttp.(*TCPDialer).getTCPAddrs(0x67b780, {0x40000b4540, 0x20}, 0x0?, {0x4000093700?, 0x1f?, 0x685e20?})
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:393 +0x138 fp=0x40000f9720 sp=0x40000f9650 pc=0x2db768
github.com/valyala/fasthttp.(*TCPDialer).dial(0x67b780, {0x40000b4540, 0x20}, 0x0, 0x4000093848?)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:284 +0x90 fp=0x40000f97e0 sp=0x40000f9720 pc=0x2dada0
github.com/valyala/fasthttp.(*TCPDialer).Dial(0xed7f566000b4540?, {0x40000b4540?, 0x4000093848?})
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:188 +0x2c fp=0x40000f9820 sp=0x40000f97e0 pc=0x2dabbc
github.com/valyala/fasthttp.Dial({0x40000b4540?, 0x20?})
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:37 +0x34 fp=0x40000f9850 sp=0x40000f9820 pc=0x2daa24
github.com/valyala/fasthttp.dialAddr({0x40000b4540, 0x20}, 0x0, 0x0, 0x1, 0x4000097800?, 0x0)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1929 +0xac fp=0x40000f98c0 sp=0x40000f9850 pc=0x2baefc
github.com/valyala/fasthttp.(*HostClient).dialHostHard(0x4000083a00, 0x0)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1860 +0x154 fp=0x40000f9980 sp=0x40000f98c0 pc=0x2ba924
github.com/valyala/fasthttp.(*HostClient).acquireConn(0x4000083a00, 0x0, 0x0)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1521 +0x228 fp=0x40000f9af0 sp=0x40000f9980 pc=0x2b8d48
github.com/valyala/fasthttp.(*transport).RoundTrip(0x0?, 0x4000083a00, 0x40000fea80, 0x40000ec380)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:2852 +0xa8 fp=0x40000f9bb0 sp=0x40000f9af0 pc=0x2bb868
github.com/valyala/fasthttp.(*HostClient).doNonNilReqResp(0x4000083a00, 0x40000fea80, 0x40000ec380)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1373 +0x1e8 fp=0x40000f9c20 sp=0x40000f9bb0 pc=0x2b89d8
github.com/valyala/fasthttp.(*HostClient).do(0x40000a2348?, 0x18?, 0x40000ec380)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1323 +0x70 fp=0x40000f9c90 sp=0x40000f9c20 pc=0x2b8700
github.com/valyala/fasthttp.(*HostClient).Do(0x4000083a00, 0x40000fea80, 0x40000b4560?)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1268 +0x15c fp=0x40000f9d30 sp=0x40000f9c90 pc=0x2b848c
github.com/valyala/fasthttp.(*Client).Do(0x686460, 0x3c3df9?, 0x400010a460?)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:551 +0x498 fp=0x40000f9e30 sp=0x40000f9d30 pc=0x2b68d8
github.com/valyala/fasthttp.Do(0x40000ec380?, 0x40000fea80?)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:36 +0x2c fp=0x40000f9e60 sp=0x40000f9e30 pc=0x2b5f9c
github.com/kilianc/base-golang.TestFetchPeople.func4(0x4000093e90?)
        /app/fetchpeople_test.go:57 +0x2c fp=0x40000f9ed0 sp=0x40000f9e60 pc=0x313dfc
runtime: g 22: unexpected return pc for github.com/kilianc/base-golang.TestFetchPeople.func4 called from 0x300000000000000
stack: frame={sp:0x40000f9e60, fp:0x40000f9ed0} stack=[0x40000f8000,0x40000fa000)
0x00000040000f9d60:  0x0202010100000000  0x000000000000001c 
0x00000040000f9d70:  0x0000000000000030  0x0000000000000020 
0x00000040000f9d80:  0x00000040000febf0  0x000000400010e4b0 
0x00000040000f9d90:  0x00000040000b4500  0x0000004000083a00 
0x00000040000f9da0:  0x00000040000b01b0  0x00000040000b4540 
0x00000040000f9db0:  0x0000000000686508  0x00000040000fea80 
0x00000040000f9dc0:  0x00000040000ec380  0x0000000000000000 
0x00000040000f9dd0:  0x0000000000000000  0x00000000002b6aa0  
0x00000040000f9de0:  0x0000004000083b8c  0x0000000000000030 
0x00000040000f9df0:  0x00000040000b01b0  0x00000000002b6b20  
0x00000040000f9e00:  0x0000000000686460  0x00000040000fea80 
0x00000040000f9e10:  0x0000000000000003  0x00000040000f9dd8 
0x00000040000f9e20:  0x0000000000000000  0x00000040000f9e28 
0x00000040000f9e30:  0x0000000000313dfc   0x0000000000686460 
0x00000040000f9e40:  0x00000000003c3df9  0x000000400010a460 
0x00000040000f9e50:  0x0000000000000001  0x0000000000000001 
0x00000040000f9e60: <0x0300000000000000  0x00000040000ec380 
0x00000040000f9e70:  0x00000040000fea80  0x0000000000448c0a 
0x00000040000f9e80:  0x0000000000000000  0x0000000000000000 
0x00000040000f9e90:  0x0000000000313480   0x00000040000ec380 
0x00000040000f9ea0:  0x00000000003134e0   0x00000040000fea80 
0x00000040000f9eb0:  0x000000000059e120  0x00000000006293c0 
0x00000040000f9ec0:  0x0000000000000000  0x0000000000000000 
0x00000040000f9ed0: >0x0000000000000000  0x0000004000093e90 
0x00000040000f9ee0:  0x0000004000093ea0  0x0000004000093f58 
0x00000040000f9ef0:  0x00000000001242c8   0x00000000003d6b20 
0x00000040000f9f00:  0x000000000000002a  0x0000049ea8e0d757 
0x00000040000f9f10:  0x00000000006293c0  0x0000004000093f48 
0x00000040000f9f20:  0x00000000000a6c1c   0x0000000065765826 
0x00000040000f9f30:  0x000000400ed7c24b  0x0ed7c24b00000000 
0x00000040000f9f40:  0x0000000065765826  0x0000004000093f58 
0x00000040000f9f50:  0x0000004000083860  0x0000004000093fa8 
0x00000040000f9f60:  0x0000000000124f7c   0x0000000000000000 
0x00000040000f9f70:  0x0300000000000000  0x0000000000124340  
0x00000040000f9f80:  0x0000004000083860  0x0000000000124390  
0x00000040000f9f90:  0x0000004000083860  0x0000004000093f78 
0x00000040000f9fa0:  0x0000004000093f88  0x0000000000000000 
0x00000040000f9fb0:  0x0000000000084ad4   0x0000004000083860 
0x00000040000f9fc0:  0x00000000003fbdd8  0x0000000000000000 
created by testing.(*T).Run in goroutine 18
        /usr/local/go/src/testing/testing.go:1648 +0x318

goroutine 1 [chan receive]:
runtime.gopark(0x3fbec0, 0x40000ee448, 0xe, 0x17, 0x2)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x40000f7a90 sp=0x40000f7a60 pc=0x52510
runtime.chanrecv(0x40000ee3f0, 0x40000f7b8f, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x27c fp=0x40000f7b10 sp=0x40000f7a90 pc=0x1af2c
runtime.chanrecv1(0x3bc900?, 0x3476a0?)
        /usr/local/go/src/runtime/chan.go:442 +0x14 fp=0x40000f7b40 sp=0x40000f7b10 pc=0x1ac74
testing.(*T).Run(0x4000082b60, {0x3c7ab1, 0xf}, 0x3fbce8)
        /usr/local/go/src/testing/testing.go:1649 +0x32c fp=0x40000f7c00 sp=0x40000f7b40 pc=0x124e4c
testing.runTests.func1(0x40000f7c78?)
        /usr/local/go/src/testing/testing.go:2054 +0x48 fp=0x40000f7c50 sp=0x40000f7c00 pc=0x126a78
testing.tRunner(0x4000082b60, 0x40000f7d48)
        /usr/local/go/src/testing/testing.go:1595 +0xf8 fp=0x40000f7ca0 sp=0x40000f7c50 pc=0x1242c8
testing.runTests(0x400009ec80?, {0x674720, 0x1, 0x1}, {0x3c7afc?, 0xf?, 0x685e20?})
        /usr/local/go/src/testing/testing.go:2052 +0x2ec fp=0x40000f7d70 sp=0x40000f7ca0 pc=0x12697c
testing.(*M).Run(0x400009ec80)
        /usr/local/go/src/testing/testing.go:1925 +0x418 fp=0x40000f7ed0 sp=0x40000f7d70 pc=0x125828
main.main()
        _testmain.go:47 +0x90 fp=0x40000f7f50 sp=0x40000f7ed0 pc=0x3140e0
runtime.main()
        /usr/local/go/src/runtime/proc.go:267 +0x244 fp=0x40000f7fd0 sp=0x40000f7f50 pc=0x520b4
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x40000f7fd0 sp=0x40000f7fd0 pc=0x84ad4

goroutine 2 [force gc (idle)]:
runtime.gopark(0x3fc1f8, 0x684e30, 0x11, 0x14, 0x1)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x400003cf70 sp=0x400003cf40 pc=0x52510
runtime.goparkunlock(0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:404 +0x34 fp=0x400003cfa0 sp=0x400003cf70 pc=0x525a4
runtime.forcegchelper()
        /usr/local/go/src/runtime/proc.go:322 +0xb4 fp=0x400003cfd0 sp=0x400003cfa0 pc=0x52334
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x400003cfd0 sp=0x400003cfd0 pc=0x84ad4
created by runtime.init.6 in goroutine 1
        /usr/local/go/src/runtime/proc.go:310 +0x24

goroutine 3 [GC sweep wait]:
runtime.gopark(0x3fc1f8, 0x6855e0, 0xc, 0x14, 0x1)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x400003d730 sp=0x400003d700 pc=0x52510
runtime.goparkunlock(0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:404 +0x34 fp=0x400003d760 sp=0x400003d730 pc=0x525a4
runtime.bgsweep(0x0?)
        /usr/local/go/src/runtime/mgcsweep.go:280 +0x9c fp=0x400003d7b0 sp=0x400003d760 pc=0x3b38c
runtime.gcenable.func1()
        /usr/local/go/src/runtime/mgc.go:200 +0x28 fp=0x400003d7d0 sp=0x400003d7b0 pc=0x301e8
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x400003d7d0 sp=0x400003d7d0 pc=0x84ad4
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:200 +0x6c

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x3fc1f8, 0x685ea0, 0xd, 0x14, 0x2)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x400003df20 sp=0x400003def0 pc=0x52510
runtime.goparkunlock(0x4000016070?, 0xa8?, 0x3e?, 0x1?)
        /usr/local/go/src/runtime/proc.go:404 +0x34 fp=0x400003df50 sp=0x400003df20 pc=0x525a4
runtime.(*scavengerState).park(0x685ea0)
        /usr/local/go/src/runtime/mgcscavenge.go:425 +0x4c fp=0x400003df80 sp=0x400003df50 pc=0x3885c
runtime.bgscavenge(0x0?)
        /usr/local/go/src/runtime/mgcscavenge.go:653 +0x44 fp=0x400003dfb0 sp=0x400003df80 pc=0x38d84
runtime.gcenable.func2()
        /usr/local/go/src/runtime/mgc.go:201 +0x28 fp=0x400003dfd0 sp=0x400003dfb0 pc=0x30188
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x400003dfd0 sp=0x400003dfd0 pc=0x84ad4
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:201 +0xac

goroutine 17 [finalizer wait]:
runtime.gopark(0x3fbf20, 0x6bb828, 0x10, 0x14, 0x1)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x400003c590 sp=0x400003c560 pc=0x52510
runtime.runfinq()
        /usr/local/go/src/runtime/mfinal.go:193 +0xf0 fp=0x400003c7d0 sp=0x400003c590 pc=0x2f3e0
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x400003c7d0 sp=0x400003c7d0 pc=0x84ad4
created by runtime.createfing in goroutine 1
        /usr/local/go/src/runtime/mfinal.go:163 +0x4c

goroutine 18 [chan receive]:
runtime.gopark(0x3fbec0, 0x40000ee608, 0xe, 0x17, 0x2)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x4000092db0 sp=0x4000092d80 pc=0x52510
runtime.chanrecv(0x40000ee5b0, 0x4000092eaf, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x27c fp=0x4000092e30 sp=0x4000092db0 pc=0x1af2c
runtime.chanrecv1(0x3bc900?, 0x3476a0?)
        /usr/local/go/src/runtime/chan.go:442 +0x14 fp=0x4000092e60 sp=0x4000092e30 pc=0x1ac74
testing.(*T).Run(0x4000082d00, {0x3d6b4a, 0x2a}, 0x3fbdd8)
        /usr/local/go/src/testing/testing.go:1649 +0x32c fp=0x4000092f20 sp=0x4000092e60 pc=0x124e4c
github.com/kilianc/base-golang.TestFetchPeople(0x0?)
        /app/fetchpeople_test.go:56 +0x104 fp=0x4000092f60 sp=0x4000092f20 pc=0x313734
testing.tRunner(0x4000082d00, 0x3fbce8)
        /usr/local/go/src/testing/testing.go:1595 +0xf8 fp=0x4000092fb0 sp=0x4000092f60 pc=0x1242c8
testing.(*T).Run.func1()
        /usr/local/go/src/testing/testing.go:1648 +0x2c fp=0x4000092fd0 sp=0x4000092fb0 pc=0x124f7c
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x4000092fd0 sp=0x4000092fd0 pc=0x84ad4
created by testing.(*T).Run in goroutine 1
        /usr/local/go/src/testing/testing.go:1648 +0x318

goroutine 23 [sleep]:
runtime.gopark(0x3fc238, 0x4000180000, 0x13, 0x13, 0x1)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x40000386a0 sp=0x4000038670 pc=0x52510
time.Sleep(0x3b9aca00)
        /usr/local/go/src/runtime/time.go:195 +0x108 fp=0x40000386e0 sp=0x40000386a0 pc=0x81818
github.com/valyala/fasthttp.(*Client).mCleaner(0x686460, 0x400010e4b0)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:580 +0x84 fp=0x40000387b0 sp=0x40000386e0 pc=0x2b6d54
github.com/valyala/fasthttp.(*Client).Do.func4()
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:548 +0x2c fp=0x40000387d0 sp=0x40000387b0 pc=0x2b6a6c
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x40000387d0 sp=0x40000387d0 pc=0x84ad4
created by github.com/valyala/fasthttp.(*Client).Do in goroutine 22
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:548 +0x480

goroutine 24 [sleep]:
runtime.gopark(0x3fc238, 0x4000180050, 0x13, 0x13, 0x1)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x4000038eb0 sp=0x4000038e80 pc=0x52510
time.Sleep(0x2540be400)
        /usr/local/go/src/runtime/time.go:195 +0x108 fp=0x4000038ef0 sp=0x4000038eb0 pc=0x81818
github.com/valyala/fasthttp.(*HostClient).connsCleaner(0x4000083a00)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1626 +0x50 fp=0x4000038fb0 sp=0x4000038ef0 pc=0x2b9560
github.com/valyala/fasthttp.(*HostClient).acquireConn.func3()
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1518 +0x28 fp=0x4000038fd0 sp=0x4000038fb0 pc=0x2b90f8
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x4000038fd0 sp=0x4000038fd0 pc=0x84ad4
created by github.com/valyala/fasthttp.(*HostClient).acquireConn in goroutine 22
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/client.go:1518 +0x21c

goroutine 25 [sleep]:
runtime.gopark(0x3fc238, 0x40001800a0, 0x13, 0x13, 0x1)
        /usr/local/go/src/runtime/proc.go:398 +0xe0 fp=0x4000039710 sp=0x40000396e0 pc=0x52510
time.Sleep(0x3b9aca00)
        /usr/local/go/src/runtime/time.go:195 +0x108 fp=0x4000039750 sp=0x4000039710 pc=0x81818
github.com/valyala/fasthttp.(*TCPDialer).tcpAddrsClean(0x67b780)
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:370 +0x34 fp=0x40000397b0 sp=0x4000039750 pc=0x2db4e4
github.com/valyala/fasthttp.(*TCPDialer).dial.func1.1()
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:280 +0x28 fp=0x40000397d0 sp=0x40000397b0 pc=0x2db078
runtime.goexit()
        /usr/local/go/src/runtime/asm_arm64.s:1197 +0x4 fp=0x40000397d0 sp=0x40000397d0 pc=0x84ad4
created by github.com/valyala/fasthttp.(*TCPDialer).dial.func1 in goroutine 22
        /go/pkg/mod/github.com/valyala/fasthttp@v1.51.0/tcpdialer.go:280 +0xc0
exit status 2
FAIL    github.com/kilianc/base-golang  0.006s
kilianc commented 6 months ago

more logs with the latest changes, 2 failed out of 100 local runs, but almost 80% failure in docker.

error from docker and local
go version go1.21.5 darwin/arm64
Run 1
PASS
ok      github.com/kilianc/base-golang  0.460s
Run 2
PASS
ok      github.com/kilianc/base-golang  0.266s
Run 3
PASS
ok      github.com/kilianc/base-golang  0.266s
Run 4
PASS
ok      github.com/kilianc/base-golang  0.232s
Run 5
PASS
ok      github.com/kilianc/base-golang  0.266s
Run 6
PASS
ok      github.com/kilianc/base-golang  0.257s
Run 7
PASS
ok      github.com/kilianc/base-golang  0.264s
Run 8
PASS
ok      github.com/kilianc/base-golang  0.245s
Run 9
PASS
ok      github.com/kilianc/base-golang  0.271s
Run 10
PASS
ok      github.com/kilianc/base-golang  0.259s
Run 11
PASS
ok      github.com/kilianc/base-golang  0.261s
Run 12
PASS
ok      github.com/kilianc/base-golang  0.271s
Run 13
PASS
ok      github.com/kilianc/base-golang  0.267s
Run 14
PASS
ok      github.com/kilianc/base-golang  0.251s
Run 15
PASS
ok      github.com/kilianc/base-golang  0.237s
Run 16
PASS
ok      github.com/kilianc/base-golang  0.248s
Run 17
PASS
ok      github.com/kilianc/base-golang  0.257s
Run 18
PASS
ok      github.com/kilianc/base-golang  0.263s
Run 19
PASS
ok      github.com/kilianc/base-golang  0.264s
Run 20
PASS
ok      github.com/kilianc/base-golang  0.202s
Run 21
PASS
ok      github.com/kilianc/base-golang  0.210s
Run 22
PASS
ok      github.com/kilianc/base-golang  0.242s
Run 23
PASS
ok      github.com/kilianc/base-golang  0.255s
Run 24
PASS
ok      github.com/kilianc/base-golang  0.262s
Run 25
PASS
ok      github.com/kilianc/base-golang  0.270s
Run 26
PASS
ok      github.com/kilianc/base-golang  0.221s
Run 27
PASS
ok      github.com/kilianc/base-golang  0.462s
Run 28
PASS
ok      github.com/kilianc/base-golang  0.544s
Run 29
PASS
ok      github.com/kilianc/base-golang  0.234s
Run 30
PASS
ok      github.com/kilianc/base-golang  0.230s
Run 31
PASS
ok      github.com/kilianc/base-golang  0.236s
Run 32
PASS
ok      github.com/kilianc/base-golang  0.224s
Run 33
PASS
ok      github.com/kilianc/base-golang  0.236s
Run 34
--- FAIL: TestFetchPeople (0.00s)
    --- FAIL: TestFetchPeople/should_return_a_list_of_people (0.00s)
        fetchpeople_test.go:47:
                Error Trace:    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:47
                Error:          Expected nil, but got: &errors.errorString{s:"test-error"}
                Test:           TestFetchPeople/should_return_a_list_of_people
        fetchpeople_test.go:48:
                Error Trace:    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:48
                Error:          Not equal:
                                expected: "http://test-url/"
                                actual  : "initial value"

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1 @@
                                -http://test-url/
                                +initial value
                Test:           TestFetchPeople/should_return_a_list_of_people
        fetchpeople_test.go:49:
                Error Trace:    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:49
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestFetchPeople/should_return_a_list_of_people
panic: runtime error: index out of range [0] with length 0 [recovered]
    panic: runtime error: index out of range [0] with length 0

goroutine 9 [running]:
testing.tRunner.func1.2({0x100e62400, 0x14000018438})
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1545 +0x1c4
testing.tRunner.func1()
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1548 +0x364
panic({0x100e62400?, 0x14000018438?})
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/runtime/panic.go:914 +0x200
github.com/kilianc/base-golang.TestFetchPeople.func3(0x0?)
    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:50 +0x2b0
testing.tRunner(0x1400014aea0, 0x14000029690)
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1595 +0xf8
created by testing.(*T).Run in goroutine 6
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1648 +0x318
exit status 2
FAIL    github.com/kilianc/base-golang  0.127s
Run 35
PASS
ok      github.com/kilianc/base-golang  0.200s
Run 36
PASS
ok      github.com/kilianc/base-golang  0.223s
Run 37
PASS
ok      github.com/kilianc/base-golang  0.228s
Run 38
PASS
ok      github.com/kilianc/base-golang  0.224s
Run 39
PASS
ok      github.com/kilianc/base-golang  0.200s
Run 40
PASS
ok      github.com/kilianc/base-golang  0.221s
Run 41
PASS
ok      github.com/kilianc/base-golang  0.212s
Run 42
PASS
ok      github.com/kilianc/base-golang  0.226s
Run 43
PASS
ok      github.com/kilianc/base-golang  0.224s
Run 44
PASS
ok      github.com/kilianc/base-golang  0.217s
Run 45
PASS
ok      github.com/kilianc/base-golang  0.230s
Run 46
PASS
ok      github.com/kilianc/base-golang  0.230s
Run 47
PASS
ok      github.com/kilianc/base-golang  0.230s
Run 48
PASS
ok      github.com/kilianc/base-golang  0.238s
Run 49
PASS
ok      github.com/kilianc/base-golang  0.229s
Run 50
PASS
ok      github.com/kilianc/base-golang  0.224s
Run 51
PASS
ok      github.com/kilianc/base-golang  0.239s
Run 52
PASS
ok      github.com/kilianc/base-golang  0.231s
Run 53
PASS
ok      github.com/kilianc/base-golang  0.223s
Run 54
PASS
ok      github.com/kilianc/base-golang  0.239s
Run 55
--- FAIL: TestFetchPeople (0.00s)
    --- FAIL: TestFetchPeople/should_return_a_list_of_people (0.00s)
        fetchpeople_test.go:47:
                Error Trace:    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:47
                Error:          Expected nil, but got: &errors.errorString{s:"test-error"}
                Test:           TestFetchPeople/should_return_a_list_of_people
        fetchpeople_test.go:48:
                Error Trace:    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:48
                Error:          Not equal:
                                expected: "http://test-url/"
                                actual  : "initial value"

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1 @@
                                -http://test-url/
                                +initial value
                Test:           TestFetchPeople/should_return_a_list_of_people
        fetchpeople_test.go:49:
                Error Trace:    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:49
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestFetchPeople/should_return_a_list_of_people
panic: runtime error: index out of range [0] with length 0 [recovered]
    panic: runtime error: index out of range [0] with length 0

goroutine 22 [running]:
testing.tRunner.func1.2({0x1047ea400, 0x140000b22b8})
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1545 +0x1c4
testing.tRunner.func1()
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1548 +0x364
panic({0x1047ea400?, 0x140000b22b8?})
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/runtime/panic.go:914 +0x200
github.com/kilianc/base-golang.TestFetchPeople.func3(0x0?)
    /Users/kciuffolo/workspace/base-golang/fetchpeople_test.go:50 +0x2b0
testing.tRunner(0x1400008bba0, 0x140000a1650)
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1595 +0xf8
created by testing.(*T).Run in goroutine 19
    /Users/kciuffolo/.gvm/gos/go1.21.5/src/testing/testing.go:1648 +0x318
exit status 2
FAIL    github.com/kilianc/base-golang  0.110s
Run 56
PASS
ok      github.com/kilianc/base-golang  0.241s
Run 57
PASS
ok      github.com/kilianc/base-golang  0.222s
Run 58
PASS
ok      github.com/kilianc/base-golang  0.236s
Run 59
PASS
ok      github.com/kilianc/base-golang  0.238s
Run 60
PASS
ok      github.com/kilianc/base-golang  0.238s
Run 61
PASS
ok      github.com/kilianc/base-golang  0.226s
Run 62
PASS
ok      github.com/kilianc/base-golang  0.237s
Run 63
PASS
ok      github.com/kilianc/base-golang  0.221s
Run 64
PASS
ok      github.com/kilianc/base-golang  0.223s
Run 65
PASS
ok      github.com/kilianc/base-golang  0.227s
Run 66
PASS
ok      github.com/kilianc/base-golang  0.223s
Run 67
PASS
ok      github.com/kilianc/base-golang  0.220s
Run 68
PASS
ok      github.com/kilianc/base-golang  0.240s
Run 69
PASS
ok      github.com/kilianc/base-golang  0.219s
Run 70
PASS
ok      github.com/kilianc/base-golang  0.249s
Run 71
PASS
ok      github.com/kilianc/base-golang  0.240s
Run 72
PASS
ok      github.com/kilianc/base-golang  0.314s
Run 73
PASS
ok      github.com/kilianc/base-golang  0.255s
Run 74
PASS
ok      github.com/kilianc/base-golang  0.288s
Run 75
PASS
ok      github.com/kilianc/base-golang  0.288s
Run 76
PASS
ok      github.com/kilianc/base-golang  0.266s
Run 77
PASS
ok      github.com/kilianc/base-golang  0.253s
Run 78
PASS
ok      github.com/kilianc/base-golang  0.265s
Run 79
PASS
ok      github.com/kilianc/base-golang  0.283s
Run 80
PASS
ok      github.com/kilianc/base-golang  0.297s
Run 81
PASS
ok      github.com/kilianc/base-golang  0.266s
Run 82
PASS
ok      github.com/kilianc/base-golang  0.265s
Run 83
PASS
ok      github.com/kilianc/base-golang  0.282s
Run 84
PASS
ok      github.com/kilianc/base-golang  0.308s
Run 85
PASS
ok      github.com/kilianc/base-golang  0.289s
Run 86
PASS
ok      github.com/kilianc/base-golang  0.286s
Run 87
PASS
ok      github.com/kilianc/base-golang  0.220s
Run 88
PASS
ok      github.com/kilianc/base-golang  0.267s
Run 89
PASS
ok      github.com/kilianc/base-golang  0.255s
Run 90
PASS
ok      github.com/kilianc/base-golang  0.268s
Run 91
PASS
ok      github.com/kilianc/base-golang  0.244s
Run 92
PASS
ok      github.com/kilianc/base-golang  0.282s
Run 93
PASS
ok      github.com/kilianc/base-golang  0.287s
Run 94
PASS
ok      github.com/kilianc/base-golang  0.285s
Run 95
PASS
ok      github.com/kilianc/base-golang  0.281s
Run 96
PASS
ok      github.com/kilianc/base-golang  0.241s
Run 97
PASS
ok      github.com/kilianc/base-golang  0.488s
Run 98
PASS
ok      github.com/kilianc/base-golang  0.547s
Run 99
PASS
ok      github.com/kilianc/base-golang  0.707s
Run 100
PASS
ok      github.com/kilianc/base-golang  0.243s
SmallSmartMouse commented 3 months ago

do you solve?

kilianc commented 2 months ago

no

xhd2015 commented 2 months ago

@kilianc @SmallSmartMouse why not try https://github.com/xhd2015/xgo?

xhd2015 commented 2 months ago

@kilianc Sorry but found that I have replied in another place. Let me issue a PR for you

xhd2015 commented 2 months ago

@kilianc Sorry but found that I have replied in another place. Let me issue a PR for you

@kilianc @SmallSmartMouse I created a PR here: https://github.com/kilianc/base-golang/pull/3