Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Engine crash while navigating Flutter Gallery on iPod touch #16718

Closed
mravn-google opened this issue Apr 18, 2018 · 16 comments · Fixed by #17370
Closed

Engine crash while navigating Flutter Gallery on iPod touch #16718

mravn-google opened this issue Apr 18, 2018 · 16 comments · Fixed by #17370
Assignees
Labels
c: crash Stack traces logged to the console customer: posse (eap) engine flutter/engine repository. See also e: labels.

Comments

@mravn-google
Copy link
Contributor

mravn-google commented Apr 18, 2018

Steps to Reproduce

Got the stack trace below from iOS profile build for iPod Touch (iOS 11.3) by entering (or maybe trying to leave) the Flutter Gallery Typography section. I could not find a way to reproduce.

Logs

(lldb) bt
* thread #10, name = 'io.flutter.1.gpu', stop reason = EXC_BAD_ACCESS (code=1, address=0x11554c000)
  * frame #0: 0x00000001825b2ac0 libsystem_platform.dylib`_platform_memmove + 240
    frame #1: 0x00000001a2c61924 AGXGLDriver`___lldb_unnamed_symbol1394$$AGXGLDriver + 320
    frame #2: 0x00000001a2c1bbf4 AGXGLDriver`___lldb_unnamed_symbol591$$AGXGLDriver + 148
    frame #3: 0x00000001a2c62aec AGXGLDriver`___lldb_unnamed_symbol1397$$AGXGLDriver + 44
    frame #4: 0x00000001a2c0c974 AGXGLDriver`___lldb_unnamed_symbol319$$AGXGLDriver + 2384
    frame #5: 0x00000001a3b1106c GLEngine`glTexSubImage2D_Exec + 1664
    frame #6: 0x00000001859a4890 OpenGLES`glTexSubImage2D + 108
    frame #7: 0x0000000100e45f78 Flutter`GrGLGpu::uploadTexData(GrPixelConfig, int, int, GrSurfaceOrigin, unsigned int, GrGLGpu::UploadType, int, int, int, int, GrPixelConfig, GrMipLevel const*, int, GrMipMapsStatus*) + 1724
    frame #8: 0x0000000100e41c0c Flutter`GrGLGpu::onWritePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, GrMipLevel const*, int) + 480
    frame #9: 0x0000000100db88b4 Flutter`GrGpu::writePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, void const*, unsigned long) + 296
    frame #10: 0x0000000100dba728 Flutter`std::__1::__function::__func<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_0, std::__1::allocator<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_0>, bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>::operator()(GrTextureProxy*&&, int&&, int&&, int&&, int&&, GrColorType&&, void const*&&, unsigned long&&) + 512

Flutter doctor

[✓] Flutter (Channel master, v0.3.1-pre.29, on Mac OS X 10.13.3 17D102, locale en-US)
    • Flutter version 0.3.1-pre.29 at /Users/mravn/github/flutter
    • Framework revision c2c6d2b7a3 (8 hours ago), 2018-04-18 13:14:51 +0200
    • Engine revision c73be7ada2
    • Dart version 2.0.0-dev.48.0.flutter-fe606f890b

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/mravn/Library/Android/sdk
    • Android NDK at /Users/mravn/Library/Android/sdk/ndk-bundle
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.3, Build version 9E145
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 23.2.2
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Community Edition (version 2017.3.5)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 23.1.2
    • Dart plugin version 173.4700

[!] Connected devices
    ! No devices available

! Doctor found issues in 1 category.
@mravn-google
Copy link
Contributor Author

cc @chinmaygarde

@tvolkert tvolkert added c: crash Stack traces logged to the console engine flutter/engine repository. See also e: labels. labels Apr 18, 2018
@tvolkert tvolkert added this to the No milestone necessary milestone Apr 18, 2018
@chinmaygarde chinmaygarde self-assigned this Apr 18, 2018
@chinmaygarde
Copy link
Member

Looks like Skia is trying to upload a texture that the driver doesn't like. Trying to reproduce.

@alardizabal
Copy link

