How to recover local.sqlite (pkg(8) problem)
bapt at FreeBSD.org
Wed Nov 19 00:26:22 UTC 2014
On Wed, Nov 19, 2014 at 01:21:27AM +0100, Baptiste Daroussin wrote:
> On Tue, Nov 18, 2014 at 04:18:33PM -0800, Chris H wrote:
> > Greetings,
> > During the building of a meta-port in the ports tree. My
> > /var/db/pkg/local.sqlite database became corrupted. I
> > spent some time, both with the pkg man pages, and with
> > sqlite3 itself attempting to use one of the backups
> > created by periodic(8). Located in /var/backups. But all
> > to no avail. For the record, I used
> > pkg backup -r /var/backup/pkg.sql.xz, as well as unpacking
> > a copy of that file, and issuing the same. Moving (renaming)
> > the corrupted database aside, prior to. I also issued
> > sqlite3 local.sqlite
> > followed by
> > read pkg.sql
> > and
> > quit
> > went w/o issue. But issuing
> > pkg info
> > emitted several error messages. Which appeared to be from
> > sqlite3(8).
> > This is on RELENG_9, w/source, and kernel world from about
> > 1 week ago. I know that the backup is in good shape, as I
> > had been using it w/o issue.
> > Is this a bug?
> > Thank you for all your time, and consideration.
> This is really surprising and first time this can of things get reported, can
> you provide me the the pkg.sql.xz file?
> Are you runing on nfs? if yes start the lockd first (pkg should fallback on a
> working solution (I need to check for pkg backup) but sqlite3 cli tool does not
> and sqlite3 cli tool on nfs without proper locking is known to corrupt database
> Best regards,
Right checked I forgot to add the lock workaround on pkg backup I'll fix in
1.4.0 in the mean time you just have to start lockd (service lockd start) and
the recovery will just work.
It might have been corrupted because a background backup (without the proper
lock workaround) happened at the same time you were via the ports tree running
the pkg command.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 181 bytes
Desc: not available
More information about the freebsd-ports