Login | Register
My pages Projects Community openCollabNet

Discussions > dev > Re: FSVS on gentoo crashes

Discussion topic

Back to topic list

Re: FSVS on gentoo crashes

Author pmarek
Full name P.Marek
Date 2007-11-09 00:49:29 PST
Message Here's the thread about technical information.

The problem seems to be
- running dir__enumerator
- on a directory with a stat() size of 414 bytes,
- but having ~21k of filenames (414 is # of entries including . & ..),

the initial size allocation is too low, so that in the loop all the arrays
have to be resized several times - and then realloc() tells about the
corrupted heap (on the 3rd or 4th reallocation of names).

Strangely, a watchpoint in GDB gave realloc() as worst offender (changing
the few bytes before *names); using MALLOC_CHECK_=2 and inserting mcheck()
calls identified line 556, which is (in the modified sources) the line
size=(size*19)/16+1 (or similar) as offender, which is clearly bogus ...
unless the C compiler (gcc 4.2.2, IIRC) is bad.

I've had a look at alloc_count and count, too; but once, while
alloc_count==200 and count==174, the heap was reported corrupted after the
names[count]=... line - while there should enough space be there, so I
can't explain that.

valgrind doesn't yet run on libc6=2.7.

Changing the initial allocation to some big value makes FSVS run.

2.6.22 had some reported NFS issues ... but they'd have to scribble over
user-space memory.

Any other ideas?

Versioning your /etc, /home or even your whole installation?
             Try fsvs (fsvs.tigris.org)!

« Previous message in topic | 1 of 1 | Next message in topic »


Show all messages in topic

Re: FSVS on gentoo crashes pmarek P.Marek 2007-11-09 00:49:29 PST
Messages per page: