]> git.ipfire.org Git - thirdparty/public-inbox.git/commit
*index: propagate exceptions from shard processes
authorEric Wong <e@80x24.org>
Thu, 4 Sep 2025 19:22:27 +0000 (19:22 +0000)
committerEric Wong <e@80x24.org>
Sat, 6 Sep 2025 18:36:05 +0000 (18:36 +0000)
commitf0b9f90a233876d832f4235b253adac88932746a
tree1738c6feffc37710d03b7d52eff44065d8304735
parenta2d1619fcfe2bda6dd1c4d69ecf77516c23c3ffd
*index: propagate exceptions from shard processes

We'll introduce a new ->ipc_async internal API and use it for
->ipc_do calls where the return value is ignored.  This new
API is modeled after our async API for accessing
`git cat-file --batch*' and remains compatible with synchronous
callers who want the return value of ->ipc_do.

Processes no longer spin and burn CPU after hitting ENOSPC or
dealing with database or FS corruption.  Instead, they should
now die properly in most cases.  However, hangs and crashes may
still possible since Xapian may abort(3) in some ENOSPC cases
and SQLite's may trigger SIGBUS via mmap(2) (if using WAL or
forcing mmap use).
lib/PublicInbox/IO.pm
lib/PublicInbox/IPC.pm
lib/PublicInbox/V2Writable.pm
t/ipc.t