[Gluster-devel] NetBSD AFR regression

Emmanuel Dreyfus manu at netbsd.org
Sun Mar 22 17:06:23 UTC 2015


Hello

Regarding NetBSD AFR regression: I tracked it down to memory corruption
on iobuf->iobrefs, where at some point I get iobuf->iobrefs[0] == 3,
which is not a sane value for a pointer. Surrounding memory also get
small uint8 values. 

I added debug code to track new/destroy operations and a
iobuf->iobrefs[0] sanity check, I can now tell:

- This specific incarnation of the bug seems to happen reliabily in
brick daemons during tests/afr tests, but there are other tests that
have different iobuf-related crashes

- This is not reuse after free: the iobuf did not went through
iobuf_destroy() before the corruption happens.

- if I comment out  GF_FREE (iobref->iobrefs) in iobref_destroy() the
problem vanishes (for AFR), which really suggests some runnaway pointer.

I have not been able to find where the mess happens, though.

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org


More information about the Gluster-devel mailing list