Bug 8507 – (Regression 2.060) rdmd hangs and mutex failures
Status
RESOLVED
Resolution
FIXED
Severity
critical
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2012-08-04T07:58:00Z
Last change time
2016-10-15T20:37:57Z
Assigned to
nobody
Creator
alex
Comments
Comment #0 by alex — 2012-08-04T07:58:03Z
(There's no rdmd component, so...)
I don't know if this bug exists on other platforms, but on Linux (x86_64) the rdmd in 2.060 eventually hangs (and in some cases even crashes due to mutex failures).
Given a test.d like this:
import std.stdio;
void main()
{
writeln("Hello World");
}
Try running:
for x in {0..9999}; do echo iteration $x; rdmd test.d; done
This should yield several mutex errors, and eventually make one of the rdmd invocations hang. This is a bit of a pain since my program's test suite relies on rdmd to run the suite.
Comment #1 by dlang-bugzilla — 2013-03-09T21:21:37Z
I was also experiencing similar issues on my previous system (running Windows Vista x64). The problem went away after I changed the line "if (false)" to "if (true)", thus disabling the multi-threaded stat-ing.
However, I can't reproduce the problem on my current system (Windows 7 x64).
I think we should just remove the multithreaded stat until the underlying bug can be fixed. AFAIK there is no recorded measurement that it provides an actual performance benefit.
Comment #2 by safety0ff.bugz — 2013-10-28T02:19:31Z
Works fine on my Linux x86-64 system.
Comment #3 by andrei — 2016-10-15T13:16:45Z
I've measured MT stat a while ago (i.e. when I introduced it) and at least on Linux it helps. Can this bug be reproduced reliably on Windows?
Comment #4 by mk — 2016-10-15T20:11:45Z
Works for me on Windows (dmd 2.070.1)
Comment #5 by andrei — 2016-10-15T20:37:57Z
Thanks. I'll close this, feel free to reopen with new evidence.