티스토리 뷰
[이슈] sing WebView from more than one process at once with the same data directory...
부커(Booker) 2021. 4. 9. 01:00운영중인 안드로이드을 모니터링 하는 다양한 방법 가운데 가장 적은 비용으로 구축 할 수 있는 방법 중 하나는 Firebase Crashlytics 을 도입하는 것입니다.
제가 운영하는 Toy App 에서 웹뷰를 사용하는 앱이 있는데요. 그 앱에는 Firebase Crashlytics을 구축하여 앱 안정성을 모니터링 하고 있습니다.
최근 다음과 같은 Webviw에서 이슈가 발생했습니다.
Caused by java.lang.RuntimeException
Using WebView from more than one process at once with the same data directory
is not supported. https://crbug.com/558377 : Current process com.xxxxxx (pid 12345),
lock owner unknown
로그를 보면 RuntimeException 발생 원인은 Android 9 이상에서는 WebView의 Data Directory 접근 시 1개의 Process 로 접근할 수 있는데 WebView의 Data Directory 접근을 여러 Process에서 동시에 접근하려 하여 발생한 이슈로 표현하고 있습니다.
필자의 앱은 1개의 Process 에서만 동작하는데 왜 이런 이슈가 나왔을지 의문이 들었습니다.
프로세스별로 구분되는 웹 기반 데이터 디렉터리
Android 9에서 앱 안정성과 데이터 무결성을 개선하기 위해, 앱은 여러 프로세스 사이에서 단일 WebView 데이터 디렉터리를 공유할 수 없습니다. 일반적으로 이러한 데이터 디렉터리는 쿠키, HTTP 캐시 그리고 웹 검색과 관련된 기타 영구 저장소 및 임시 저장소를 저장합니다.
Webview 이슈일까?
필자의 앱이 RuntimeException이 급속도로 발생한 시점과 2021년 03월 23일 발생한 Webview 이슈와 시기가 비슷하였습니다. 그래서 필자는 1차적으로 Webview 버그가 아닌지 의심하였습니다.
2021년 03월 23일 카카오, 네이버, 증권, 은행 앱 등 주요 앱들이 실행 중 종료되는 현상이 발생하였습니다.
Android 시스템 Webview
앱의 충돌로 인한 이슈로 구글에서 수정 전까지 다음 방법으로 일시적으로 문제 해결할 것을 안내하였습니다.
Google Play 스토어 > 최신 Android 시스템 WebView 앱 업데이트를 제거
한국 저녁시간에 구글은 Chrome
과 Android 시스템 WebView
앱을 업데이트 하였고 해당 이슈는 해결되는 듯 보였습니다.
해결되지 않은 문제
Chrome
과 Android 시스템 WebView
을 업데이트 된 후에도 Firebase Crashlytics 에는 동일한 이슈가 발생하고 있습니다.
다른 개발자 분들도 동일한 이슈가 발생하고 있다는 내용이 지속적으로 Chrome bug 페이지에 올라오고 있습니다.
StackOverFlow 또는 개인 블로그로 Webview Data Directory에 동시이 여러 Process 접근 이슈
의 임시 대안으로 setDataDirectorySuffix 로 회피할 것을 가이드 해주는 글이 많습니다.
하지만 setDataDirectorySuffix 을 사용하여도 동일한 이슈가 발생한다는 의견도 있어 좀 더 해당 이슈에 대해서 지켜보고 대응할 필요가 있어보입니다.
[setDataDirectorySuffix 활용한 예제]
마무리
Android Webview RuntimeException의 Androd Pie에서 발생한 이슈 원인에 대해서 알아봤습니다.
1 process을 사용하는 앱에서 위 앱에 대한 해결 방안에 대해서는 명확한 방법은 아직까지 없는 것으로 보여집니다.
Android System WebView 최신화 또는 setDataDirectorySuffix 을 통한 우회 방법을 참고하여 이슈에 대응하는데 도움이 되었으면 좋겠습니다.
관련기사 및 참고자료
https://downdetector.com/status/google/
using webview from more than one process at once with the same data directory 검색결과
'프로그래밍 > Android' 카테고리의 다른 글
[Android] ViewModel와 AAC ViewModel의 차이는 무엇일까? (ViewModel vs AAC ViewModel) (0) | 2022.06.29 |
---|---|
MacBookPro M1 환경에서 Android Studio 사용하기 (0) | 2021.07.17 |
왜 코틀린을 쓰는가? (0) | 2021.03.28 |
Corner Round View 만드는 방법 (0) | 2021.02.15 |
접근성(Voice Assistant) (0) | 2021.01.03 |
- 임용고시
- 알고리즘
- view
- Kotlin
- 안드로이드
- 점수판
- 스코어헬퍼
- missionchina
- IT
- 미션차이나센터
- 고시문헬퍼
- flutter
- missioon
- push
- 선교
- MCC
- 패턴
- DI
- java
- 코틀린
- IOS
- 탁구
- issue
- 디자인패턴
- swift
- 고시문
- Android Studio
- Android
- RXjava
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |