Skip to content

Destroyed Mali mutex during glTexSubImage2D on Rive Android 11.9.x #471

Description

@seanfreiburg

Submission checklist

  • I have confirmed the issue is present in the latest version of rive-android. Affected hardware is unavailable. We observed it on 11.9.1 and 11.9.2. We have not tested 11.12.0.
  • I have searched the documentation and forums and could not find an answer.
  • I have searched existing issues and this is not a duplicate. This report documents the persistence of the exact crash from closed issue Rive crashes the app randomly on lowend devices. #427 on newer Rive versions.

Description

We see the same crash signature as #427 in a production Android app.

The affected releases use Rive Android 11.9.1 and 11.9.2 with the Compose API.

We found 68 events across five crash groups. The failures cover 34 exact device and Android API combinations.

Representative combinations include:

  • SM-A515F on API 33
  • SM-G991B on API 35
  • SM-A536E on API 36
  • MOTO G15 on API 35
  • INFINIX X6728 on API 35

The native stack matches #427:

HandleUsingDestroyedMutex
pthread_mutex_lock
libGLES_mali.so
glTexSubImage2D
librive-android.so
rive::gpu::RenderContextGLImpl::flush
rive::gpu::RenderContext::flush
rive::CommandServer::processCommands
rive::CommandServer::serveUntilDisconnect

One symbolized event includes the complete Rive path. Other events stop within the Mali driver but share the same abort signature.

The expected result is stable Rive output without a native process abort.

Previous working version

None known on the affected device and Android API combinations.

Reproduction steps / code

We cannot reproduce the crash reliably. The observed production path displays a persistent background through the Compose app.rive.Rive API.

We have not confirmed a navigation, surface teardown, or application lifecycle trigger. We have not identified a specific .riv feature as the trigger.

Rive Android runtime version

11.9.1 and 11.9.2

Rive API

Compose

Device

34 exact model and API combinations. Representative models are listed above.

Device OS

Android 13, Android 15, and Android 16

Other Rive runtimes affected

Unknown

Additional context

Issue #427 closed after one commenter reported success with 11.2.1. That commenter had previously reported a different SIGSEGV variant. The original Mali reporter did not confirm that fix.

Our newer 11.9.x evidence suggests that the Mali destroyed-mutex variant remains.

We currently disable this Rive background only for the affected device and API combinations. We do not disable Rive for all Mali GPUs.

Is there a known race between the command server and EGL surface or context teardown?

If Rive already fixed this path, which release and commit contain the fix?

Which additional data would help? We can collect GPU renderer strings, driver versions, full tombstones, and lifecycle breadcrumbs.

Related report and prior discussion: #427

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions