aws / aws/amazon-chime-sdk-android
App crashes with refCount < 1 when multiple participants ends the call
- Dominant language
- Kotlin
- Stars
- 113
- Forks
- 60
- Avg merge
- 40m
- Merged PRs (30d)
- 2
Description
Crash Description
**App crashes with refCount < 1 when multiple participants ends the call**
Steps to reproduce
**when multiple participants ends the call**
**Not a every time issue. App crashing sometimes for different users**
Crash logs
java.lang.IllegalStateException: release() called on an object with refcount < 1 at
com.amazonaws.services.chime.sdk.meetings.utils.RefCountDelegate.release
Unknown Source:29
at
com.amazonaws.services.chime.sdk.meetings.audiovideo.video.gl.DefaultEglCoreFactory.onEglCoreReleased
Unknown Source:4
at
com.amazonaws.services.chime.sdk.meetings.audiovideo.video.gl.DefaultEglCoreFactory.access$onEglCoreReleased
Unknown Source
at
com.amazonaws.services.chime.sdk.meetings.audiovideo.video.gl.DefaultEglCoreFactory$createEglCore$$inlined$synchronized$lambda$2.run
Unknown Source:2
at
com.amazonaws.services.chime.sdk.meetings.audiovideo.video.gl.DefaultEglCore.release
Unknown Source:90
at
com.amazonaws.services.chime.sdk.meetings.internal.video.DefaultVideoClientController$stopAndDestroy$1.invokeSuspend
same crash happens multiple times.
version details
**ext.chime_sdk_ml = "0.3.0"
ext.chime_sdk_media = "0.20.0"
ext.chime_sdk = "0.20.0"**
Device details
1
--
architecture | aarch64
brand | POCO
model | M2102J20SI
name | POCO M2102J20SI
type | Mobile
2
--
architecture | aarch64
brand | Google
model | Pixel 9 Pro
name | Google Pixel 9 Pro
type | Mobile
3
--
architecture | aarch64
brand | Samsung
model | SM-S918B
name | Samsung SM-S918B
type | Mobile
4
--
architecture | aarch64
brand | Google
model | Pixel 4a
name | Google Pixel 4a
type | Mobile
From the app we have only 2 calls for release. Is there to check something like isReleased()? to safely call the release().
Contributor guide
Research direction
Start with the crash stack at RefCountDelegate.release, DefaultEglCoreFactory.onEglCoreReleased, and DefaultVideoClientController.stopAndDestroy. Reproduce calls ending with multiple participants and compare the app's two release calls with the SDK's release path. Done means repeated call endings no longer produce the refcount exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- audio-video-rtc, mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100