Hi, I'm seeing the same trace in the Hamilton app and we're getting unpredictable crashes on iOS (need to test Android). I'll add to the issue when I get more information.

OS Version: iOS 11.3 (15E216)
Report Version: 104

Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: BUS_NOOP at 0x0000000112c7c000
Crashed Thread: 6

Application Specific Information:
Attempted to dereference garbage pointer 0x112c7c000.

Thread 6 Crashed:
0   libsystem_platform.dylib        0x301c1fa3c         _platform_memmove
1   AGXGLDriver                     0x342cbf924         [inlined] gldGetDeviceString
2   AGXGLDriver                     0x342cbf924         gldGetDeviceString
3   AGXGLDriver                     0x342c79bf4         gldUpdateDispatch
4   AGXGLDriver                     0x342cc0aec         gldGetDeviceString
5   AGXGLDriver                     0x342c6a974         gldPresentFramebufferData
6   GLEngine                        0x344c1c06c         glTexSubImage2D_Exec
7   OpenGLES                        0x308401890         glTexSubImage2D
8   Flutter                         0x101618efc         GrGLGpu::uploadTexData(GrPixelConfig, int, int, GrSurfaceOrigin, unsigned int, GrGLGpu::UploadType, int, int, int, int, GrPixelConfig, GrMipLevel const*, int, GrMipMapsStatus*)
9   Flutter                         0x101614bc0         GrGLGpu::onWritePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, GrMipLevel const*, int)
10  Flutter                         0x10158b5e8         GrGpu::writePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, void const*, unsigned long)
11  Flutter                         0x10158d45c         std::__1::__function::__func<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_0, std::__1::allocator<GrOpFlushState::doUpload(std::__1::func...
12  Flutter                         0x101587cb4         std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>::operator()(GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long) const
13  Flutter                         0x101587c0c         GrDrawOpAtlas::Plot::uploadToTexture(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&, GrTextureProxy*)
14  Flutter                         0x10158d19c         GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)
15  Flutter                         0x10158d120         GrOpFlushState::preExecuteDraws()
16  Flutter                         0x101585e58         GrDrawingManager::internalFlush(GrSurfaceProxy*, GrResourceCache::FlushType, int, GrBackendSemaphore*)
17  Flutter                         0x101586b38         GrDrawingManager::prepareSurfaceForExternalIO(GrSurfaceProxy*, int, GrBackendSemaphore*)
18  Flutter                         0x10159f428         GrRenderTargetContext::prepareForExternalIO(int, GrBackendSemaphore*)
19  Flutter                         0x1013bcb24         std::__1::__function::__func<shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0>, bool (shell::SurfaceFrame const&, SkCanvas*)>::operator()(shell::SurfaceFrame const&, SkCan...
20  Flutter                         0x1013ad814         shell::Rasterizer::DrawToSurface(flow::LayerTree&)
21  Flutter                         0x1013add04         shell::Rasterizer::DoDraw(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >)
22  Flutter                         0x1013ae0a0         std::__1::__function::__func<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>, std::__1::allocator<std::__1::__bi...
23  Flutter                         0x1013adb9c         shell::Rasterizer::Draw(fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)
24  Flutter                         0x1013b18c8         std::__1::__function::__func<shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22, std::__1::allocator<shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::Layer...
25  Flutter                         0x1013820bc         fml::MessageLoopImpl::RunExpiredTasks()
26  Flutter                         0x101383178         fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)
27  CoreFoundation                  0x30224caa8         __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
28  CoreFoundation                  0x30224c76c         __CFRunLoopDoTimer
29  CoreFoundation                  0x30224c010         __CFRunLoopDoTimers
30  CoreFoundation                  0x302249b60         __CFRunLoopRun
31  CoreFoundation                  0x302169da8         CFRunLoopRunSpecific
32  Flutter                         0x101383004         fml::MessageLoopDarwin::Run()
33  Flutter                         0x101382a18         std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > con...
34  libsystem_pthread.dylib         0x301c34220         _pthread_body
35  libsystem_pthread.dylib         0x301c34110         _pthread_start

