티스토리 뷰

반응형

운영중인 안드로이드을 모니터링 하는 다양한 방법 가운데 가장 적은 비용으로 구축 할 수 있는 방법 중 하나는 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 앱 업데이트를 제거

한국 저녁시간에 구글은 ChromeAndroid 시스템 WebView 앱을 업데이트 하였고 해당 이슈는 해결되는 듯 보였습니다.

 

해결되지 않은 문제

ChromeAndroid 시스템 WebView 을 업데이트 된 후에도 Firebase Crashlytics 에는 동일한 이슈가 발생하고 있습니다.

다른 개발자 분들도 동일한 이슈가 발생하고 있다는 내용이 지속적으로 Chrome bug 페이지에 올라오고 있습니다.

StackOverFlow 또는 개인 블로그로 Webview Data Directory에 동시이 여러 Process 접근 이슈의 임시 대안으로 setDataDirectorySuffix 로 회피할 것을 가이드 해주는 글이 많습니다.

하지만 setDataDirectorySuffix 을 사용하여도 동일한 이슈가 발생한다는 의견도 있어 좀 더 해당 이슈에 대해서 지켜보고 대응할 필요가 있어보입니다.

[setDataDirectorySuffix 활용한 예제]

 

마무리

Android Webview RuntimeException의 Androd Pie에서 발생한 이슈 원인에 대해서 알아봤습니다.

1 process을 사용하는 앱에서 위 앱에 대한 해결 방안에 대해서는 명확한 방법은 아직까지 없는 것으로 보여집니다.

Android System WebView 최신화 또는 setDataDirectorySuffix 을 통한 우회 방법을 참고하여 이슈에 대응하는데 도움이 되었으면 좋겠습니다.

 

관련기사 및 참고자료

WebView 관련 기사

WebView 관련 기사2

WebView 관련 기사3

https://downdetector.com/status/google/

558377 이슈에 대한 Chrome bug 페이지

using webview from more than one process at once with the same data directory 검색결과

Using WebView from more than one process at once with the same data directory is not... - programmersought

동작 변경사항: API 레벨 28+를 타겟팅하는 앱

 

반응형
댓글