Nakama crash on startup with Xcode 15 on macOS 13.6

I have not compiled our server for a few weeks due to other tasks and since I last worked on it I have updated Xcode to version 15 and my Mac to macOS 13.6. Now when I compile Nakama I see:

> cd nakama-3.17.0
> go build -trimpath -mod=vendor
# github.com/heroiclabs/nakama/v3
ld: warning: -bind_at_load is deprecated on macOS
> go version
go version go1.21.1 darwin/arm64

I initially used the recommended Go version 1.20.7, but it gave the same warning (and the same crash as seen below). The server builds ok. I see the same warning when building our Go plugin. Starting the server gives:

> ./start-nakama.sh
{"level":"info","ts":"2023-09-25T11:01:09.338+0300","caller":"server/config.go:89","msg":"Successfully loaded config file","path":"local.yml"}
{"level":"warn","ts":"2023-09-25T11:01:09.340+0300","caller":"server/config.go:323","msg":"WARNING: insecure default parameter value, change this for production!","param":"console.username"}
{"level":"warn","ts":"2023-09-25T11:01:09.340+0300","caller":"server/config.go:327","msg":"WARNING: insecure default parameter value, change this for production!","param":"console.password"}
{"level":"warn","ts":"2023-09-25T11:01:09.340+0300","caller":"server/config.go:331","msg":"WARNING: insecure default parameter value, change this for production!","param":"console.signing_key"}
{"level":"warn","ts":"2023-09-25T11:01:09.340+0300","caller":"server/config.go:335","msg":"WARNING: insecure default parameter value, change this for production!","param":"socket.server_key"}
{"level":"warn","ts":"2023-09-25T11:01:09.340+0300","caller":"server/config.go:339","msg":"WARNING: insecure default parameter value, change this for production!","param":"session.encryption_key"}
{"level":"warn","ts":"2023-09-25T11:01:09.340+0300","caller":"server/config.go:343","msg":"WARNING: insecure default parameter value, change this for production!","param":"session.refresh_encryption_key"}
{"level":"info","ts":"2023-09-25T11:01:09.340+0300","caller":"v3/main.go:104","msg":"Nakama starting"}
{"level":"info","ts":"2023-09-25T11:01:09.340+0300","caller":"v3/main.go:105","msg":"Node","name":"nakama1","version":"3.0.0+dev","runtime":"go1.21.1","cpu":10,"proc":10}
{"level":"info","ts":"2023-09-25T11:01:09.340+0300","caller":"v3/main.go:106","msg":"Data directory","path":"nakama/data"}
{"level":"info","ts":"2023-09-25T11:01:09.340+0300","caller":"v3/main.go:117","msg":"Database connections","dsns":["root@127.0.0.1:26257"]}
{"level":"debug","ts":"2023-09-25T11:01:09.341+0300","caller":"server/db.go:74","msg":"Complete database connection URL","raw_url":"postgres://root@127.0.0.1:26257/nakama?sslmode=prefer"}
{"level":"info","ts":"2023-09-25T11:01:09.345+0300","caller":"v3/main.go:123","msg":"Database information","version":"CockroachDB CCL v21.1.6 (x86_64-apple-darwin19, built 2021/07/20 15:33:43, go1.15.11)"}
{"level":"info","ts":"2023-09-25T11:01:09.353+0300","caller":"server/leaderboard_rank_cache.go:120","msg":"Initializing leaderboard rank cache"}
{"level":"debug","ts":"2023-09-25T11:01:09.353+0300","caller":"server/leaderboard_rank_cache.go:432","msg":"Caching leaderboard ranks","leaderboard_id":"global"}
{"level":"info","ts":"2023-09-25T11:01:09.354+0300","caller":"server/runtime.go:628","msg":"Initialising runtime","path":"nakama/data/modules"}
{"level":"info","ts":"2023-09-25T11:01:09.354+0300","caller":"server/leaderboard_rank_cache.go:181","msg":"Leaderboard rank cache initialization completed successfully","cached":["global"],"skipped":[],"duration":"1.511ms"}
{"level":"info","ts":"2023-09-25T11:01:09.354+0300","caller":"server/runtime.go:635","msg":"Initialising runtime event queue processor"}
{"level":"info","ts":"2023-09-25T11:01:09.355+0300","caller":"server/runtime.go:637","msg":"Runtime event queue processor started","size":65536,"workers":8}
{"level":"info","ts":"2023-09-25T11:01:09.355+0300","caller":"server/runtime_go.go:2672","msg":"Initialising Go runtime provider","path":"nakama/data/modules"}
unexpected fault address 0x1000000
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x2 addr=0x1000000 pc=0x102694a30]

goroutine 1 [running]:
runtime.throw({0x1035ce48f?, 0x0?})
	runtime/panic.go:1077 +0x40 fp=0x140003ef8c0 sp=0x140003ef890 pc=0x102683170
runtime.sigpanic()
	runtime/signal_unix.go:875 +0x22c fp=0x140003ef920 sp=0x140003ef8c0 pc=0x10269c55c
runtime.doInit1(0x103ea1201?)
	runtime/proc.go:6712 +0x20 fp=0x140003efa60 sp=0x140003ef930 pc=0x102694a30
runtime.doInit({0x104b297e5, 0x4a, 0x140001f60f0?})
	runtime/proc.go:6707 +0x38 fp=0x140003efa80 sp=0x140003efa60 pc=0x1026949c8
plugin.open({0x1400045a0a0, 0x20})
	plugin/plugin_dlopen.go:95 +0x520 fp=0x140003efd00 sp=0x140003efa80 pc=0x102f9e1d0
plugin.Open(...)
	plugin/plugin.go:80
github.com/heroiclabs/nakama/v3/server.openGoModule(0x1400045a0bd?, {0x140000bb158?, 0x0?}, {0x1400045a0a0, 0x20})
	github.com/heroiclabs/nakama/v3/server/runtime_go.go:2766 +0x118 fp=0x140003eff10 sp=0x140003efd00 pc=0x1033ae608
github.com/heroiclabs/nakama/v3/server.NewRuntimeProviderGo({_, _}, _, _, _, _, {_, _}, {_, _}, ...)
	github.com/heroiclabs/nakama/v3/server/runtime_go.go:2682 +0x830 fp=0x140003f0230 sp=0x140003eff10 pc=0x1033ad020
github.com/heroiclabs/nakama/v3/server.NewRuntime({0x10410dc08, 0x14000181360}, 0x140001e77a0?, 0x140001e77a0?, 0x140000fcf70?, 0x104b08440?, 0x104d04150?, {0x1041226c0?, 0x140001f49c0?}, {0x1035ce363, ...}, ...)
	github.com/heroiclabs/nakama/v3/server/runtime.go:641 +0x5a4 fp=0x140003f96c0 sp=0x140003f0230 pc=0x103354cf4
main.main()
	github.com/heroiclabs/nakama/v3/main.go:154 +0x13d0 fp=0x140003f9f30 sp=0x140003f96c0 pc=0x1035caca0
runtime.main()
	runtime/proc.go:267 +0x2bc fp=0x140003f9fd0 sp=0x140003f9f30 pc=0x1026868ec
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140003f9fd0 sp=0x140003f9fd0 pc=0x1026bcd54

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000072f90 sp=0x14000072f70 pc=0x102686d48
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.forcegchelper()
	runtime/proc.go:322 +0xb8 fp=0x14000072fd0 sp=0x14000072f90 pc=0x102686ba8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000072fd0 sp=0x14000072fd0 pc=0x1026bcd54
created by runtime.init.6 in goroutine 1
	runtime/proc.go:310 +0x24

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000073760 sp=0x14000073740 pc=0x102686d48
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.bgsweep(0x0?)
	runtime/mgcsweep.go:321 +0x108 fp=0x140000737b0 sp=0x14000073760 pc=0x10266f288
runtime.gcenable.func1()
	runtime/mgc.go:200 +0x28 fp=0x140000737d0 sp=0x140000737b0 pc=0x102663b58
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000737d0 sp=0x140000737d0 pc=0x1026bcd54
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:200 +0x6c

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x1400007c000?, 0x103d57da0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000073f50 sp=0x14000073f30 pc=0x102686d48
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.(*scavengerState).park(0x104d0bd20)
	runtime/mgcscavenge.go:425 +0x5c fp=0x14000073f80 sp=0x14000073f50 pc=0x10266c92c
