~emersion/soju#244: 
pinning BouncerServ causes panic, unrecoverable afterwards

2025/03/14 15:10:26 user "sewn": downstream "[::1]:43800": received: METADATA BouncerServ SET soju.im/pinned 1
2025/03/14 15:10:26 user "sewn": downstream "[::1]:43800": sent: FAIL METADATA KEY_INVALID soju.im/pinned :Invalid key
2025/03/14 15:10:26 panic serving user "sewn": runtime error: invalid memory address or nil pointer dereference
goroutine 41 [running]:
runtime/debug.Stack()
	/usr/lib/go/src/runtime/debug/stack.go:26 +0x5e
codeberg.org/emersion/soju.(*Server).addUserLocked.func1.1()
	/home/sewn/src/soju/server.go:447 +0x58
panic({0x270f40?, 0xeb3ad0?})
	/usr/lib/go/src/runtime/panic.go:792 +0x132
codeberg.org/emersion/soju.(*downstreamConn).handleMessageRegistered(0xc000226000, {0x41ecd0, 0xc00009ed20}, 0xc0000b6c80)
	/home/sewn/src/soju/downstream.go:2844 +0x7300
codeberg.org/emersion/soju.(*downstreamConn).handleMessage(0xc000226000, {0x41ed08?, 0xf3df80?}, 0xc0000b6c80)
	/home/sewn/src/soju/downstream.go:647 +0xda
codeberg.org/emersion/soju.(*user).run(0xc0002c0000)
	/home/sewn/src/soju/user.go:810 +0x1818
codeberg.org/emersion/soju.(*Server).addUserLocked.func1()
	/home/sewn/src/soju/server.go:458 +0x55
created by codeberg.org/emersion/soju.(*Server).addUserLocked in goroutine 1
	/home/sewn/src/soju/server.go:444 +0x165

the bouncer afterwards is in a unrecoverable state:

2025/03/14 15:12:01 downstream "[::1]:56090": new connection
...
2025/03/14 15:11:55 downstream "[::1]:47938": received: CAP END
2025/03/14 15:11:55 downstream "[::1]:47938": registration complete for user "sewn"
2025/03/14 15:11:55 downstream "[::1]:47938": sent: :localhost 770 * soju.im/pinned
2025/03/14 15:11:55 downstream "[::1]:47938": sent: :localhost 770 * soju.im/muted
2025/03/14 15:11:55 downstream "[::1]:47938": failed to get/create user: user "sewn" exists in the DB but hasn't been loaded by the bouncer -- a restart may help
2025/03/14 15:11:55 downstream "[::1]:47938": sent: ERROR :Internal server error
2025/03/14 15:11:55 downstream "[::1]:47938": connection closed
``
Status
RESOLVED CLOSED
Submitter
~sewn
Assigned to
No-one
Submitted
2 months ago
Updated
a month ago
Labels
No labels applied.

~emersion REPORTED CLOSED a month ago

Register here or Log in to comment, or comment via email.