Created attachment 620308 [details]
Stacktrace of the crash
When using off-main-thread compositing on Linux (layers.acceleration.force-enabled pref set to true + MOZ_USE_OMTC environment variable set), Firefox sometimes crashes.
The gdb backtrace is in attachment.
The crash seems to happen because IPC times out inside PCompositorChild::SendStop
Right now, need to apply attachment 618255 [details] [diff] [review] from bug 722012 to observe the bug. Without this patch OMTC on Linux just crashes right away without giving a chance to see the other bugs.
(In reply to Nicolas Silva [:nical] from comment #0)
> Created attachment 620308 [details]
> Stacktrace of the crash
Is that the crashing thread?
I think you want the stack trace from another thread.
(In reply to Karl Tomlinson (:karlt) from comment #2)
> (In reply to Nicolas Silva [:nical] from comment #0)
> > Created attachment 620308 [details]
> > Stacktrace of the crash
> Is that the crashing thread?
> I think you want the stack trace from another thread.
Yeah probably, I haven't really looked into it yet. Just printed the backtrace from gdb, saw that it was in "*Wait*" named functions within ipc code, assumed it was a time out, and switched back to what I was working on before. I'll get back to this bug soon.
Created attachment 621210 [details]
Stack trace of the crash in the compositor thread
karlt, you are right, things are happening in the compositor thread (stacktrace in attachment), and it actually has nothing to do with time out.
textures are being deleted after the gtk widget (which is a problem because deleting the gtk widget deletes the gl context) when closing a window that is playing a video. I'll also rename this bug.
Created attachment 624148 [details] [diff] [review]
Releases ShadowImageLayerOGL's YUV textures in ShadowImageLayerOGL::CleanupResources
ShadowImageLayerOGL's 3 YUV textures were not released in ShadowImageLayerOGL::CleanupResources, causing them to be released somewhere in ShadowLayerParent::ActorDestroy (see stacktrace in attachment 621210 [details]) which happens after the destruction of the gl context.
Releasing these textures in CleanupResources makes sure it happens before we destroy the gl context.