From: MenTaLguY Date: 2007-01-16T00:28:09+09:00 Subject: Re: building Ruby with dmalloc --=-MFv47BEGx8Z915QHwmJN Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2007-01-13 at 10:13 +0900, Young Hyun wrote: > The invalid values in fastthread's mutex object is similar to what =20 > we've seen in the 2nd type of crash ("rb_gc_mark(): unknown data =20 > type"). I'll try to create a test program to reproduce this crash at =20 > exit, and since the corruption appears similar, this test program =20 > should hopefully be useful for diagnosing the 2nd type of crash as well. I believe the two crashes are related. Also, it appears that the corruption only happens with Queues, not other uses of Mutexes. Likely this means that some queue-specific routine expecting a queue is getting passed a pointer to a member of the queue instead, or a routine expecting one member is getting passed another. I'd expect the compiler to catch this sort of thing, and I didn't see anything obvious auditing the code by hand, but perhaps something's getting lost in a VALUE cast... Anyway, it's probably best to focus on Queue when constructing test cases. -mental --=-MFv47BEGx8Z915QHwmJN Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQBFq52FSuZBmZzm14ERAg2WAJ0eXm5v0da1CIsCFt1XVNe0MfV32gCgwH+9 lob6HSHsWJm9LXq1xDak2AQ= =iTW2 -----END PGP SIGNATURE----- --=-MFv47BEGx8Z915QHwmJN--