jslater89
jslater89
It's because CI is disabled in the engine builds project here on account of inactivity.
``` #0 sk_sp::get (this=0x58) at ../../third_party/skia/include/core/SkRefCnt.h:298 #1 0x00007ffff726c139 in GrGLContextInfo::caps (this=0x0) at ../../third_party/skia/src/gpu/gl/GrGLContext.h:46 #2 0x00007ffff726bd74 in GrGLGpu::glCaps (this=0x7fffc40df250) at ../../third_party/skia/src/gpu/gl/GrGLGpu.h:50 #3 0x00007ffff729a28d in GrGLGpu::deleteSync (this=0x7fffc40df250, sync=0x1) at ../../third_party/skia/src/gpu/gl/GrGLGpu.cpp:4044 #4 0x00007ffff72bc20c...
A minimal example is an app which displays an image, starts a background isolate, and calls SystemNavigator.pop. See: https://github.com/jslater89/go-flutter-desktop-repro It seems like it must be in the drawing code somewhere,...
Following some gdb-fu today, the crash happens because a GrGLGpu is used after free in the multiple-isolate case: its destructor runs, then its deleteSync method is called. I'm not sure...
I had a little more time to look at things today, and found confirmation that it's related to the message loop/task runner setup: with multiple isolates and an image drawn,...
> I did the following modification [...] Ooh, good thought. I have this addition in event-loop.go: ``` if !t.RunOnCurrentThread() { log.Fatalf("Thread mismatch for task: %v %v %v", currentthread.ID(), t.mainThreadID, task)...
The event-loop thread mismatch may potentially be barking up the wrong tree. Even without spawning extra isolates, the event loop gets called from the io.flutter.ui thread. ``` #0 github.com/go-flutter-desktop/go-flutter.(*EventLoop).PostTask (t=0xc0000a4360,...
That was barking up the wrong tree, looking at embedder.h: PostTask doesn't need to be called from the same thread as newEventLoop, so long as the posted task _runs_ on...
On second thought, I think you're right—I'd have to step through it with the debugger again, but it does seem like the event loop is no longer looping by the...
Working forward from startup, it looks like the two threads that see segfaults, in my experience (io.flutter.io and io.flutter.ui) are engine-managed, and created/managed by Flutter. (The only two we're even...