flutter doctor

[✓] Flutter (Channel master, v0.3.6-pre.86, on Mac OS X 10.13.4 17E199, locale en-US)
    • Flutter version 0.3.6-pre.86 at /Users/albertlardizabal/dev/flutter
    • Framework revision dba7855de8 (2 hours ago), 2018-05-02 11:18:48 -0700
    • Engine revision d48ba4c034
    • Dart version 2.0.0-dev.50.0.flutter-0cc70c4a7c

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/albertlardizabal/Library/Android/sdk
    • Android NDK at /Users/albertlardizabal/Library/Android/sdk/ndk-bundle
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.3, Build version 9E145
    • ios-deploy 1.9.2
    • CocoaPods version 1.4.0

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 23.2.2
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Community Edition (version 2018.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 24.0.2
    • Dart plugin version 181.4668.60

@deremer
Copy link

deremer commented May 2, 2018

FYI this is a blocker to the release of an important new feature for Hamilton app.

@chinmaygarde
Copy link
Member

I am able to reproduce this. Stack trace was similar on the GPU thread. Frame variable on the call to TexSubImage2D attached:

this  GrGLGpu * 0x142a25c00 0x0000000142a25c00
texConfig GrPixelConfig kAlpha_8_GrPixelConfig
texWidth  int 2048
texHeight int 2048
texOrigin GrSurfaceOrigin kTopLeft_GrSurfaceOrigin
target  GrGLenum  3553
uploadType  GrGLGpu::UploadType kWrite_UploadType
left  int 1120
top int 432
width int 400
height  int 80
dataConfig  GrPixelConfig kAlpha_8_GrPixelConfig
texels  const GrMipLevel *  0x16b9f4d98 0x000000016b9f4d98
mipLevelCount int 1
mipMapsStatus GrMipMapsStatus * NULL  0x0000000000000000
subRect SkIRect 
bounds  SkIRect 
texelsShallowCopy SkAutoTMalloc<GrMipLevel> 
interface GrGLInterface * 0x142a23200 0x0000000142a23200
caps  GrGLCaps &  0x0000000142a25400
bpp size_t  1
internalFormat  GrGLenum  33321
externalFormat  GrGLenum  6403
externalType  GrGLenum  5121
internalFormatForTexStorage GrGLenum  33321
restoreGLRowLength  bool  true
swFlipY bool  false
glFlipY bool  false
tempStorage SkAutoSMalloc<16384>  
usesMips  const bool  false
willNeedData  bool  false
combinedBufferSize  size_t  32000
individualMipOffsets  SkTArray<unsigned long, false>  
buffer  char *  NULL  0x0000000000000000
succeeded bool  true
currentMipLevel int 0
twoToTheMipLevel  int 1
currentWidth  int 400
currentHeight int 80

Stack Trace:

#0  0x00000001820b6a3c in _platform_memmove ()
#1  0x00000001a28ec918 in gldModifyTexSubImage ()
#2  0x00000001a365606c in glTexSubImage2D_Exec ()
#3  0x00000001854a8890 in glTexSubImage2D ()
#4  0x0000000105ba8760 in GrGLFunction<void (*)(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*)>::GrGLFunction(void (*)(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*))::'lambda'(void const*, unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*)::operator()(void const*, unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) const at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/include/gpu/gl/GrGLFunctions.h:279
#5  0x0000000105ba86d0 in GrGLFunction<void (*)(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*)>::GrGLFunction(void (*)(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*))::'lambda'(void const*, unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*)::__invoke(void const*, unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/include/gpu/gl/GrGLFunctions.h:277
#6  0x0000000105bd29f8 in GrGLFunction<void (*)(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*)>::operator()(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) const at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/include/gpu/gl/GrGLFunctions.h:302
#7  0x0000000105bd166c in GrGLGpu::uploadTexData(GrPixelConfig, int, int, GrSurfaceOrigin, unsigned int, GrGLGpu::UploadType, int, int, int, int, GrPixelConfig, GrMipLevel const*, int, GrMipMapsStatus*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/gl/GrGLGpu.cpp:1215
#8  0x0000000105bd0644 in GrGLGpu::onWritePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, GrMipLevel const*, int) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/gl/GrGLGpu.cpp:768
#9  0x00000001059ad16c in GrGpu::writePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, GrMipLevel const*, int) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrGpu.cpp:419
#10 0x00000001059ad494 in GrGpu::writePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, void const*, unsigned long) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrGpu.cpp:433
#11 0x00000001059b9f58 in GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4::operator()(GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long) const at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrOpFlushState.cpp:96
#12 0x00000001059b9da4 in decltype(std::__1::forward<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4&>(fp)(std::__1::forward<GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long>(fp0))) std::__1::__invoke<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4&, GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long>(GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4&&&, GrTextureProxy*&&, int&&, int&&, int&&, int&&, GrColorType&&, void const*&&, unsigned long&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/type_traits:4482
#13 0x00000001059b9d0c in bool std::__1::__invoke_void_return_wrapper<bool>::__call<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4&, GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long>(GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4&&&, GrTextureProxy*&&, int&&, int&&, int&&, int&&, GrColorType&&, void const*&&, unsigned long&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/__functional_base:318
#14 0x00000001059b9bf8 in std::__1::__function::__func<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4, std::__1::allocator<GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&)::$_4>, bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>::operator()(GrTextureProxy*&&, int&&, int&&, int&&, int&&, GrColorType&&, void const*&&, unsigned long&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1562
#15 0x0000000105998ed8 in std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>::operator()(GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long) const at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1916
#16 0x0000000105998c04 in GrDrawOpAtlas::Plot::uploadToTexture(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&, GrTextureProxy*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrDrawOpAtlas.cpp:154
#17 0x000000010599e4e0 in GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)::operator()(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&) const at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrDrawOpAtlas.cpp:225
#18 0x000000010599e49c in decltype(std::__1::forward<GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)&>(fp)(std::__1::forward<std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&>(fp0))) std::__1::__invoke<GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)&, std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&>(GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)&&&, std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/type_traits:4482
#19 0x000000010599e480 in void std::__1::__invoke_void_return_wrapper<void>::__call<GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)&, std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&>(GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)&&&, std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/__functional_base:349
#20 0x000000010599e17c in std::__1::__function::__func<GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&), std::__1::allocator<GrDrawOpAtlas::updatePlot(GrDeferredUploadTarget*, unsigned long long*, GrDrawOpAtlas::Plot*)::'lambda'(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>, void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>::operator()(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1562
#21 0x00000001059b637c in std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>::operator()(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&) const at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1916
#22 0x00000001059b5e64 in GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrOpFlushState.cpp:117
#23 0x00000001059b5c70 in GrOpFlushState::preExecuteDraws() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrOpFlushState.cpp:59
#24 0x000000010598d1f0 in GrDrawingManager::executeOpLists(int, int, GrOpFlushState*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrDrawingManager.cpp:306
#25 0x000000010598c380 in GrDrawingManager::internalFlush(GrSurfaceProxy*, GrResourceCache::FlushType, int, GrBackendSemaphore*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrDrawingManager.cpp:223
#26 0x000000010596d908 in GrDrawingManager::flush(GrSurfaceProxy*, int, GrBackendSemaphore*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrDrawingManager.h:99
#27 0x000000010598da8c in GrDrawingManager::prepareSurfaceForExternalIO(GrSurfaceProxy*, int, GrBackendSemaphore*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrDrawingManager.cpp:362
#28 0x00000001059fc79c in GrRenderTargetContext::prepareForExternalIO(int, GrBackendSemaphore*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/GrRenderTargetContext.cpp:1387
#29 0x0000000105c6bf7c in SkGpuDevice::flushAndSignalSemaphores(int, GrBackendSemaphore*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/SkGpuDevice.cpp:1688
#30 0x0000000105c6bee4 in SkGpuDevice::flush() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/gpu/SkGpuDevice.cpp:1681
#31 0x000000010509f2b0 in SkCanvas::onFlush() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/core/SkCanvas.cpp:718
#32 0x000000010509f268 in SkCanvas::flush() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../third_party/skia/src/core/SkCanvas.cpp:712
#33 0x0000000104f011c8 in shell::GPUSurfaceGL::PresentSurface(SkCanvas*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/gpu/gpu_surface_gl.cc:236
#34 0x0000000104f02dac in shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0::operator()(shell::SurfaceFrame const&, SkCanvas*) const at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/gpu/gpu_surface_gl.cc:216
#35 0x0000000104f02d50 in decltype(std::__1::forward<shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0&>(fp)(std::__1::forward<shell::SurfaceFrame const&, SkCanvas*>(fp0))) std::__1::__invoke<shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0&, shell::SurfaceFrame const&, SkCanvas*>(shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0&&&, shell::SurfaceFrame const&&&, SkCanvas*&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/type_traits:4482
#36 0x0000000104f02d24 in bool std::__1::__invoke_void_return_wrapper<bool>::__call<shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0&, shell::SurfaceFrame const&, SkCanvas*>(shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0&&&, shell::SurfaceFrame const&&&, SkCanvas*&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/__functional_base:318
#37 0x0000000104f029c4 in std::__1::__function::__func<shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<shell::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_0>, bool (shell::SurfaceFrame const&, SkCanvas*)>::operator()(shell::SurfaceFrame const&, SkCanvas*&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1562
#38 0x0000000104ef0dc0 in std::__1::function<bool (shell::SurfaceFrame const&, SkCanvas*)>::operator()(shell::SurfaceFrame const&, SkCanvas*) const at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1916
#39 0x0000000104ef0f4c in shell::SurfaceFrame::PerformSubmit() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/common/surface.cc:56
#40 0x0000000104ef0e78 in shell::SurfaceFrame::Submit() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/common/surface.cc:35
#41 0x0000000104eaa760 in shell::Rasterizer::DrawToSurface(flow::LayerTree&) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/common/rasterizer.cc:121
#42 0x0000000104eaae0c in shell::Rasterizer::DoDraw(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/common/rasterizer.cc:92
#43 0x0000000104eae544 in decltype(*(std::__1::forward<shell::Rasterizer*&>(fp0)).*fp(std::__1::forward<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> > >(fp1))) std::__1::__invoke<void (shell::Rasterizer::*&)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*&, std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >, void>(void (shell::Rasterizer::*&&&)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*&&&, std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/type_traits:4423
#44 0x0000000104eae3c4 in std::__1::__bind_return<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), std::__1::tuple<shell::Rasterizer*, std::__1::placeholders::__ph<1> >, std::__1::tuple<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&>, __is_valid_bind_return<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), std::__1::tuple<shell::Rasterizer*, std::__1::placeholders::__ph<1> >, std::__1::tuple<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&> >::value>::type std::__1::__apply_functor<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), std::__1::tuple<shell::Rasterizer*, std::__1::placeholders::__ph<1> >, 0ul, 1ul, std::__1::tuple<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&> >(void (shell::Rasterizer::*&)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), std::__1::tuple<shell::Rasterizer*, std::__1::placeholders::__ph<1> >&, std::__1::__tuple_indices<0ul, 1ul>, std::__1::tuple<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&>&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:2219
#45 0x0000000104eae34c in std::__1::__bind_return<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), std::__1::tuple<shell::Rasterizer*, std::__1::placeholders::__ph<1> >, std::__1::tuple<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&>, __is_valid_bind_return<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), std::__1::tuple<shell::Rasterizer*, std::__1::placeholders::__ph<1> >, std::__1::tuple<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&> >::value>::type std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>::operator()<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> > >(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:2252
#46 0x0000000104eae2c0 in decltype(std::__1::forward<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>&>(fp)(std::__1::forward<std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> > >(fp0))) std::__1::__invoke<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>&, std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> > >(std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>&&&, std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/type_traits:4482
#47 0x0000000104eae29c in void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>&, std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> > >(std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>&&&, std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/__functional_base:349
#48 0x0000000104eae214 in std::__1::__function::__func<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>, std::__1::allocator<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&> >, void (std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >)>::operator()(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1562
#49 0x0000000104eae6d4 in std::__1::function<void (std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >)>::operator()(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >) const at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1916
#50 0x0000000104eab6c4 in flutter::Pipeline<flow::LayerTree>::Consume(std::__1::function<void (std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >)>) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/synchronization/pipeline.h:130
#51 0x0000000104eaac2c in shell::Rasterizer::Draw(fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/common/rasterizer.cc:72
#52 0x0000000104ee8764 in shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22::operator()() const at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/shell/common/shell.cc:617
#53 0x0000000104ee86e4 in decltype(std::__1::forward<shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22&>(fp)(std::__1::forward<>(fp0))) std::__1::__invoke<shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22&>(shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22&&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/type_traits:4482
#54 0x0000000104ee86d4 in void std::__1::__invoke_void_return_wrapper<void>::__call<shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22&>(shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22&&&) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/__functional_base:349
#55 0x0000000104ee8474 in std::__1::__function::__func<shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22, std::__1::allocator<shell::Shell::OnAnimatorDraw(shell::Animator const&, fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >)::$_22>, void ()>::operator()() at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1562
#56 0x0000000104dc95d0 in std::__1::function<void ()>::operator()() const at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/functional:1916
#57 0x0000000104dc881c in fml::MessageLoopImpl::RunExpiredTasks() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/fml/message_loop_impl.cc:140
#58 0x0000000104dc7c98 in fml::MessageLoopImpl::RunExpiredTasksNow() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/fml/message_loop_impl.cc:51
#59 0x0000000104dd5ac0 in fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/fml/platform/darwin/message_loop_darwin.mm:73
#60 0x0000000182443aa8 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ ()
#61 0x000000018244376c in __CFRunLoopDoTimer ()
#62 0x0000000182443010 in __CFRunLoopDoTimers ()
#63 0x0000000182440b60 in __CFRunLoopRun ()
#64 0x0000000182360da8 in CFRunLoopRunSpecific ()
#65 0x0000000104dd5f30 in fml::MessageLoopDarwin::Run() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/fml/platform/darwin/message_loop_darwin.mm:44
#66 0x0000000104dc9164 in fml::MessageLoopImpl::DoRun() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/fml/message_loop_impl.cc:76
#67 0x0000000104dc573c in fml::MessageLoop::Run() at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/fml/message_loop.cc:51
#68 0x0000000104dd3db4 in fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const at /Volumes/Mojo/engine/src/out/ios_debug_unopt/../../flutter/fml/thread.cc:34
#69 0x0000000104dd3b94 in decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)(std::__1::forward<>(fp0))) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/type_traits:4482
#70 0x0000000104dd3b84 in void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>) [inlined] at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/thread:342
#71 0x0000000104dd3b5c in void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*) at /Volumes/Mojo/engine/src/buildtools/mac-x64/clang/include/c++/v1/thread:352
#72 0x00000001820c1220 in _pthread_body ()
#73 0x00000001820c1110 in _pthread_start ()
#74 0x00000001820bfb10 in thread_start ()

@bigboateng
Copy link

bigboateng commented May 3, 2018

Hi,

I am a developer of this app which uses flutter https://itunes.apple.com/gb/app/cluttr/id1316324348?mt=8

I have noticed this problem too. The crash occurs only on ios release mode. It works fine on android and in debug mode for ios. Couldn't make much sense of Xcode error so I've attached a screenshot. (ignore console log)

31775111_1633887976709190_8929814290643288064_n

@brianosman
Copy link

brianosman commented May 3, 2018

Hi! Thanks for all the info. I've reproduced this crash, and we're 95% sure it's a driver bug. I've filed a report with Apple to fix their driver issue, and we're currently putting a workaround into Skia: https://skia-review.googlesource.com/c/skia/+/125729

There is a potential performance impact to the workaround, however - so we'll be monitoring that, and we could use a more complex workaround if necessary.

@bigboateng
Copy link

@brianosman how soon will those changes be reflected in flutter master branch?

@brianosman
Copy link

It's landed in the flutter engine repo, someone from the flutter team (@chinmaygarde ) would have to comment on when that's going to show up in flutter master.

@chinmaygarde
Copy link
Member

chinmaygarde commented May 4, 2018

The last engine roll 16 hours ago was too early to pick up this change. I'll attempt another roll later today and update this ticket. Thanks for the fix @brianosman.

@alardizabal
Copy link

Hi @chinmaygarde is this fix in?

@xster
Copy link
Member

xster commented May 8, 2018

Actually fixed in #17362

@zw1924
Copy link

zw1924 commented Nov 5, 2019

This still seems to be happening in version 1.9.1

libsystem_kernel.dylib __pthread_kill + 8
1 libsystem_pthread.dylib _pthread_kill$VARIANT$armv81 + 192
2 libsystem_c.dylib abort + 100
3 libGFXShared.dylib gfxFreeTextureLevel + 0
4 GLEngine _glTexSubImage2D_Exec + 1448
5 OpenGLES glTexSubImage2D + 88
6 Flutter GrGLGpu::uploadTexData(GrGLFormat, GrColorType, int, int, unsigned int, GrGLGpu::UploadType, int, int, int, int, GrColorType, GrMipLevel const*, int, GrMipMapsStatus*) (GrGLFunctions.h:0)
7 Flutter GrGLGpu::onWritePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int) (GrGLGpu.cpp:850)
8 Flutter GrGpu::writePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int) (GrGpu.cpp:428)
9 Flutter _ZNSt3__110__function6__funcIZN14GrOpFlushState8doUploadERNS_8functionIFvRNS3_IFbP14GrTextureProxyiiii11GrColorTypePKvmEEEEEEE3$_0NS_9allocatorISF_EES9_EclEOS5_OiSK_SK_SK_OS6_OS8_Om (GrGpu.h:241)
10 Flutter std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>::operator()(GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long) const (functional:1923)
11 Flutter GrDrawOpAtlas::Plot::uploadToTexture(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&, GrTextureProxy*) (SkRect.h:225)
12 Flutter GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&) (functional:1872)
13 Flutter GrOpFlushState::preExecuteDraws() (GrOpFlushState.cpp:0)
14 Flutter GrDrawingManager::flush(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrPrepareForExternalIORequests const&) (SkTArray.h:323)
15 Flutter GrDrawingManager::flushSurfaces(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&) (GrDrawingManager.cpp:505)
16 Flutter GrRenderTargetContext::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&) (GrDrawingManager.h:88)
17 Flutter SkGpuDevice::flush() (SkGpuDevice.cpp:1630)
18 Flutter _ZNSt3__110__function6__funcIZN7flutter12GPUSurfaceGL12AcquireFrameERK7SkISizeE3$1NS_9allocatorIS7_EEFbRKNS2_12SurfaceFrameEP8SkCanvasEEclESC_OSE (trace_event.cc:95)
19 Flutter flutter::SurfaceFrame::Submit() (surface.cc:30)
20 Flutter flutter::Rasterizer::DrawToSurface(flutter::LayerTree&) (rasterizer.cc:261)
21 Flutter _ZNSt3__110__function6__funcIZN7flutter10Rasterizer4DrawEN3fml6RefPtrINS2_8PipelineINS2_9LayerTreeEEEEEE3$0NS_9allocatorISA_EEFvNS_10unique_ptrIS7_NS_14default_deleteIS7_EEEEEEclEOSG (rasterizer.cc:166)
22 Flutter flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipelineflutter::LayerTree >) (memory:2635)
23 Flutter _ZNSt3__110__function6__funcIZN7flutter5Shell14OnAnimatorDrawEN3fml6RefPtrINS2_8PipelineINS2_9LayerTreeEEEEEE4$_28NS_9allocatorISA_EEFvvEEclEv (ref_ptr.h:104)
24 Flutter fml::MessageLoopImpl::FlushTasks(fml::FlushType) (ref_ptr.h:116)
25 Flutter fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) (message_loop_darwin.mm:76)

