On Sat, Aug 28 2021, Russ Allbery wrote:
John Goerzen <jgoer...@complete.org> writes:
Hi Russ! It is good to visit with you again. Thanks for what you
do with inn.
I run an INN site for an ISP waaay back and am now getting back
into it.
Given your good point about makehistory, I suspect the right
answer here
is to create /run/news via /etc/tmpfiles.d. That should handle
all
I hadn't known about /etc/tmpfiles.d. TIL - thanks. Yes, that
makes perfect sense.
systemd systems, and the init script should handle non-systemd
systems
(with the edge case of not handling makehistory when the init
script
hasn't run since the last reboot, but I'm not sure if that's
worth
worrying about).
Agreed. That's pretty obscure.
BTW, I am a little uncertain about the long-term future of ovdb.
We don't
have an active maintainer of it upstream and BerkeleyDB itself
is kind of
a mess for various reasons and on shaky ground inside Debian.
The next
major release of INN will have a SQLite backend, which is
probably the
most equivalent replacement, although tradindexed does fine for
most
people.
Ah, interesting. Sqlite makes sense for the future for sure.
So I should mention why I switched. I was getting lines like this
in the news.daily report:
innd: tradindexed: index inode mismatch for local.test
...
expireover: tradindexed: index inode mismatch for control
expireover: tradindexed: index inode mismatch for
control.cancel
expireover: tradindexed: index inode mismatch for
control.checkgroups
...
I am running inn2 inside a Docker container atop zfs. I believe
inodes should be internally consistent (eg, tar can properly
detect hardlinkes) but due to the bind mount (and possibility of
running atop a zfs clone or whatnot), I suspect -- but have not
verified -- that at least st_dev if not st_ino also (from stat(2))
are not guaranteed to be consistent across restarts. I'd guess
the most common reason for that would be st_dev changes due to the
bind mount that Docker does. However, looking at the code, I
don't think it uses st_dev, so perhaps st_ino is also not stable
across restarts. (conjecture at this point)
I read a few comments in the code and thought "you know, the
easiest way out of this is to just use ovdb".
- John