[Chromium] Crash in Chrome/Mac Release test_shell
This can be reproduced by building the Release test_shell, and invoking it without any arguments. Stack trace is attached.
Created attachment 48261 [details] Stack trace from test_shell crash
Created attachment 48262 [details] Possible fix (NULL ptr check)
Comment on attachment 48262 [details] Possible fix (NULL ptr check) I don't understand why deviceRGBColorSpaceRef() would ever fail.
I don't think deviceRGBColorSpaceRef is meant to be null checked. When is the system not going to be able to give you a color space for the device?
(In reply to comment #5) > I don't think deviceRGBColorSpaceRef is meant to be null checked. When is the > system not going to be able to give you a color space for the device? Well, the chromium canaries have been doing it for a day now, which is blocking me from rolling DEPS in Chrome: http://build.chromium.org/buildbot/waterfall.fyi/builders/Webkit%20Mac%20(webkit.org)/builds/14302 (At least, I *think* this is the same crash. Since they don't have symbols, it's tough to tell). I do think there is a deeper problem here, but I'm not enough of a Macspert to figure it out.
Created attachment 48288 [details] Patch
Created attachment 48289 [details] Patch
Comment on attachment 48289 [details] Patch ok. was there a perf reason for having this inline?
Also, should we be using DEFINE_STATIC_LOCAL, or whatever that nutty macro is called?
Landed as http://trac.webkit.org/changeset/54465. We should also ensure that this pattern doesn't repeat elsewhere.
(In reply to comment #11) > We should also ensure that this pattern doesn't repeat elsewhere. What about the function directly below the one you patched? It uses the same pattern. (The FIXME comments no longer seem applicable either maybe?)
(In reply to comment #10) > Also, should we be using DEFINE_STATIC_LOCAL, or whatever that nutty macro is > called? No, because CGColorSpaceRef is a pointer.
Reopening due to at least one other function (just below the first one in the same file) using this pattern. Turns out this is tripping an Xcode linker bug in the 3.1 toolchain, radar 7070016, which is fixed in 3.2. The patch method here avoids triggering the bug. Thanks to Mark Mentovai for tracking this down.
(In reply to comment #14) > Turns out this is tripping an Xcode linker bug in the 3.1 toolchain, radar > 7070016, which is fixed in 3.2. The patch method here avoids triggering the > bug. And we need to support Xcode 3.1?
(In reply to comment #15) > (In reply to comment #14) > > Turns out this is tripping an Xcode linker bug in the 3.1 toolchain, radar > > 7070016, which is fixed in 3.2. The patch method here avoids triggering the > > bug. > > And we need to support Xcode 3.1? I'm afraid so, for the time being. The chromium buildbots and canaries all use Xcode 3.1, and there are some blocking issues that prevent us switching to Xcode 3.2 just yet.
Created attachment 48334 [details] Patch
Comment on attachment 48334 [details] Patch thanks!
Committed r54502: <http://trac.webkit.org/changeset/54502>