runtime.bgscavenge(0x0?)
	runtime/mgcscavenge.go:658 +0xac fp=0x14000073fb0 sp=0x14000073f80 pc=0x10266cf0c
runtime.gcenable.func2()
	runtime/mgc.go:201 +0x28 fp=0x14000073fd0 sp=0x14000073fb0 pc=0x102663af8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000073fd0 sp=0x14000073fd0 pc=0x1026bcd54
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:201 +0xac

goroutine 18 [finalizer wait]:
runtime.gopark(0x140001861a0?, 0x1a0?, 0x98?, 0x1?, 0x1040dfe00?)
	runtime/proc.go:398 +0xc8 fp=0x14000072580 sp=0x14000072560 pc=0x102686d48
runtime.runfinq()
	runtime/mfinal.go:193 +0x108 fp=0x140000727d0 sp=0x14000072580 pc=0x102662c48
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000727d0 sp=0x140000727d0 pc=0x1026bcd54
created by runtime.createfing in goroutine 1
	runtime/mfinal.go:163 +0x80

goroutine 34 [GC worker (idle)]:
runtime.gopark(0x1be098bb913c?, 0x3?, 0x8c?, 0x36?, 0x14000181768?)
	runtime/proc.go:398 +0xc8 fp=0x1400006e730 sp=0x1400006e710 pc=0x102686d48
runtime.gcBgMarkWorker()
	runtime/mgc.go:1293 +0xd8 fp=0x1400006e7d0 sp=0x1400006e730 pc=0x1026657a8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400006e7d0 sp=0x1400006e7d0 pc=0x1026bcd54
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1217 +0x28

