Red Hat Bugzilla – Bug 236409
Add YumBase.close() in order to free sqlite dbs
Last modified: 2014-01-21 17:57:47 EST
I'm seeing this with a livecd-creator patch I'm working on - I'll post the URL
for that here in a second when i post it.
Essentially, the problem is that running livecd-creator with this patch I'm
unable to unmount the installroot we're installing in to because yum still has
primary.xml.gz.sqlite open. Given the current yum code, it will only be closed
when the sqlite db destructor is invoked ... which will only happen an
indeterminate time after the last reference to the YumBase is dropped.
My conclusion is that YumBase needs a close() method which will cause the db
close() method to be called. Sample patch attached.
(I could dig probably dig some Python docs somewhere that explain why it's good
practice for any object which holds an open fd needs a close() method, but I
think that's fairly well known)
Created attachment 152558 [details]
The livecd-creator patch is here:
This looks reasonable, although unfortunate that it has to be explicit. Then
again, in most cases, it won't ever need to be done so having it explicit for
the few times when it is needed is probably okay
Applied for 3.1.7