iOS Simulator: SIGSEGV in -[RiveFactory decodeImage:] when a RiveView with referenced image assets mounts again after the last RiveView unmounted
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 43/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- ios, typescript
- Bereich
- mobile
Rechercherichtung
Start by tracing RiveReactNativeView.processAssetBytes, RiveFactory.decodeImage:, and RenderContextManager to understand how render contexts are retained across view unmounts. Reproduce the issue with the reported two-asset mount and unmount sequence in the iOS Simulator. Done when repeated remounts no longer crash while processing referenced image assets.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Versions: rive-react-native 9.8.6 (RiveRuntime 6.24.0), React Native 0.87, iOS Simulator on an Apple-silicon Mac. Not reproduced on a physical iPhone.
What happens: the app crashes natively (SIGSEGV) in -[RiveFactory decodeImage:], called from RiveReactNativeView.processAssetBytes, when a RiveView that supplies images through referencedAssets mounts again after every RiveView had been unmounted. The first mount always works.
Steps
- Render a
RiveViewfor a .riv with two referenced image assets, supplied as URLs viareferencedAssets. - Unmount it so no
RiveViewis alive. - Mount a new
RiveViewfor the same file and assets. - The app crashes while the asset bytes are processed. Intermittent: 4 of 5 automated runs.
What we think happens: RenderContextManager keeps its render contexts weakly ("when no more RiveRenderViews require these, they can be freed"), and RiveFactory holds a raw rive::Factory*. After the last view unmounts the context is freed, and decoding assets for the new view dereferences it.
Tried: decoding on the main thread (same crash, now on the main thread); dropping stale loads with a generation token (still crashes); holding a RiveFile reference (not reliable). RenderContextManager.shared().newDefaultContext() isn't callable from Swift because RenderContext is only forward-declared.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 789
- Forks
- 81
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus rive-app/rive-react-native
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
rive-app/rive-react-native#450 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
rive-app/rive-react-native#431 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
rive-app/rive-react-native#448 · 2 Kommentare · 1 Reaktion ·
-
[Android] Rive events dispatched off the UI thread can deadlock with Reanimated under Fabric (ANR)Evtl. vergeben @Togetic hat das vor 70 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
rive-app/rive-react-native#444 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
rive-app/rive-react-native#441 ·
Alle Issues in rive-app/rive-react-native
Ähnliche Issues
-
Bug: Cloudflare Pages static _redirects identity rule causes RSC Flight to reload as HTMLEvtl. vergeben @Donvero hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Mantitup-Org/vista#210 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
simstudioai/sim#9831 ·
Maintainer antworten meist innerhalb von 1 Tag
-
status: waiting for maintainer
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
mui/material-ui#49751 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
diplodoc-platform/transform#1184 ·
Maintainer antworten meist innerhalb von 1 Tag