goroutine 6 [GC worker (idle)]:
runtime.gopark(0x1be098b9fcf0?, 0x1400045b100?, 0x1a?, 0x14?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000074f30 sp=0x14000074f10 pc=0x102686d48
runtime.gcBgMarkWorker()
	runtime/mgc.go:1293 +0xd8 fp=0x14000074fd0 sp=0x14000074f30 pc=0x1026657a8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000074fd0 sp=0x14000074fd0 pc=0x1026bcd54
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1217 +0x28

goroutine 39 [chan receive]:
runtime.gopark(0x10264ee00?, 0x14000100060?, 0x18?, 0x8f?, 0x102f6d888?)
	runtime/proc.go:398 +0xc8 fp=0x14000088ed0 sp=0x14000088eb0 pc=0x102686d48
runtime.chanrecv(0x140003382a0, 0x14000088f9f, 0x1)
	runtime/chan.go:583 +0x414 fp=0x14000088f50 sp=0x14000088ed0 pc=0x10264f9c4
runtime.chanrecv2(0x14000516ba0?, 0x1026bcd58?)
	runtime/chan.go:447 +0x14 fp=0x14000088f80 sp=0x14000088f50 pc=0x10264f594
gopkg.in/natefinch/lumberjack%2ev2.(*Logger).millRun(0x14000516ba0)
	gopkg.in/natefinch/lumberjack.v2@v2.0.0-20230206193814-4cb27fcfbb0f/lumberjack.go:379 +0x44 fp=0x14000088fb0 sp=0x14000088f80 pc=0x102e2f034
gopkg.in/natefinch/lumberjack%2ev2.(*Logger).mill.func1.1()
	gopkg.in/natefinch/lumberjack.v2@v2.0.0-20230206193814-4cb27fcfbb0f/lumberjack.go:390 +0x28 fp=0x14000088fd0 sp=0x14000088fb0 pc=0x102e2f1c8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000088fd0 sp=0x14000088fd0 pc=0x1026bcd54
created by gopkg.in/natefinch/lumberjack%2ev2.(*Logger).mill.func1 in goroutine 1
	gopkg.in/natefinch/lumberjack.v2@v2.0.0-20230206193814-4cb27fcfbb0f/lumberjack.go:390 +0x98

goroutine 40 [select]:
runtime.gopark(0x140000cd778?, 0x2?, 0x68?, 0xd6?, 0x140000cd774?)
	runtime/proc.go:398 +0xc8 fp=0x140000cd620 sp=0x140000cd600 pc=0x102686d48
runtime.selectgo(0x140000cd778, 0x140000cd770, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x140000cd730 sp=0x140000cd620 pc=0x102698518
database/sql.(*DB).connectionOpener(0x140000fcf70, {0x10410dc08, 0x14000181400})
	database/sql/sql.go:1218 +0x80 fp=0x140000cd7a0 sp=0x140000cd730 pc=0x1029683b0
database/sql.OpenDB.func1()
	database/sql/sql.go:791 +0x30 fp=0x140000cd7d0 sp=0x140000cd7a0 pc=0x102966620
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000cd7d0 sp=0x140000cd7d0 pc=0x1026bcd54
created by database/sql.OpenDB in goroutine 1
	database/sql/sql.go:791 +0x158

goroutine 13 [select]:
runtime.gopark(0x140000cdfa8?, 0x2?, 0x78?, 0xde?, 0x140000cdf8c?)
	runtime/proc.go:398 +0xc8 fp=0x140000cde30 sp=0x140000cde10 pc=0x102686d48
runtime.selectgo(0x140000cdfa8, 0x140000cdf88, 0x0?, 0x0, 0x140000cdfa8?, 0x1)
	runtime/select.go:327 +0x608 fp=0x140000cdf40 sp=0x140000cde30 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewLocalMetrics.func1()
	github.com/heroiclabs/nakama/v3/server/metrics.go:120 +0xdc fp=0x140000cdfd0 sp=0x140000cdf40 pc=0x10333b2dc
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000cdfd0 sp=0x140000cdfd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewLocalMetrics in goroutine 1
	github.com/heroiclabs/nakama/v3/server/metrics.go:116 +0x2d8

goroutine 20 [select]:
runtime.gopark(0x140000c6f88?, 0x2?, 0x48?, 0x6e?, 0x140000c6f64?)
	runtime/proc.go:398 +0xc8 fp=0x140000c6e00 sp=0x140000c6de0 pc=0x102686d48
runtime.selectgo(0x140000c6f88, 0x140000c6f60, 0x0?, 0x0, 0x140000c6f58?, 0x1)
	runtime/select.go:327 +0x608 fp=0x140000c6f10 sp=0x140000c6e00 pc=0x102698518
database/sql.(*DB).connectionCleaner(0x140000fcf70, 0x0?)
	database/sql/sql.go:1061 +0x90 fp=0x140000c6fb0 sp=0x140000c6f10 pc=0x1029678b0
database/sql.(*DB).startCleanerLocked.func1()
	database/sql/sql.go:1048 +0x2c fp=0x140000c6fd0 sp=0x140000c6fb0 pc=0x1029677ec
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000c6fd0 sp=0x140000c6fd0 pc=0x1026bcd54
created by database/sql.(*DB).startCleanerLocked in goroutine 1
	database/sql/sql.go:1048 +0xf8

goroutine 48 [select]:
runtime.gopark(0x140000c77a8?, 0x2?, 0xa8?, 0x77?, 0x140000c778c?)
	runtime/proc.go:398 +0xc8 fp=0x140000c7640 sp=0x140000c7620 pc=0x102686d48
runtime.selectgo(0x140000c77a8, 0x140000c7788, 0x140000c77a8?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x140000c7750 sp=0x140000c7640 pc=0x102698518
github.com/blugelabs/bluge/index.analysisWorker(...)
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:549
github.com/blugelabs/bluge/index.OpenWriter.func1()
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:69 +0x80 fp=0x140000c77d0 sp=0x140000c7750 pc=0x102ee1170
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000c77d0 sp=0x140000c77d0 pc=0x1026bcd54
created by github.com/blugelabs/bluge/index.defaultConfig.func2 in goroutine 1
	github.com/blugelabs/bluge@v0.2.2/index/config.go:206 +0x1c

goroutine 23 [select]:
runtime.gopark(0x14000367b08?, 0x2?, 0xb8?, 0x78?, 0x14000367a34?)
	runtime/proc.go:398 +0xc8 fp=0x14000367860 sp=0x14000367840 pc=0x102686d48
runtime.selectgo(0x14000367b08, 0x14000367a30, 0x736944222c303a22?, 0x0, 0x6e6172546e49222c?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000367970 sp=0x14000367860 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.DbConnect.func1()
	github.com/heroiclabs/nakama/v3/server/db.go:107 +0xd4 fp=0x14000367fd0 sp=0x14000367970 pc=0x10330c5a4
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000367fd0 sp=0x14000367fd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.DbConnect in goroutine 1
	github.com/heroiclabs/nakama/v3/server/db.go:104 +0xc18

goroutine 14 [select]:
runtime.gopark(0x140000ccf60?, 0x2?, 0x48?, 0xce?, 0x140000ccf44?)
	runtime/proc.go:398 +0xc8 fp=0x140000ccdf0 sp=0x140000ccdd0 pc=0x102686d48
runtime.selectgo(0x140000ccf60, 0x140000ccf40, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x140000ccf00 sp=0x140000ccdf0 pc=0x102698518
github.com/uber-go/tally/v4.(*scope).reportLoop(0x140001fca80, 0x0?)
	github.com/uber-go/tally/v4@v4.1.7/scope.go:250 +0x98 fp=0x140000ccf90 sp=0x140000ccf00 pc=0x102f26118
github.com/uber-go/tally/v4.newRootScope.func1()
	github.com/uber-go/tally/v4@v4.1.7/scope.go:192 +0x58 fp=0x140000ccfd0 sp=0x140000ccf90 pc=0x102f25278
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000ccfd0 sp=0x140000ccfd0 pc=0x1026bcd54
created by github.com/uber-go/tally/v4.newRootScope in goroutine 1
	github.com/uber-go/tally/v4@v4.1.7/scope.go:190 +0x6fc

goroutine 15 [select]:
runtime.gopark(0x1400008bee8?, 0x2?, 0x78?, 0xbd?, 0x1400008be8c?)
	runtime/proc.go:398 +0xc8 fp=0x1400008bd30 sp=0x1400008bd10 pc=0x102686d48
runtime.selectgo(0x1400008bee8, 0x1400008be88, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400008be40 sp=0x1400008bd30 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewLocalSessionCache.func1()
	github.com/heroiclabs/nakama/v3/server/session_cache.go:71 +0xa8 fp=0x1400008bfd0 sp=0x1400008be40 pc=0x103575828
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400008bfd0 sp=0x1400008bfd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewLocalSessionCache in goroutine 1
	github.com/heroiclabs/nakama/v3/server/session_cache.go:68 +0xe8

goroutine 16 [select]:
runtime.gopark(0x1400006f6e8?, 0x2?, 0x78?, 0xf5?, 0x1400006f68c?)
	runtime/proc.go:398 +0xc8 fp=0x14000365d30 sp=0x14000365d10 pc=0x102686d48
runtime.selectgo(0x14000365ee8, 0x1400006f688, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000365e40 sp=0x14000365d30 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewLocalSessionCache.func1()
	github.com/heroiclabs/nakama/v3/server/session_cache.go:71 +0xa8 fp=0x14000365fd0 sp=0x14000365e40 pc=0x103575828
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000365fd0 sp=0x14000365fd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewLocalSessionCache in goroutine 1
	github.com/heroiclabs/nakama/v3/server/session_cache.go:68 +0xe8

goroutine 50 [select]:
runtime.gopark(0x14000361f48?, 0x2?, 0xc8?, 0x1d?, 0x14000361ef4?)
	runtime/proc.go:398 +0xc8 fp=0x14000361d80 sp=0x14000361d60 pc=0x102686d48
runtime.selectgo(0x14000361f48, 0x14000361ef0, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000361e90 sp=0x14000361d80 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewLocalLoginAttemptCache.func1()
	github.com/heroiclabs/nakama/v3/server/login_attempt_cache.go:91 +0xa0 fp=0x14000361fd0 sp=0x14000361e90 pc=0x10331f7c0
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000361fd0 sp=0x14000361fd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewLocalLoginAttemptCache in goroutine 1
	github.com/heroiclabs/nakama/v3/server/login_attempt_cache.go:88 +0x108

goroutine 51 [select]:
runtime.gopark(0x14000497d18?, 0x2?, 0x88?, 0x7a?, 0x14000497c04?)
	runtime/proc.go:398 +0xc8 fp=0x14000497a40 sp=0x14000497a20 pc=0x102686d48
runtime.selectgo(0x14000497d18, 0x14000497c00, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000497b50 sp=0x14000497a40 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewStatusRegistry.func1()
	github.com/heroiclabs/nakama/v3/server/status_registry.go:73 +0x80 fp=0x14000497fd0 sp=0x14000497b50 pc=0x10357bac0
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000497fd0 sp=0x14000497fd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewStatusRegistry in goroutine 1
	github.com/heroiclabs/nakama/v3/server/status_registry.go:71 +0x1fc

goroutine 82 [select]:
runtime.gopark(0x1400006f7a8?, 0x2?, 0x0?, 0x0?, 0x1400006f78c?)
	runtime/proc.go:398 +0xc8 fp=0x1400006f640 sp=0x1400006f620 pc=0x102686d48
runtime.selectgo(0x1400006f7a8, 0x1400006f788, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400006f750 sp=0x1400006f640 pc=0x102698518
github.com/blugelabs/bluge/index.analysisWorker(...)
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:549
github.com/blugelabs/bluge/index.OpenWriter.func1()
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:69 +0x80 fp=0x1400006f7d0 sp=0x1400006f750 pc=0x102ee1170
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400006f7d0 sp=0x1400006f7d0 pc=0x1026bcd54
created by github.com/blugelabs/bluge/index.defaultConfig.func2 in goroutine 1
	github.com/blugelabs/bluge@v0.2.2/index/config.go:206 +0x1c

goroutine 83 [select]:
runtime.gopark(0x14000534fa8?, 0x2?, 0x0?, 0x0?, 0x14000534f8c?)
	runtime/proc.go:398 +0xc8 fp=0x14000534e40 sp=0x14000534e20 pc=0x102686d48
runtime.selectgo(0x14000534fa8, 0x14000534f88, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000534f50 sp=0x14000534e40 pc=0x102698518
github.com/blugelabs/bluge/index.analysisWorker(...)
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:549
github.com/blugelabs/bluge/index.OpenWriter.func1()
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:69 +0x80 fp=0x14000534fd0 sp=0x14000534f50 pc=0x102ee1170
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000534fd0 sp=0x14000534fd0 pc=0x1026bcd54
created by github.com/blugelabs/bluge/index.defaultConfig.func2 in goroutine 1
	github.com/blugelabs/bluge@v0.2.2/index/config.go:206 +0x1c

goroutine 84 [select]:
runtime.gopark(0x1400008ef38?, 0x5?, 0x0?, 0x0?, 0x1400008eec6?)
	runtime/proc.go:398 +0xc8 fp=0x1400008ed30 sp=0x1400008ed10 pc=0x102686d48
runtime.selectgo(0x1400008ef38, 0x1400008eebc, 0x0?, 0x0, 0x103e15a60?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400008ee40 sp=0x1400008ed30 pc=0x102698518
github.com/blugelabs/bluge/index.(*Writer).introducerLoop(0x140000a1200, 0x14000182360, 0x140001823c0, 0x14000182420, 0x1400028e660, 0x0?)
	github.com/blugelabs/bluge@v0.2.2/index/introducer.go:51 +0x110 fp=0x1400008ef90 sp=0x1400008ee40 pc=0x102ed1d20
github.com/blugelabs/bluge/index.OpenWriter.func2()
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:127 +0x3c fp=0x1400008efd0 sp=0x1400008ef90 pc=0x102ee10bc
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400008efd0 sp=0x1400008efd0 pc=0x1026bcd54
created by github.com/blugelabs/bluge/index.OpenWriter in goroutine 1
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:127 +0x5d0

goroutine 85 [select]:
runtime.gopark(0x14000363f50?, 0x3?, 0x68?, 0x3c?, 0x14000363e12?)
	runtime/proc.go:398 +0xc8 fp=0x14000363c30 sp=0x14000363c10 pc=0x102686d48
runtime.selectgo(0x14000363f50, 0x14000363e0c, 0x0?, 0x0, 0x103e15a60?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000363d40 sp=0x14000363c30 pc=0x102698518
github.com/blugelabs/bluge/index.(*Writer).persisterLoop(0x140000a1200, 0x0?, 0x0?, 0x1400028e660, 0x1400028e6c0, 0x0)
	github.com/blugelabs/bluge@v0.2.2/index/persister.go:47 +0x250 fp=0x14000363f90 sp=0x14000363d40 pc=0x102ed79a0
github.com/blugelabs/bluge/index.OpenWriter.func3()
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:129 +0x3c fp=0x14000363fd0 sp=0x14000363f90 pc=0x102ee104c
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000363fd0 sp=0x14000363fd0 pc=0x1026bcd54
created by github.com/blugelabs/bluge/index.OpenWriter in goroutine 1
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:129 +0x664

goroutine 86 [select]:
runtime.gopark(0x1400001c708?, 0x2?, 0x60?, 0x65?, 0x1400001c654?)
	runtime/proc.go:398 +0xc8 fp=0x14000494ca0 sp=0x14000494c80 pc=0x102686d48
runtime.selectgo(0x14000494f08, 0x1400001c650, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000494db0 sp=0x14000494ca0 pc=0x102698518
github.com/blugelabs/bluge/index.(*Writer).mergerLoop(0x140000a1200, 0x0?, 0x1400028e6c0)
	github.com/blugelabs/bluge@v0.2.2/index/merge.go:42 +0x1a8 fp=0x14000494fa0 sp=0x14000494db0 pc=0x102ed4008
github.com/blugelabs/bluge/index.OpenWriter.func4()
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:131 +0x30 fp=0x14000494fd0 sp=0x14000494fa0 pc=0x102ee0fd0
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000494fd0 sp=0x14000494fd0 pc=0x1026bcd54
created by github.com/blugelabs/bluge/index.OpenWriter in goroutine 1
	github.com/blugelabs/bluge@v0.2.2/index/writer.go:131 +0x6d0

goroutine 87 [select]:
runtime.gopark(0x1400001cf70?, 0x2?, 0x48?, 0xce?, 0x1400001cf54?)
	runtime/proc.go:398 +0xc8 fp=0x1400001ce00 sp=0x1400001cde0 pc=0x102686d48
runtime.selectgo(0x1400001cf70, 0x1400001cf50, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400001cf10 sp=0x1400001ce00 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewLocalMatchRegistry.func1()
	github.com/heroiclabs/nakama/v3/server/match_registry.go:186 +0xc8 fp=0x1400001cfd0 sp=0x1400001cf10 pc=0x103327108
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400001cfd0 sp=0x1400001cfd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewLocalMatchRegistry in goroutine 1
	github.com/heroiclabs/nakama/v3/server/match_registry.go:182 +0x548

goroutine 57 [select]:
runtime.gopark(0x14000021fa8?, 0x2?, 0x40?, 0xe6?, 0x14000021f94?)
	runtime/proc.go:398 +0xc8 fp=0x14000021e40 sp=0x14000021e20 pc=0x102686d48
runtime.selectgo(0x14000021fa8, 0x14000021f90, 0x10410a778?, 0x0, 0x1041040e0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000021f50 sp=0x14000021e40 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue.func1()
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:46 +0x84 fp=0x14000021fd0 sp=0x14000021f50 pc=0x10337cf04
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000021fd0 sp=0x14000021fd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue in goroutine 1
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:44 +0x11c

goroutine 59 [select]:
runtime.gopark(0x14000022fa8?, 0x2?, 0x88?, 0x2e?, 0x14000022f94?)
	runtime/proc.go:398 +0xc8 fp=0x14000022e40 sp=0x14000022e20 pc=0x102686d48
runtime.selectgo(0x14000022fa8, 0x14000022f90, 0x0?, 0x0, 0x10410ab38?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000022f50 sp=0x14000022e40 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue.func1()
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:46 +0x84 fp=0x14000022fd0 sp=0x14000022f50 pc=0x10337cf04
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000022fd0 sp=0x14000022fd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue in goroutine 1
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:44 +0x11c

goroutine 60 [select]:
runtime.gopark(0x1400001d7a8?, 0x2?, 0x0?, 0x0?, 0x1400001d794?)
	runtime/proc.go:398 +0xc8 fp=0x1400001d640 sp=0x1400001d620 pc=0x102686d48
runtime.selectgo(0x1400001d7a8, 0x1400001d790, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400001d750 sp=0x1400001d640 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue.func1()
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:46 +0x84 fp=0x1400001d7d0 sp=0x1400001d750 pc=0x10337cf04
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400001d7d0 sp=0x1400001d7d0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue in goroutine 1
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:44 +0x11c

goroutine 62 [select]:
runtime.gopark(0x1400001e7a8?, 0x2?, 0x0?, 0x0?, 0x1400001e794?)
	runtime/proc.go:398 +0xc8 fp=0x1400001e640 sp=0x1400001e620 pc=0x102686d48
runtime.selectgo(0x1400001e7a8, 0x1400001e790, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400001e750 sp=0x1400001e640 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue.func1()
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:46 +0x84 fp=0x1400001e7d0 sp=0x1400001e750 pc=0x10337cf04
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400001e7d0 sp=0x1400001e7d0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue in goroutine 1
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:44 +0x11c

goroutine 63 [select]:
runtime.gopark(0x1400001efa8?, 0x2?, 0xa8?, 0xee?, 0x1400001ef94?)
	runtime/proc.go:398 +0xc8 fp=0x1400001ee40 sp=0x1400001ee20 pc=0x102686d48
runtime.selectgo(0x1400001efa8, 0x1400001ef90, 0x14000590000?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400001ef50 sp=0x1400001ee40 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue.func1()
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:46 +0x84 fp=0x1400001efd0 sp=0x1400001ef50 pc=0x10337cf04
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400001efd0 sp=0x1400001efd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue in goroutine 1
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:44 +0x11c

goroutine 64 [select]:
runtime.gopark(0x1400006ffa8?, 0x2?, 0x0?, 0x70?, 0x1400006ff94?)
	runtime/proc.go:398 +0xc8 fp=0x1400006fe40 sp=0x1400006fe20 pc=0x102686d48
runtime.selectgo(0x1400006ffa8, 0x1400006ff90, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x1400006ff50 sp=0x1400006fe40 pc=0x102698518
github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue.func1()
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:46 +0x84 fp=0x1400006ffd0 sp=0x1400006ff50 pc=0x10337cf04
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400006ffd0 sp=0x1400006ffd0 pc=0x1026bcd54
created by github.com/heroiclabs/nakama/v3/server.NewRuntimeEventQueue in goroutine 1
	github.com/heroiclabs/nakama/v3/server/runtime_event.go:44 +0x11c

NOTE: I removed some of the goroutines from the stack trace as this post was over the 32k limit. The removed ones were mostly identical to others.

Same with the older version of Go. Just to be sure I removed our plugin from data/modules/ but the crash remains. This is a local development setup running against a local Cockroach. Seems there could be something Apple has changed in the native toolchain included with Xcode 15 that Go/Nakama is not too happy with.

As a nitpick, would it be possible to either remove the version in this logging or make sure it’s actually up to date? The version has been 3.0.0+dev for the two years I have used Nakama. It would be nice to have the version data available in the plugin when juggling multiple server installations with different versions.

{"level":"info","ts":"2023-09-25T11:01:09.340+0300","caller":"v3/main.go:105","msg":"Node","name":"nakama1","version":"3.0.0+dev","runtime":"go1.21.1","cpu":10,"proc":10}

Is this a known thing or some Heisenbug that only affects me? As soon as I drop in our Go module into data/modules it crashes directly on startup. According to the stack trace execution hasn’t even begun in the module yet so it seems something directly after dlopen() of the module fails.

I tested 3.17.1 too just to be sure, the above stack trace is from 3.17.0. Same result.

I found this issue, if this is the same issue the fix doesn’t seem to have been released yet, I’d suggest you use Docker for the time being.

Another option which I didn’t at all think about initially is to use Xcode 14 when working on this project. Doh… It’s pretty trivial to switch between versions. Works fine again with 14.3.1.