Object destruction order needs to be managed manually here to
avoid an occasional segfault at _rthread_mutex_timedlock() with
the following callstack:
XS_DBI_dispatch()
XS_DBD__SQLite__st_DESTROY()
sqlite_st_destroy()
sqlite3_finalize()
_rthread_mutex_timedlock()
...on OpenBSD 7.3 (Perl 5.36, DBD::SQLite 1.70v0, DBI 1.643p0,
sqlite 3.41.0). I'm not sure exactly where the bug is, but I
suspect it's something inherent in Perl's unpredictable
destruction order at process teardown (something I've had to
workaround in the past when dealing with XS extensions).
There's no downloadable debug-* OpenBSD packages to ease
debugging for these components, either.
}
$w->scan('full');
+ # ensure orderly destruction to avoid SQLite segfault:
+ PublicInbox::DS->Reset;
+
$cfg = PublicInbox::Config->new(\$orig);
$ibx = $cfg->lookup_name($v);
$ibx->{-no_fsync} = 1;