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

Reply via email to