@GelaZhang
Copy link

This still seems to be happening in version 1.12.13

libsystem_kernel.dylib 0x00000001ade4dec4 __pthread_kill + 0
1 libsystem_c.dylib 0x00000001adcbd844 abort + 0
2 libGFXShared.dylib 0x00000001c86d9348 gfxFreeTextureLevel + 0
3 GLEngine 0x00000001c8496550 glTexSubImage2D_Exec + 0
4 OpenGLES 0x00000001c856f360 glTexSubImage2D + 0
5 Flutter 0x00000001068fc804 GrGLGpu::uploadTexData(GrGLFormat, GrColorType, int, int, unsigned int, int, int, int, int, GrColorType, GrMipLevel const*, int, GrMipMapsStatus*) + 472
6 Flutter 0x00000001068f705c GrGLGpu::onWritePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int, bool) + 212
7 Flutter 0x0000000106836680 GrGpu::writePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int, bool) + 472
8 Flutter 0x00000001068362f0 GrGpu::createTexture(GrSurfaceDesc const&, GrBackendFormat const&, GrRenderable, int, SkBudgeted, GrProtected, GrColorType, GrColorType, GrMipLevel const*, int) + 468
9 Flutter 0x00000001068569d0 GrResourceProvider::createTexture(GrSurfaceDesc const&, GrBackendFormat const&, GrColorType, GrRenderable, int, SkBudgeted, GrProtected, GrMipLevel const*, int) + 540
10 Flutter 0x0000000106842e58 std::__1::__function::__func<GrProxyProvider::createProxyFromBitmap(SkBitmap const&, GrMipMapped)::$_1, std::__1::allocator<GrProxyProvider::createProxyFromBitmap(SkBitmap const&, GrMipMapped)::$_1>, GrSurfaceProxy::LazyCallbackResult ()(GrResourceProvider*)>::operator()(GrResourceProvider*&&) + 392
11 Flutter 0x000000010685d218 GrSurfaceProxyPriv::doLazyInstantiation(GrResourceProvider*) + 176
12 Flutter 0x0000000106842af0 GrProxyProvider::createProxyFromBitmap(SkBitmap const&, GrMipMapped) + 1344
13 Flutter 0x00000001068c71b4 SkImage::MakeCrossContextFromPixmap(GrContext*, SkPixmap const&, bool, bool) + 388
14 Flutter 0x00000001066a013c std::__1::__function::__func<flutter::UploadRasterImage(sk_sp, fml::WeakPtrflutter::IOManager, fml::tracing::TraceFlow const&)::$_3, std::__1::allocator<flutter::UploadRasterImage(sk_sp, fml::WeakPtrflutter::IOManager, fml::tracing::TraceFlow const&)::$_3>, void ()()>::operator()() + 72
15 Flutter 0x0000000106690404 fml::SyncSwitch::Execute(fml::SyncSwitch::Handlers const&) + 52
16 Flutter 0x000000010669fad4 _ZNSt3__110__function6__funcIN3fml8internal14CopyableLambdaIZZN7flutter12ImageDecoder6DecodeENS6_15ImageDescriptorERKNS_8functionIFvNS5_13SkiaGPUObjectI7SkImageEEEEEEN3$_1clEvEUlvE_EENS_9allocatorISI_EEFvvEEclEv + 588
17 Flutter 0x000000010668ef58 fml::MessageLoopImpl::FlushTasks(fml::FlushType) + 1664
18 Flutter 0x00000001066911dc fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) + 32
19 CoreFoundation 0x00000001adfd503c CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 0

@brianosman
Copy link

@zw1924 @SundayMan The two crashes that you've attached look similar to the original crash from this bug report, but they're definitely different. It looks like the driver is crashing in a slightly different way (and in response to a different usage pattern). If you could create a new issue with steps to reproduce the crash(es) you're seeing, that would be helpful.

@lock
Copy link

lock bot commented Apr 26, 2020

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@lock lock bot locked and limited conversation to collaborators Apr 26, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: crash Stack traces logged to the console customer: posse (eap) engine flutter/engine repository. See also e: labels.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants