iOS Simulator: SIGSEGV in -[RiveFactory decodeImage:] when a RiveView with referenced image assets mounts again after the last RiveView unmounted
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 43/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- ios, typescript
- Domínio
- mobile
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- TypeScript
- Estrelas
- 789
- Forks
- 81
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de rive-app/rive-react-native
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
rive-app/rive-react-native#450 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
rive-app/rive-react-native#431 · 2 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
rive-app/rive-react-native#448 · 2 comentários · 1 reação ·
-
[Android] Rive events dispatched off the UI thread can deadlock with Reanimated under Fabric (ANR)Talvez já em andamento @Togetic assumiu há 70 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
rive-app/rive-react-native#444 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
rive-app/rive-react-native#441 ·
Todas as issues de rive-app/rive-react-native
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
mcp: create_app refuses the Assistant Inbox spec as 'looks like an API key' (nesting deeper than 8)Abertaagent:claude agent:ready dogfood type:bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
opennextjs/opennextjs-cloudflare#1485 ·
Mantenedores costumam responder em até 1 dia
-
enhancement lane: fast tier: should-stable
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
unicef/adt-studio#1078 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
WenyuChiou/agent-board#1283 ·
Mantenedores costumam responder em até 1 dia