~emersion/soju#229: 
Issues connecting to certain IRC servers

When connecting to irc.sageru.org i get the following:

2024/04/25 19:19:33 user "mm": upstream "sageru": connection registered with nick "mm"
2024/04/25 19:19:33 user "mm": upstream "sageru": failed to handle message ":null 004 mm": 461 * 004 :Not enough parameters
2024/04/25 19:20:42 user "mm": upstream "sageru": joined channel "#sex"
2024/04/25 19:20:43 panic serving user "mm": runtime error: slice bounds out of range [3:2]
goroutine 40 [running]:
runtime/debug.Stack()
        runtime/debug/stack.go:24 +0x5e
git.sr.ht/~emersion/soju.(*Server).addUserLocked.func1.1()
        git.sr.ht/~emersion/soju/server.go:435 +0x58
panic({0x55d5b30a3a40?, 0xc00002a528?})
        runtime/panic.go:770 +0x132
git.sr.ht/~emersion/soju.(*upstreamConn).handleMessage(0xc0002603c0, {0x55d5b30e6ff8, 0x55d5b3513120}, 0xc00045ea00)
        git.sr.ht/~emersion/soju/upstream.go:1391 +0x9ed7
git.sr.ht/~emersion/soju.(*user).run(0xc00023c000)
        git.sr.ht/~emersion/soju/user.go:701 +0x10cf
git.sr.ht/~emersion/soju.(*Server).addUserLocked.func1()
        git.sr.ht/~emersion/soju/server.go:446 +0x65
created by git.sr.ht/~emersion/soju.(*Server).addUserLocked in goroutine 1
        git.sr.ht/~emersion/soju/server.go:432 +0x170

This prevents the sageru process from starting and I am unable to remove the network using sojuctl. The only solution is to attack the database manually. They use a modified IRC server, which might be the cause, but soju should probably handle this better.

Status
REPORTED
Submitter
~dawidjkubis
Assigned to
No-one
Submitted
5 months ago
Updated
5 months ago
Labels
bug

~emersion 5 months ago

Indeed, a panic should never happen.

Does this patch help? https://git.sr.ht/~emersion/soju/commit/8e0c256c472f6cb80b66159fc3a4aa63b532ee95

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