[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
fd_refcnt leak? (was Re: sc->sc_dk.dk_copenmask == 1 after /etc/rc.d/fsck_root)
On Thu, Jul 09, 2009 at 01:25:37PM -0500, David Young wrote:
> On Wed, Jul 08, 2009 at 07:43:09PM -0500, David Young wrote:
> > dk_copenmask never returns to 0, not even during shutdown.
> > As a consequence of this dk_copenmask I am running 5.99.15. The problem
> > seems to be relatively new.
> Oops, that was supposed to say,
> > As a consequence of this, dk_copenmask never returns to 0, not even
> > during shutdown.
> > I am running 5.99.15. The problem seems to be relatively new.
> I modified /etc/rc.d/fsck_root to run 'ktruss -i fsck'. fsck execs
> fsck_ffs. fsck_ffs does open /dev/sd0a and /dev/rsd0a, but it does not
> close them before calling exit(0).
> Perhaps the kernel is not cleaning up processes' file descriptor tables
> like it used to?
I set breakpoints with ddb at fd_free and at the 'dt = ' line:
if (atomic_dec_uint_nv(&fdp->fd_refcnt) > 0)
* Close any files that the process holds open.
dt = fdp->fd_dt;
In fsck_ffs, fd_free() exits before reaching the 'dt = ' line. In
fsck_ffs's parent, fsck, fd_free() proceeds to the 'dt = ' line.
Perhaps fsck and fsck_ffs share their descriptor tables by some mistake?
David Young OJC Technologies
dyoung%ojctech.com@localhost Urbana, IL * (217) 278-3933
Main Index |
Thread Index |