"Robin Jarry" <[email protected]> writes: > I am Robin Jarry. Among other things, I maintain the aerc email client > (https://sr.ht/~rjarry/aerc/) and I have been a Patchwork user for > a long time. Over the past couple of months, I have been working on > a ground-up rewrite of Patchwork with the support of Stephen Finucane. > The code lives under the official organization: > > https://github.com/getpatchwork/patchwork-next > https://getpatchwork.github.io/patchwork-next/
Hello Robin, I'm not a regular patchwork user, but I always found the project interesting. I work mostly in Gentoo Linux and have been wondering if it'd make sense for Gentoo to use Patchwork. Gentoo sees a modest stream of patches on https://public-inbox.gentoo.org/gentoo-dev/ (and some other MLs as well). Some form of changes are required to be posted on gentoo-dev@ ML, but many smaller patches are received via pull requests on Codeberg and GitHub. So I figured I'd give patchwork-next a spin! I cloned patchwork-next and followed instructions to set up a database (sqlite), created a gentoo-dev project and started the services (pw http and pw ingress). I must say the setup is *very* easy. Next I wanted to import some patches, and found the --mbox argument for "pw ingress" in the "Manual Import" section of the installation docs. I downloaded an mbox archive from the gentoo-dev public-inbox, unpacked it and ran: --- [snip] --- $ ./pw ingress --mbox < patches/gentoo-dev-PATCH-prefix.eclass-support-EAPI-9.mbox DEBUG 2026/08/28 10:48:13 bus.go:83: starting webhook worker#2 DEBUG 2026/08/28 10:48:13 bus.go:83: starting webhook worker#4 DEBUG 2026/08/28 10:48:13 parser.go:103: parsing msgid=<[email protected]> subject="[gentoo-dev] [PATCH] prefix.eclass: support EAPI 9" DEBUG 2026/08/28 10:48:13 bus.go:83: starting webhook worker#3 DEBUG 2026/08/28 10:48:13 project.go:69: found list-id="gentoo-dev.gentoo.org" from List-ID header DEBUG 2026/08/28 10:48:13 bus.go:83: starting webhook worker#1 DEBUG 2026/08/28 10:48:13 parser.go:111: project=gentoo-dev (id=1) DEBUG 2026/08/28 10:48:13 parser.go:120: series marker: n=1 total=1 version=1 comment=false refs=[] DEBUG 2026/08/28 10:48:13 parser.go:139: dispatching as patch DEBUG 2026/08/28 10:48:13 project.go:35: author: Florian Schmaus <[email protected]> (id=10) INFO 2026/08/28 10:48:13 patch.go:55: patch saved id=7 msgid=<[email protected]> DEBUG 2026/08/28 10:48:13 event.go:29: event queued: patch-created DEBUG 2026/08/28 10:48:13 series.go:54: created new series id=3 DEBUG 2026/08/28 10:48:13 event.go:29: event queued: series-created DEBUG 2026/08/28 10:48:13 series.go:85: assigned patch id=7 to series id=3 (n=1) DEBUG 2026/08/28 10:48:13 series.go:91: series id=3 name set to "prefix.eclass: support EAPI 9" DEBUG 2026/08/28 10:48:13 event.go:29: event queued: patch-completed DEBUG 2026/08/28 10:48:13 event.go:29: event queued: series-completed DEBUG 2026/08/28 10:48:13 bus.go:111: shutting down webhook worker#2 DEBUG 2026/08/28 10:48:13 bus.go:111: shutting down webhook worker#3 DEBUG 2026/08/28 10:48:13 bus.go:111: shutting down webhook worker#4 DEBUG 2026/08/28 10:48:13 bus.go:111: shutting down webhook worker#1 panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xca8a28] goroutine 1 [running]: github.com/getpatchwork/patchwork/pkg/db.(*Queries).Commit(0x30791dcb4000) github.com/getpatchwork/patchwork/pkg/db/db.go:176 +0x168 github.com/getpatchwork/patchwork/pkg/mail.ParseMail({0x120b810, 0x30791dca3d70}, 0x30791dca0d40, {0x12021a0?, 0x30791dca1080?}, {0x30791dc1f218, 0x1, 0x1bfe7e0?}) github.com/getpatchwork/patchwork/pkg/mail/parser.go:152 +0xa57 github.com/getpatchwork/patchwork/cmd/pw/ingress.(*CLI).Run(0x30791dbba5f0, 0x30791dca3d70) github.com/getpatchwork/patchwork/cmd/pw/ingress/main.go:66 +0x9ec reflect.Value.call({0x1044120?, 0x30791dbba5f0?, 0x1123fe0?}, {0x1198d6c, 0x4}, {0x30791dc1fa18, 0x1, 0x1044120?}) reflect/value.go:586 +0xf0c reflect.Value.Call({0x1044120?, 0x30791dbba5f0?, 0x30791dc1faa0?}, {0x30791dc1fa18?, 0x100791db634a0?, 0x7fa76069d1c8?}) reflect/value.go:369 +0xb9 github.com/alecthomas/kong.callAnyFunction({0x1044120?, 0x30791dbba5f0?, 0x1061820?}, 0x30791dca3dd0) github.com/alecthomas/[email protected]/callbacks.go:256 +0x8a5 github.com/alecthomas/kong.callFunction({0x1044120?, 0x30791dbba5f0?, 0x1?}, 0x30791dca3dd0) github.com/alecthomas/[email protected]/callbacks.go:213 +0x1f6 github.com/alecthomas/kong.(*Context).RunNode(0x30791dbab000, 0x30791dc5c000, {0x30791dc1ff18, 0x1, 0x1}) github.com/alecthomas/[email protected]/context.go:866 +0x93e github.com/alecthomas/kong.(*Context).Run(0x30791dbab000, {0x30791dc1ff18?, 0x0?, 0x30791dc1ff18?}) github.com/alecthomas/[email protected]/context.go:895 +0x13c main.main() github.com/getpatchwork/patchwork/cmd/pw/main.go:79 +0x287 --- [end snip] --- Although it crashes, the first message is actually imported and I can see it in the UI. Re-running the command imports the next message: --- [snip] --- $ ./pw ingress --mbox < patches/gentoo-dev-PATCH-prefix.eclass-support-EAPI-9.mbox DEBUG 2026/08/28 10:48:15 bus.go:83: starting webhook worker#4 DEBUG 2026/08/28 10:48:15 bus.go:83: starting webhook worker#3 DEBUG 2026/08/28 10:48:15 bus.go:83: starting webhook worker#1 DEBUG 2026/08/28 10:48:15 parser.go:103: parsing msgid=<[email protected]> subject="[gentoo-dev] [PATCH] prefix.eclass: support EAPI 9" DEBUG 2026/08/28 10:48:15 bus.go:83: starting webhook worker#2 DEBUG 2026/08/28 10:48:15 project.go:69: found list-id="gentoo-dev.gentoo.org" from List-ID header DEBUG 2026/08/28 10:48:15 parser.go:111: project=gentoo-dev (id=1) DEBUG 2026/08/28 10:48:15 parser.go:120: series marker: n=1 total=1 version=1 comment=false refs=[] DEBUG 2026/08/28 10:48:15 parser.go:139: dispatching as patch DEBUG 2026/08/28 10:48:15 project.go:35: author: Florian Schmaus <[email protected]> (id=10) DEBUG 2026/08/28 10:48:15 main.go:68: ignoring duplicate message: <[email protected]> DEBUG 2026/08/28 10:48:15 parser.go:103: parsing msgid=<[email protected]> subject="Re: [gentoo-dev] [PATCH] prefix.eclass: support EAPI 9" DEBUG 2026/08/28 10:48:15 project.go:69: found list-id="gentoo-dev.gentoo.org" from List-ID header DEBUG 2026/08/28 10:48:15 parser.go:111: project=gentoo-dev (id=1) DEBUG 2026/08/28 10:48:15 parser.go:120: series marker: n=0 total=0 version=1 comment=true refs=[<[email protected]> <[email protected]>] DEBUG 2026/08/28 10:48:15 parser.go:145: dispatching as comment DEBUG 2026/08/28 10:48:15 comment.go:21: comment on patch id=7 via direct ref <[email protected]> DEBUG 2026/08/28 10:48:15 project.go:35: author: Sam James <[email protected]> (id=11) DEBUG 2026/08/28 10:48:15 main.go:68: ignoring duplicate message: <[email protected]> DEBUG 2026/08/28 10:48:15 parser.go:103: parsing msgid=<[email protected]> subject="Re: [gentoo-dev] [PATCH] prefix.eclass: support EAPI 9" DEBUG 2026/08/28 10:48:15 project.go:69: found list-id="gentoo-dev.gentoo.org" from List-ID header DEBUG 2026/08/28 10:48:15 parser.go:111: project=gentoo-dev (id=1) DEBUG 2026/08/28 10:48:15 parser.go:120: series marker: n=0 total=0 version=1 comment=true refs=[<[email protected]> <[email protected]>] DEBUG 2026/08/28 10:48:15 parser.go:145: dispatching as comment DEBUG 2026/08/28 10:48:15 comment.go:21: comment on patch id=7 via direct ref <[email protected]> DEBUG 2026/08/28 10:48:15 project.go:35: author: Fabian Groffen <[email protected]> (id=12) DEBUG 2026/08/28 10:48:15 event.go:29: event queued: patch-comment-created INFO 2026/08/28 10:48:15 comment.go:80: patch comment saved patch=7 msgid=<[email protected]> DEBUG 2026/08/28 10:48:15 bus.go:111: shutting down webhook worker#4 DEBUG 2026/08/28 10:48:15 bus.go:111: shutting down webhook worker#1 DEBUG 2026/08/28 10:48:15 bus.go:111: shutting down webhook worker#3 DEBUG 2026/08/28 10:48:15 bus.go:111: shutting down webhook worker#2 panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xca8a28] --- [end snip] --- If I keep running the command, all messages are eventually imported and the crash stops happening (all messages are skipped, I think). In case you're interested in trying it out for yourself, here's the mail thread that I started from to get the above logs (downloaded with the mbox.gz link at the bottom of the page and unpacked locally): https://public-inbox.gentoo.org/gentoo-dev/[email protected]/T/#t I figured that running "ingress --mbox" with an mbox file containing multiple messages that all messages would be processed. I hope this helps :) All the best, -- Thomas _______________________________________________ Patchwork mailing list [email protected] https://lists.ozlabs.org/listinfo/patchwork
