Open Bug 1642363 Opened 5 years ago Updated 4 years ago

win7 mingw build sometimes causes child process to hang CreateFileW call while in MakeUnique<ContentProcess>

Categories

(Core :: DOM: Content Processes, defect, P3)

defect

Tracking

()

People

(Reporter: kats, Unassigned)

References

(Blocks 1 open bug)

Details

Backstory: when Botond tried landing bug 1611660, it caused a spike in win7 mingw reftest timeouts. See bug 1611660 comment 40 for a sample try push. I've been doing try pushes with additional logging to track this down, and the timeouts are caused by the content process simply hanging at various points. I've done many try pushes with lots of printfs to bisect exactly where the hangs are.

This bug is specifically about the content process hanging at this block of code. See e.g. the output in this try push where the last line logged comes from this printf and the next one after the MakeUnique<ContentProcess> doesn't show up in the log.

I'll do more try pushes to narrow this down further, and file other bugs for other hang points as I identify them.

The ContentProcess constructor is here and just delegates to the superclass ProcessChild constructor here. This constructor creates an IOThreadChild (constructor here).

Based on logging in this try push indicates that it successfully completes running the IOThreadChild constructor, but never gets around to running the ProcessChild constructor. Specifically the printf here is in the log while the printf here is not. So presumably this means the hang happens inside the ChildProcess constructor where the only real thing that happens is calling the Run() method on the IOThreadChild thing.

Per new try push, it's hanging in this call to startup_data.event.Wait(), so I guess when the thread starts up it never gets around to the Signal call.

Per new try push, the thread being started gets stuck in the Init() call. Given that this is a ChildThread instance, the Init() implementation is here and consists of making an IPC channel.

Finally, this try push indicates that the hang is happening at this call to CreateFileW. The printf before the if condition gets logged, and the printf after does not.

Summary: win7 mingw build sometimes causes child process hang in MakeUnique<ContentProcess> → win7 mingw build sometimes causes child process to hang CreateFileW call while in MakeUnique<ContentProcess>
Component: General → DOM: Content Processes
Product: Firefox Build System → Core

P3

Does Tor Browser use mingw?

Severity: -- → S3
Priority: -- → P3

(In reply to Chris Peterson [:cpeterson] from comment #5)

Does Tor Browser use mingw?

Yes, Tor Browser on Windows is built with mingw-clang very similarly to our builds here.

You need to log in before you can comment on or make changes to this bug.