Trying to run test with pact-go library.
# install pact-go dynamic library
go install github.com/pact-foundation/pact-go/v2@v2.0.4
PACT_GO=$(command -v pact-go)
sudo "$PACT_GO" -l DEBUG install
# run test
go test -v -race ./...
=== RUN TestConsumerV4
2024/05/28 00:11:43 [DEBUG] pact setup
2024/05/28 00:11:43 [DEBUG] initialising native interface
2024/05/28 00:11:43 [DEBUG] initialised native log level to TRACE (5)
2024/05/28 00:11:43 [DEBUG] initialised native log to log to stdout
2024/05/28 00:11:43 [DEBUG] log_to_stdout res 0
2024/05/28 00:11:43 [DEBUG] pact add V4 interaction
2024-05-28T00:11:43.590743Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_pact - ref = 1, keys = [1]
2024-05-28T00:11:43.590780Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_pact before - ref = 1, inner = RefCell { value: PactHandleInner { pact: V4Pact { consumer: Consumer { name: "PactGoV4Consumer" }, provider: Provider { name: "V4Provider" }, interactions: [], metadata: {"pactRust": Object {"ffi": String("0.4.16")}}, plugin_data: [] }, mock_server_started: false, specification_version: V4 } }
2024-05-28T00:11:43.590889Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_pact after - ref = 1, inner = RefCell { value: PactHandleInner { pact: V4Pact { consumer: Consumer { name: "PactGoV4Consumer" }, provider: Provider { name: "V4Provider" }, interactions: [SynchronousHttp { id: None, key: None, description: "", provider_states: [], request: HttpRequest { method: "GET", path: "/", query: None, headers: None, body: Missing, matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }, response: HttpResponse { status: 200, headers: None, body: Missing, matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }, comments: {}, pending: false, plugin_config: {}, interaction_markup: InteractionMarkup { markup: "", markup_type: "" }, transport: None }], metadata: {"pactRust": Object {"ffi": String("0.4.16")}}, plugin_data: [] }, mock_server_started: false, specification_version: V4 } }
2024-05-28T00:11:43.590924Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_interaction - index = 1, interaction = 1
2024-05-28T00:11:43.590927Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_interaction - keys = [1]
2024-05-28T00:11:43.590930Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_interaction - inner = PactHandleInner { pact: V4Pact { consumer: Consumer { name: "PactGoV4Consumer" }, provider: Provider { name: "V4Provider" }, interactions: [SynchronousHttp { id: None, key: None, description: "", provider_states: [], request: HttpRequest { method: "GET", path: "/", query: None, headers: None, body: Missing, matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }, response: HttpResponse { status: 200, headers: None, body: Missing, matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }, comments: {}, pending: false, plugin_config: {}, interaction_markup: InteractionMarkup { markup: "", markup_type: "" }, transport: None }], metadata: {"pactRust": Object {"ffi": String("0.4.16")}}, plugin_data: [] }, mock_server_started: false, specification_version: V4 }
2024-05-28T00:11:43.590945Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_interaction - index = 195, interaction = 38304
2024-05-28T00:11:43.590948Z TRACE ThreadId(01) pact_ffi::mock_server::handles: with_interaction - keys = [1]
runtime: g 21: unexpected return pc for github.com/pact-foundation/pact-go/v2/internal/native.(*Interaction).GivenWithParameter called from 0xe18a8f
stack: frame={sp:0xc00013dbf8, fp:0xc00013dd28} stack=[0xc00013c000,0xc00013e000)
0x000000c00013daf8: 0x0000000002940000 0x000000c00013dac8
0x000000c00013db08: 0x0000000000c3914c <github.com/pact-foundation/pact-go/v2/internal/native.(*Interaction).GivenWithParameter+0x00000000000000cc> 0x0000000000000000
0x000000c00013db18: 0x0000000000000000 0x0000000000000000
0x000000c00013db28: 0x000000c000111180 0x0000000000f32940
0x000000c00013db38: 0x0000000000e18a8f 0x0000000002952a70
0x000000c00013db48: 0x0000000002949090 0x0000000002952120
0x000000c00013db58: 0x000000c000111190 0x000000c000111180
0x000000c00013db68: 0x000000c00013dda0 0x0000000000000000
0x000000c00013db78: 0x0000000000c39680 <github.com/pact-foundation/pact-go/v2/internal/native.(*Interaction).GivenWithParameter.deferwrap1+0x0000000000000000> 0x0000000002949090
0x000000c00013db88: 0x0000000000000000 0x0000000000000000
0x000000c00013db98: 0x0000000000d5d880 0x000000c00013de28
0x000000c00013dba8: 0x000000c00013dd18 0x000000c00013dd18
0x000000c00013dbb8: 0x0000000000000000 0x0000000000000000
0x000000c00013dbc8: 0x0000000000000000 0x0000000005000104
0x000000c00013dbd8: 0x0000000000000000 0x0000000000000000
0x000000c00013dbe8: 0x0000000000000000 0x0000000000000000
0x000000c00013dbf8: <0x0000000000000000 0x0000000000000000
0x000000c00013dc08: 0x0000000000000000 0x000000c00013de28
0x000000c00013dc18: 0x000000000000000f 0x000000c00013de28
0x000000c00013dc28: 0x000000c0001247b0 0x0000000000e2171c
0x000000c00013dc38: 0x000000c00013ded8 0x0000000000cac63a <pact-go-test.TestConsumerV4+0x000000000000023a>
0x000000c00013dc48: 0x000000c000111170 0x0000000000e2171c
0x000000c00013dc58: 0x0000000000e18a8f 0x000000c00013de28
0x000000c00013dc68: 0x0000000000000000 0x0000000000000000
0x000000c00013dc78: 0x0000000000000000 0x0000000000000000
0x000000c00013dc88: 0x0000000000e1d539 0x0000000000000009
0x000000c00013dc98: 0x0000000000000000 0x0000000000000000
0x000000c00013dca8: 0x0000000000000000 0x0000000000000000
0x000000c00013dcb8: 0x0000000000000001 0x211eb45600000000
0x000000c00013dcc8: 0x0000000001237c00 0x000000c000122318
0x000000c00013dcd8: 0x00000000000000e0 0x0000000000000603
0x000000c00013dce8: 0x0000000001237c00 0x000000c000111170
0x000000c00013dcf8: 0x0000000001237c00 0x000000c00013dda0
0x000000c00013dd08: 0x000000c0001247b0 0x0000000000000000
0x000000c00013dd18: 0x00000000000000e6 0x0000000000e18a8f
0x000000c00013dd28: >0x0000000000000002 0x0000000000000000
0x000000c00013dd38: 0x0000000000000000 0x0000000000000000
0x000000c00013dd48: 0x0000000000000000 0x0000000000000000
0x000000c00013dd58: 0x0000000000000000 0x0000000000000000
0x000000c00013dd68: 0x0000000000000000 0x0000000000000000
0x000000c00013dd78: 0x0000000000000000 0x0000000000000000
0x000000c00013dd88: 0x0000000000000000 0x0000000000000000
0x000000c00013dd98: 0x0000000000000000 0x0000000000d2fd40
0x000000c00013dda8: 0x0000000000f32940 0x0000000000000000
0x000000c00013ddb8: 0x0000000000000000 0x0000000000000000
0x000000c00013ddc8: 0x0000000000000000 0x0000000000000000
0x000000c00013ddd8: 0x0000000000000000 0x0000000000000000
0x000000c00013dde8: 0x0000000000000000 0x0000000000000000
0x000000c00013ddf8: 0x0000000000000000 0x0000000000000000
0x000000c00013de08: 0x0000000000000000 0x0000000000000000
0x000000c00013de18: 0x0000000000000000 0x0000000000000000
fatal error: unknown caller pc
runtime stack:
runtime.throw({0xe22fa7?, 0x130deb0?})
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:1023 +0x5c fp=0x7ffd6e07fdd8 sp=0x7ffd6e07fda8 pc=0x4423fc
runtime.(*unwinder).next(0x7ffd6e07fe80)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/traceback.go:469 +0x24c fp=0x7ffd6e07fe50 sp=0x7ffd6e07fdd8 pc=0x46f7ac
runtime.(*_panic).nextFrame.func1()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:938 +0xa6 fp=0x7ffd6e07ff08 sp=0x7ffd6e07fe50 pc=0x442026
runtime.systemstack(0x48233f)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:509 +0x4a fp=0x7ffd6e07ff18 sp=0x7ffd6e07ff08 pc=0x47d1aa
goroutine 21 gp=0xc000250700 m=0 mp=0x1388a00 [running]:
runtime.systemstack_switch()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:474 +0x8 fp=0xc00013d848 sp=0xc00013d838 pc=0x47d148
runtime.(*_panic).nextFrame(0xc00013d8a8?)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:911 +0x65 fp=0xc00013d888 sp=0xc00013d848 pc=0x441f45
runtime.(*_panic).nextDefer(0xc00013d8e0)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:898 +0xa9 fp=0xc00013d8b8 sp=0xc00013d888 pc=0x441d69
panic({0xd658e0?, 0x1324330?})
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:766 +0x13c fp=0xc00013d968 sp=0xc00013d8b8 pc=0x44191c
runtime.panicmem(...)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:261
runtime.sigpanic()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/signal_unix.go:881 +0x378 fp=0xc00013d9c8 sp=0xc00013d968 pc=0x45c958
runtime/internal/atomic.(*Pointer[...]).Load(...)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/internal/atomic/types.go:526
runtime.deferconvert(0xc00013dbe0)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:435 +0x64 fp=0xc00013da08 sp=0xc00013d9c8 pc=0x440de4
runtime.(*_panic).nextDefer(0xc00013da50)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:879 +0x125 fp=0xc00013da38 sp=0xc00013da08 pc=0x441de5
runtime.deferreturn()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:598 +0x68 fp=0xc00013dac8 sp=0xc00013da38 pc=0x441488
github.com/pact-foundation/pact-go/v2/internal/native.(*Interaction).GivenWithParameter(0x0, {0x0, 0x0}, 0xc00013de28)
/home/runner/go/pkg/mod/github.com/pact-foundation/pact-go/v2@v2.0.4/internal/native/mock_server.go:669 +0x3d1 fp=0xc00013dbf8 sp=0xc00013dac8 pc=0xc39451
created by testing.(*T).Run in goroutine 1
/opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:1742 +0x826
goroutine 1 gp=0xc0000061c0 m=nil [chan receive]:
runtime.gopark(0x18?, 0x1386f60?, 0x18?, 0x0?, 0x7f4fd0781728?)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:402 +0xce fp=0xc00026b710 sp=0xc00026b6f0 pc=0x4453ce
runtime.chanrecv(0xc00010e690, 0xc00026b7f7, 0x1)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/chan.go:583 +0x36d fp=0xc00026b788 sp=0xc00026b710 pc=0x40e7ad
runtime.chanrecv1(0x1386f60?, 0xd2fd40?)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/chan.go:442 +0x12 fp=0xc00026b7b0 sp=0xc00026b788 pc=0x40e412
testing.(*T).Run(0xc000[15](https://github.com/m15o/pact-go-on-golang1.22/actions/runs/9261497614/job/25476960209#step:5:16)aea0, {0xe20c5a, 0xe}, 0xe611e0)
/opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:1750 +0x851 fp=0xc00026b8d0 sp=0xc00026b7b0 pc=0x5b64b1
testing.runTests.func1(0xc00015aea0)
/opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:2[16](https://github.com/m15o/pact-go-on-golang1.22/actions/runs/9261497614/job/25476960209#step:5:17)1 +0x86 fp=0xc00026b920 sp=0xc00026b8d0 pc=0x5ba646
testing.tRunner(0xc00015aea0, 0xc00026bb10)
/opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:1689 +0x21f fp=0xc00026b9e8 sp=0xc00026b920 pc=0x5b49ff
testing.runTests(0xc000124738, {0x1325d90, 0x1, 0x1}, {0xc00026bbb8?, 0xc00026bc00?, 0x1387a80?})
/opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:2159 +0x8bf fp=0xc00026bb40 sp=0xc00026b9e8 pc=0x5ba49f
testing.(*M).Run(0xc0002803c0)
/opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:2027 +0xf[18](https://github.com/m15o/pact-go-on-golang1.22/actions/runs/9261497614/job/25476960209#step:5:19) fp=0xc00026bec8 sp=0xc00026bb40 pc=0x5b7a78
main.main()
_testmain.go:47 +0x2be fp=0xc00026bf50 sp=0xc00026bec8 pc=0xcada3e
runtime.main()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:271 +0x29d fp=0xc00026bfe0 sp=0xc00026bf50 pc=0x444f5d
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00026bfe8 sp=0xc00026bfe0 pc=0x47f161
goroutine 2 gp=0xc000006c40 m=nil [force gc (idle)]:
runtime.gopark(0x1344df0?, 0x1388a00?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:402 +0xce fp=0xc0000587a8 sp=0xc000058788 pc=0x4453ce
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:408
runtime.forcegchelper()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:326 +0xb3 fp=0xc0000587e0 sp=0xc0000587a8 pc=0x445233
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000587e8 sp=0xc0000587e0 pc=0x47f161
created by runtime.init.6 in goroutine 1
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:314 +0x1a
goroutine 18 gp=0xc000102380 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:402 +0xce fp=0xc000184f80 sp=0xc000184f60 pc=0x4453ce
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:408
runtime.bgsweep(0xc00010e000)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mgcsweep.go:278 +0x94 fp=0xc000184fc8 sp=0xc000184f80 pc=0x42ed14
runtime.gcenable.gowrap1()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mgc.go:203 +0x25 fp=0xc000184fe0 sp=0xc000184fc8 pc=0x423685
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000184fe8 sp=0xc000184fe0 pc=0x47f161
created by runtime.gcenable in goroutine 1
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mgc.go:203 +0x66
goroutine [19](https://github.com/m15o/pact-go-on-golang1.22/actions/runs/9261497614/job/25476960209#step:5:20) gp=0xc000102540 m=nil [GC scavenge wait]:
runtime.gopark(0xc00010e000?, 0xf2fc90?, 0x1?, 0x0?, 0xc000102540?)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:402 +0xce fp=0xc000066f78 sp=0xc000066f58 pc=0x4453ce
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:408
runtime.(*scavengerState).park(0x1387c[20](https://github.com/m15o/pact-go-on-golang1.22/actions/runs/9261497614/job/25476960209#step:5:21))
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000066fa8 sp=0xc000066f78 pc=0x42c729
runtime.bgscavenge(0xc00010e000)
/opt/hostedtoolcache/go/1.[22](https://github.com/m15o/pact-go-on-golang1.22/actions/runs/9261497614/job/25476960209#step:5:23).3/x64/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc000066fc8 sp=0xc000066fa8 pc=0x42cc9c
runtime.gcenable.gowrap2()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mgc.go:204 +0x25 fp=0xc000066fe0 sp=0xc000066fc8 pc=0x423625
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000066fe8 sp=0xc000066fe0 pc=0x47f161
created by runtime.gcenable in goroutine 1
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mgc.go:204 +0xa5
goroutine 20 gp=0xc000102a80 m=nil [finalizer wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/proc.go:402 +0xce fp=0xc000185e20 sp=0xc000185e00 pc=0x4453ce
runtime.runfinq()
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mfinal.go:194 +0x145 fp=0xc000185fe0 sp=0xc000185e20 pc=0x4226c5
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000185fe8 sp=0xc000185fe0 pc=0x47f161
created by runtime.createfing in goroutine 1
/opt/hostedtoolcache/go/1.22.3/x64/src/runtime/mfinal.go:164 +0x3d
FAIL pact-go-test 0.019s
FAIL
Go version
go version go1.22.3 linux/amd64
Output of
go envin your module/workspace:What did you do?
Trying to run test with pact-go library.
Reproducable codes is here:
https://github.com/m15o/pact-go-on-golang1.22
Reproduced on github actions:
https://github.com/m15o/pact-go-on-golang1.22/actions/runs/9261497614
Since version v1.22.0 I get a runtime error when the
-raceoption is present.This does not happen on darwin/arm64
What did you see happen?
command:
output:
What did you expect to see?
run test without runtime error