[Yum] 2.4.2 on HP-UX and IRIX

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jan 15, 2006 at 01:42:39PM -0500, seth vidal wrote:
> 
> > I presume self.rpmdb is what you're talking about. Because it causes
> > the __db.### Berkeley DB environment files to be opened, no further
> > instances can be opened and mmap()'ed. However, populateTs() in
> > yum/depsolve.py does so, causing the problem.
> > 
> > I suppose one option is to stuff self.rpmdb.[member] with any info
> > needed by future uses of self.rpmdb and then close the DB after
> > self.rpmdb.addDB().
> > 
> 
> Maybe I'm missing it - where does populateTs() reopen the rpmdb?

The call to self.ts.addInstall():
                self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)

I don't know if it's easy to see this without printf()'s in the
Berkeley DB source code. Running strace on the process should also
show multiple opens of db.###. You'll see several opens followed by
several mmap() calls. Then, you see them again after the call above.
In between, the initial mmap()'s have not been munmap()'ed because
self.read_ts.ts and self.read_ts are still active. They become
inactive in closeRpmDB() but that doesn't occur until yum ends.

> Are you talking about the rpmdb or the transaction set?

Well, in this case, both open the __db.### environment files.

> And what version of rpm are you using this on?

rpm-4.2.4. I don't think the version matters though.

-- 
albert chin (china@xxxxxxxxxxxxxxxxxx)

[Index of Archives]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux