[Bug 269966] net/vnstat: no longer works after databases/sqlite3 disabled DQS

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 07 Mar 2023 17:01:38 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269966

--- Comment #5 from Joshua Kinard <freebsd@kumba.dev> ---
(In reply to ~Luna from comment #4)
> Hi. After a pkg update I have the same issues with vnstat. Do I understand
> correctly that it would be best if vnstat would change this in their code?
> 
> For now though I need vnstat to work so did you find out how to downgrade
> sqlite3 with pkg (instead of ports)?
I kinda found a way to downgrade sqlite3 via pkg.  There's a site (which I
don't have the URL on hand atm) that gave the mirror link to the older 3.40.1
copy.  Ideally, you would install that, then lock it from being upgraded.

But the fix I finally went with was to build sqlite3 from ports via 'make
package', making sure to enable DQS, then, and this is the critical part, I
used 'pkg add' instead of 'pkg install' to install the locally-built port,
which dodges around the possible bug in pkg's solver component that gets
confused.  Then I locked both vnstat and sqlite3 so that pkg won't try to
automatically upgrade them.

It requires some manual work to watch for updates in ports and rebuild as
appropriate, but I have such a small number of locally-built ports for my
FreeBSD systems and jails, that it's fairly manageable.

I looked through some of vnstat's code and I don't really see where they're
relying on the DQS feature.  Most of their core database code is in
src/dbsql.c, and I am wondering if it's an issue of whether the database was
initialized while DQS was enabled.  I have a Gentoo Linux machine that also
runs vnstat, but the ebuild there does not (and hasn't ever, I think) enabled
DQS, so my vnstat database there had no issues when sqlite was updated to 3.41.
 Thus it may be a matter of re-initializing the vnstat.db database with DQS
disabled to get a proper fix.  Then one would have to dump the old DB and
import it into the new DB.  Totally untested, but it's a thought I had.

-- 
You are receiving this mail because:
You are the assignee for the bug.