[Issue 4210] New: Random crashes / heisenbugs caused by dmd commit 478

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed May 19 15:46:05 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=4210

           Summary: Random crashes / heisenbugs caused by dmd commit 478
           Product: D
           Version: unspecified
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Keywords: patch, wrong-code
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: nfxjfg at gmail.com


--- Comment #0 from nfxjfg at gmail.com 2010-05-19 15:46:03 PDT ---
This bug report is for dmd 1.061. (Bugzilla doesn't list the newer dmd
versions.)
Older versions are not affected.

Compiling and running a mid-sized project with dmd 1.061, I experience random
segfaults and memory corruption. I have no clue what it causes, I have no test
case, and I don't know how to progress further.

One symptom was that looking up an associative array string key crashed in
Tango's murmur hash routine. Outputting the string showed it was corrupted
(even though I don't know why the string could be successfully printed, but the
hash routine failed.) Another symptom was that taking the address of a virtual
function from a valid, non-null object references yielded a corrupted delegate:
the .funcptr contained something like 0x6xxxxxxx, which is way off the normal
function addresses around 0x8xxxxxx. Which crash exactly happened first changed
as I inserted print calls for debugging.

However, I could track down what change exactly caused this: it's dmd commit
478 (http://dsource.org/projects/dmd/changeset/478). Revision 477 still worked
fine.

Undoing that commit makes it work with dmd 1.061, and I suggest the inverse
patch as the solution.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list