iOS Simulator: SIGSEGV in -[RiveFactory decodeImage:] when a RiveView with referenced image assets mounts again after the last RiveView unmounted
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 43/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- ios, typescript
- Lĩnh vực
- mobile
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 789
- Fork
- 81
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của rive-app/rive-react-native
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
rive-app/rive-react-native#450 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
rive-app/rive-react-native#431 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
rive-app/rive-react-native#448 · 2 bình luận · 1 reaction ·
-
[Android] Rive events dispatched off the UI thread can deadlock with Reanimated under Fabric (ANR)Có thể đã có người làm @Togetic đã nhận 69 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
rive-app/rive-react-native#444 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
rive-app/rive-react-native#441 ·
Tất cả issue của rive-app/rive-react-native
Issue tương tự
-
Absenderzeile über dem Anschriftfeld wird bei Angeboten und Rechnungen am Ende abgeschnittenĐang mởfehler
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Azure/azure-functions-nodejs-extensions#180 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
laaielichter/Threesmith#28 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 2 ngày
-
iso-bmff: add IsoBoxReadView.readUint64 and IsoBoxWriteView.writeUint64 for exact 64-bit fieldsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
streaming-video-technology-alliance/common-media-library#611 ·
Maintainer thường phản hồi trong vòng 1 ngày