Skip to content

[impeller] ASAN failures in interactive tests on OpenGLES #181287

Description

@planetmarshall

Summary

Interactive tests using the Impeller Playground trigger ASAN failures at runtime

Expected Behaviour

The interactive impeller tests should run without errors on all supported backends

Actual Behaviour

OpenGLES tests crash at runtime. ASAN (Address Sanitizer) failures are reported on an appropriately instrumented build - for example:

./impeller_unittests --enable_playground --gtest_filter='Play/RendererTest.BabysFirstTriangle/OpenGLES'
[INFO:flutter/testing/test_timeout_listener.cc(75)] Test timeout of 300 seconds per test case will be enforced.
Note: Google Test filter = Play/RendererTest.BabysFirstTriangle/OpenGLES
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from Play/RendererTest
[ RUN      ] Play/RendererTest.BabysFirstTriangle/OpenGLES
=================================================================
==332411==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c90e8ee3e70 at pc 0x5589370aa026 bp 0x7fff60cfdae0 sp 0x7fff60cfdad8

Steps to Reproduce

  1. Configure a build with Address Sanitizer
    $ gn --unoptimized --asan
    $ ninja -C out/host_debug_unopt/ exe.unstripped/impeller_unittests
    
  2. Run an interactive renderer test with OpenGLES
    $ exe.unstripped/impeller_unittests --enable_playground --gtest_filter='Play/RendererTest.BabysFirstTriangle/OpenGLES'
    

System Info

Linux
flutter master (9c66d267b4d8f82e0e7c9cc6e06f4c3c3f7fe7a9)

Reproduced on

  • OpenGL ES 3.2 NVIDIA 590.48.01
  • OpenGL ES 3.2 Mesa 25.3.3-arch1.3

Notes

Looks a reference to the DeviceBufferGLES's backing store may be getting lost, resulting in a use after free when the underlying pointer is accessed.

Attached log

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority issues at the top of the work lista: tests"flutter test", flutter_test, or one of our testse: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions