There's an endless row of  bugs where BDB environment getting corrupted, some 
of which have been BDB bugs (several found just in the last couple of years) 
that have been patched in Fedora/RHEL libdb but upstream BDB 5.x does not have, 
dunno about 6.x but there you run into the licensing side. So if you're running 
upstream BDB 5.x on Mac, you'll want to a check those Fedora/RHEL patches to 
libdb. Some of the more exotic bugs have been kernel VM, virtualization and 
whatnot.
Fsync is only disabled on the first open of a newly created database (ie during 
fresh install), (iirc) never on existing database unless forced via 
configuration.

After adding the .dbenv.lock to serialize rpmdb open and close a few years ago 
(to work around what seems like a BDB bug), I haven't been able to reproduce 
environment corruption from parallel access in my setup but doesn't mean it 
doesn't happen in some other setup, version mix and whoknowswhat.

One possible workaround is to force use of private environment. That also means 
practically no locking, but at least it means queries will not corrupt anything 
(however queries themselves could return garbage if run in middle of 
write-operation). That's what happens if you run queries as non-privileged 
user, but since you can control permissions with sandboxing you can achieve the 
same by disallowing open of /var/lib/rpm/.dbenv.lock, which causes rpm to fall 
back to a private environment  - meaning it wont open, much less write to those 
__db.* files.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/232#issuecomment-307753745
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to