[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:00:44PM -0600, Albert Chin wrote:
> 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.

FYI, here's the truss output on HP-UX of "yum install TWWmgv":
  ...
  Setting up Install Process
  Setting up repositories
  Baseurl(s) for repo: ['file:///opt/dist/cd/parisc']
  Reading repository metadata in from local files
  Setting up Package Sacks
  Excluding Incompatible Archs
  Finished
  Reading Local RPMDB
  open("/var/opt/TWWfsw/rpm42/db/__db.001", O_RDWR|O_LARGEFILE|0x100000, 0644) = 6
  mmap64(NULL, 16384, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FILE, 6, 0) = 0xc10f900
  open("/var/opt/TWWfsw/rpm42/db/__db.002", O_RDWR|O_LARGEFILE|0x100000, 0644) = 6
  mmap64(NULL, 1318912, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FILE, 6, 0) = 0xc4ba3
  open("/var/opt/TWWfsw/rpm42/db/__db.003", O_RDWR|O_LARGEFILE|0x100000, 0644) = 6
  mmap64(NULL, 548864, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FILE, 6, 0) = 0xc4ce50
  ...
  --> Populating transaction set with selected packages. Please wait.
  Member: TWWxpm.parisc 0-3.4k-9 - u
  open("//var/opt/TWWfsw/yum24/cache/tww/headers/TWWmgv-3.1.5-4.parisc.hdr", O_RDONLY|O_LARGEFILE, 0666) = 8
  open("/var/opt/TWWfsw/rpm42/db/__db.001", O_RDWR|O_LARGEFILE|0x100000, 0644) = 8
  mmap64(NULL, 16384, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FILE, 8, 0) ERR#12 ENOMEM

Note the two attempts to mmap /var/opt/TWWfsw/rpm42/db/__db.001.

-- 
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