New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 725895 link

Starred by 5 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug


Show other hotlists

Hotlists containing this issue:
Hotlist-1


Sign in to add a comment

WebView memory leaks on Samsung Galaxy S4

Reported by peabeyna...@gmail.com, May 24 2017

Issue description

Steps to reproduce the problem:
1. Create empty android project;
2. Add code in function onCreate():
WebView webview = new WebView(this);
setContentView(webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://viber.absolutist.com/promo/index5.php?platform=android&bundle=com.absolutist.spacelegendsfree&language=en");
3. Run app on Samsung Galaxy S4
4. Wait for 1 minute and app crashes with
Abort message: '[FATAL:memory.cc(22)] Out of memory. size=589824

What is the expected behavior?
App won't crash

What went wrong?
App crashes 

Did this work before? No 

Chrome version: 58.0.3029.83  Channel: stable
OS Version: 5.0.1
Flash Version: 

MainActivity.java, apk-file and logcat is attached
 
app-debug.apk
1.4 MB Download
logcat.txt
357 KB View Download
MainActivity.java
675 bytes View Download
Components: Mobile>WebView

Comment 2 by aluo@chromium.org, May 24 2017

Cc: satyavat...@chromium.org
Labels: Needs-Bisect
satyavathir@, please assign and see if this is reproducible and if it happens on system webview version.

Comment 3 by rtoy@chromium.org, May 24 2017

Components: -Blink
Downloading 1 files took 0.003017 second(s)
Operating system: Android
                  samsung/ja3gxx/ja3g:5.0.1/LRX22C/I9500XXUHPK1:user/release-keys
CPU: arm
     4 CPUs

GPU: OpenGL ES 2.0 build 1.10@2359475
     Imagination Technologies
     PowerVR SGX 544MP

Crash reason:  
Crash address: 0x0
Process uptime: not available

Thread 0 (crashed)
 0  libc.so + 0x3a0ec
     r0 = 0x00000000    r1 = 0x000075e7    r2 = 0x00000006    r3 = 0x00000000
     r4 = 0x9d001db8    r5 = 0x00000006    r6 = 0x00000001    r7 = 0x0000010c
     r8 = 0xb6f92df4    r9 = 0x9d0019a4   r10 = 0x00000000   r12 = 0x000075e7
     fp = 0xa4e44ca2    sp = 0x9d0014d0    lr = 0xb6f3c551    pc = 0xb6f5f0ec
    Found by: given as instruction pointer in context
 1  libc.so + 0x18161
     sp = 0x9d0014e8    pc = 0xb6f3d163
    Found by: stack scanning
 2  libc.so + 0x14aa7
     sp = 0x9d0014f0    pc = 0xb6f39aa9
    Found by: stack scanning
 3  libwebviewchromium.so!RealCalloc [allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc : 43 + 0x7]
     sp = 0x9d0014fc    pc = 0xa2fe65f9
    Found by: stack scanning
 4  libc.so + 0x12a6e
     sp = 0x9d001518    pc = 0xb6f37a70
    Found by: stack scanning
 5  libwebviewchromium.so!base::debug::BreakDebugger() [debugger_posix.cc : 221 + 0x3]
     sp = 0x9d001520    pc = 0xa2f8d501
    Found by: stack scanning
 6  libwebviewchromium.so!logging::LogMessage::~LogMessage() [logging.cc : 759 + 0x3]
     r3 = 0x0defaced    sp = 0x9d001528    pc = 0xa2f99d67
    Found by: call frame info
 7  libwebviewchromium.so!OnNoMemory [memory.cc : 22 + 0x5]
     r4 = 0x0defaced    r5 = 0x9d0019a0    r6 = 0x9d0019d8    r7 = 0x9d00199c
     r8 = 0xa4e94288    r9 = 0x9d0019a4   r10 = 0x0defaced    sp = 0x9d001980
     pc = 0xa2fad755
    Found by: call frame info
 8  libwebviewchromium.so!gpu::GpuMemoryBufferImplSharedMemory::Map() [gpu_memory_buffer_impl_shared_memory.cc : 180 + 0x5]
     r4 = 0x0defaced    r5 = 0x0defaced    r6 = 0x00000000    r7 = 0x0defaced
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0x0defaced    fp = 0xa4e44ca2
     sp = 0x9d001a60    pc = 0xa3436d47
    Found by: call frame info
 9  libwebviewchromium.so!cc::OneCopyRasterBufferProvider::PlaybackToStagingBuffer(cc::StagingBuffer*, cc::Resource const*, cc::RasterSource const*, gfx::Rect const&, gfx::Rect const&, float, sk_sp<SkColorSpace>, cc::RasterSource::PlaybackSettings const&, unsigned long long, unsigned long long) [one_copy_raster_buffer_provider.cc : 293 + 0x7]
     r4 = 0x0defaced    r5 = 0x0defaced    r6 = 0x9d001aa8    r7 = 0x0defaced
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0x0defaced    fp = 0xa4e44ca2
     sp = 0x9d001a70    pc = 0xa3030813
    Found by: call frame info
10  libwebviewchromium.so!cc::OneCopyRasterBufferProvider::PlaybackAndCopyOnWorkerThread(cc::Resource const*, cc::ResourceProvider::ScopedWriteLockGL*, gpu::SyncToken const&, cc::RasterSource const*, gfx::Rect const&, gfx::Rect const&, float, cc::RasterSource::PlaybackSettings const&, unsigned long long, unsigned long long) [one_copy_raster_buffer_provider.cc : 240 + 0x3]
     r4 = 0x0defaced    r5 = 0x9d001b24    r6 = 0x0defaced    r7 = 0x0defaced
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0x000009e7    fp = 0x00000000
     sp = 0x9d001af8    pc = 0xa3030ce5
    Found by: call frame info
11  libwebviewchromium.so!cc::OneCopyRasterBufferProvider::RasterBufferImpl::Playback(cc::RasterSource const*, gfx::Rect const&, gfx::Rect const&, unsigned long long, float, cc::RasterSource::PlaybackSettings const&) [one_copy_raster_buffer_provider.cc : 66 + 0x33]
     r4 = 0x0defaced    r5 = 0x0defaced    r6 = 0x9d001c40    r7 = 0x0defaced
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0x0defaced    fp = 0x00000000
     sp = 0x9d001b60    pc = 0xa3030dd7
    Found by: call frame info
12  libwebviewchromium.so!RunOnWorkerThread [tile_manager.cc : 131 + 0x1d]
     r4 = 0x0defaced    r5 = 0xa3030d75    r6 = 0x9d001c40    r7 = 0x0defaced
     r8 = 0x9d001c60    r9 = 0x9d001c2c   r10 = 0x000009f6    fp = 0x00000000
     sp = 0x9d001bf0    pc = 0xa3058897
    Found by: call frame info
13  libwebviewchromium.so!content::CategorizedWorkerPool::RunTaskInCategoryWithLockAcquired(cc::TaskCategory) [categorized_worker_pool.cc : 359 + 0x3]
     r4 = 0x9d001cf0    r5 = 0x0defaced    r6 = 0x0defaced    r7 = 0x9d001ce4
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0xb6f3bd1d    fp = 0x9d001db0
     sp = 0x9d001cd8    pc = 0xa4608843
    Found by: call frame info
14  libwebviewchromium.so!content::CategorizedWorkerPool::RunTaskWithLockAcquired(std::__ndk1::vector<cc::TaskCategory, std::__ndk1::allocator<cc::TaskCategory> > const&) [categorized_worker_pool.cc : 338 + 0x7]
     r4 = 0x0defaced    r5 = 0x00000001    r6 = 0x0defaced    r7 = 0x0defaced
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0xb6f3bd1d    fp = 0x9d001db0
     sp = 0x9d001d28    pc = 0xa46088c1
    Found by: call frame info
15  libwebviewchromium.so!content::CategorizedWorkerPool::Run(std::__ndk1::vector<cc::TaskCategory, std::__ndk1::allocator<cc::TaskCategory> > const&, base::ConditionVariable*) [categorized_worker_pool.cc : 230 + 0x7]
     r3 = 0x00000000    r4 = 0x0defaced    r5 = 0x0defaced    r6 = 0x0defaced
     r7 = 0x00000078    r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0xb6f3bd1d
     fp = 0x9d001db0    sp = 0x9d001d40    pc = 0xa46088e5
    Found by: call frame info
16  libwebviewchromium.so!base::SimpleThread::ThreadMain() [simple_thread.cc : 68 + 0x7]
     r4 = 0x0defaced    r5 = 0x9d001d5c    r6 = 0x0defaced    r7 = 0x00000078
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0xb6f3bd1d    fp = 0x9d001db0
     sp = 0x9d001d58    pc = 0xa2fc625b
    Found by: call frame info
17  libwebviewchromium.so!ThreadFunc [platform_thread_posix.cc : 71 + 0x7]
     r4 = 0x0defaced    r5 = 0x0defaced    r6 = 0x0defaced    r7 = 0x00000078
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0xb6f3bd1d    fp = 0x9d001db0
     sp = 0x9d001d88    pc = 0xa2fc3151
    Found by: call frame info
18  libc.so + 0x16d3b
     r4 = 0x0defaced    r5 = 0x0defaced    r6 = 0x0defaced    r7 = 0x00000078
     r8 = 0x0defaced    r9 = 0x0defaced   r10 = 0xb6f3bd1d    fp = 0x9d001db0
     sp = 0x9d001d98    pc = 0xb6f3bd3d
    Found by: call frame info
19  libc.so + 0x16d1b
     sp = 0x9d001d9c    pc = 0xb6f3bd1d
    Found by: stack scanning
20  libc.so + 0x16d1b
     sp = 0x9d001da4    pc = 0xb6f3bd1d
    Found by: stack scanning
21  libc.so + 0x14e03
     sp = 0x9d001da8    pc = 0xb6f39e05
    Found by: stack scanning

Loaded modules:
0x75d6b000 - 0x77ff3fff  boot.oat  ???
0x9e3a3000 - 0x9e3e2fff  libglslcompiler.so  ???
0xa0673000 - 0xa067bfff  gralloc.exynos5.so  ???
0xa1ae2000 - 0xa1cfefff  data@app@com.absolutist.testwebview-2@base.apk@classes.dex  ???
0xa2d00000 - 0xa51dbfff  libwebviewchromium.so  ???
0xa922b000 - 0xa929afff  libGLESv2_POWERVR_SGX544_115.so  ???
0xa929e000 - 0xa93bbfff  libusc.so  ???
0xad1a9000 - 0xad302fff  libstagefright.so  ???
0xae738000 - 0xae73efff  librs_jni.so  ???
0xae741000 - 0xae744fff  libaudioeffect_jni.so  ???
0xae747000 - 0xae748fff  libsoundpool.so  ???
0xae74b000 - 0xae762fff  libjavacrypto.so  ???
0xae766000 - 0xae771fff  libstagefright_amrnb_common.so  ???
0xae774000 - 0xae78bfff  libvorbisidec.so  ???
0xae78f000 - 0xae7eafff  libsavsff.so  ???
0xae904000 - 0xae904fff  libwebviewchromium_loader.so  ???
0xae907000 - 0xae907fff  libjnigraphics.so  ???
0xae90a000 - 0xae90ffff  libcompiler_rt.so  ???
0xae912000 - 0xae91efff  libandroid.so  ???
0xae922000 - 0xae924fff  libpvrANDROID_WSEGL.so  ???
0xae927000 - 0xae9a5fff  libGLESv1_CM_POWERVR_SGX544_115.so  ???
0xae9a8000 - 0xae9e4fff  libsrv_um.so  ???
0xae9e8000 - 0xae9fafff  libIMGegl.so  ???
0xae9fd000 - 0xae9fefff  libEGL_POWERVR_SGX544_115.so  ???
0xaed03000 - 0xaed04fff  libstagefright_yuv.so  ???
0xaed07000 - 0xaed26fff  libstagefright_omx.so  ???
0xaed2b000 - 0xaed2ffff  libstagefright_avc_common.so  ???
0xaed32000 - 0xaed3afff  libsfextcp.so  ???
0xaed3d000 - 0xaed44fff  libsecuibc.so  ???
0xaed47000 - 0xaed93fff  libsavscmn.so  ???
0xaed95000 - 0xaed96fff  libpowermanager.so  ???
0xaed9a000 - 0xaedd2fff  libopus.so  ???
0xaedd6000 - 0xaededfff  libdrmframework.so  ???
0xaedf3000 - 0xaedf5fff  libvirtualdisplay.so  ???
0xaee13000 - 0xaee6bfff  libPVROCL.so  ???
0xaf401000 - 0xaf401fff  libstagefright_enc_common.so  ???
0xaf404000 - 0xaf405fff  libhwcutilsmodule.so  ???
0xaf408000 - 0xaf408fff  libmpp.so  ???
0xaf40b000 - 0xaf40bfff  libion.so  ???
0xaf40e000 - 0xaf414fff  libMcClient.so  ???
0xaf417000 - 0xaf41efff  libhwcutils.so  ???
0xaf422000 - 0xaf426fff  libexynosscaler.so  ???
0xaf42a000 - 0xaf431fff  libexynosgscaler.so  ???
0xaf434000 - 0xaf439fff  libdisplay.so  ???
0xaf43d000 - 0xaf441fff  libhdmi.so  ???
0xaf444000 - 0xaf445fff  libexynosutils.so  ???
0xaf448000 - 0xaf44cfff  libexynosv4l2.so  ???
0xaf44f000 - 0xaf456fff  libExynosHWCService.so  ???
0xaf45b000 - 0xaf46dfff  libmtp.so  ???
0xaf705000 - 0xaf70dfff  libjhead.so  ???
0xaf711000 - 0xaf72ffff  libexif.so  ???
0xaf73e000 - 0xaf777fff  libmedia_jni.so  ???
0xaf7d6000 - 0xaf7d6fff  memtrack.exynos5.so  ???
0xafb42000 - 0xafcf9fff  data@app@com.google.android.webview-2@base.apk@classes.dex  ???
0xb0eec000 - 0xb0f20fff  libjavacore.so  ???
0xb3b27000 - 0xb3b2bfff  libpvr2d.so  ???
0xb3b50000 - 0xb3b51fff  libwebviewchromium_plat_support.so  ???
0xb49e8000 - 0xb4cf2fff  libart.so  ???
0xb4f29000 - 0xb4f2efff  libbacktrace_libc++.so  ???
0xb4f52000 - 0xb4f53fff  libusbhost.so  ???
0xb4f56000 - 0xb4f90fff  libssl.so  ???
0xb4f97000 - 0xb4fa0fff  libsoundtrigger.so  ???
0xb4fa6000 - 0xb4faefff  libsensorhub.so  ???
0xb4fb3000 - 0xb4fc2fff  libselinux.so  ???
0xb4fc5000 - 0xb4fc7fff  libsecnativefeature.so  ???
0xb4fca000 - 0xb4fcbfff  libprocessgroup.so  ???
0xb4fce000 - 0xb5417fff  libpdfium.so  ???
0xb542e000 - 0xb542ffff  libnetd_client.so  ???
0xb5432000 - 0xb5435fff  libnativehelper.so  ???
0xb5439000 - 0xb543afff  libnativebridge.so  ???
0xb543d000 - 0xb5445fff  libminikin.so  ???
0xb5449000 - 0xb5449fff  libmemtrack.so  ???
0xb544c000 - 0xb545efff  libstagefright_foundation.so  ???
0xb5462000 - 0xb5468fff  libsec_km.so  ???
0xb546c000 - 0xb546ffff  libsdp_crypto.so  ???
0xb5472000 - 0xb5473fff  libpersona.so  ???
0xb5477000 - 0xb54fffff  libsqlite.so  ???
0xb5506000 - 0xb569afff  libomadrm.so  ???
0xb56b0000 - 0xb56fffff  libsonivox.so  ???
0xb5707000 - 0xb5711fff  libcommon_time_client.so  ???
0xb5716000 - 0xb571dfff  libnbaio.so  ???
0xb5720000 - 0xb57b9fff  libmedia.so  ???
0xb57da000 - 0xb5819fff  libinputflinger.so  ???
0xb581e000 - 0xb5835fff  libinput.so  ???
0xb583b000 - 0xb5844fff  libimg_utils.so  ???
0xb5848000 - 0xb5863fff  libquramimagecodec.so  ???
0xb5866000 - 0xb5894fff  libjpeg.so  ???
0xb5898000 - 0xb5898fff  libfimg2d_board.so  ???
0xb589b000 - 0xb589efff  libfimg.so  ???
0xb58a1000 - 0xb5b0afff  libskia.so  ???
0xb5b2c000 - 0xb5b3afff  libsamsungeffect.so  ???
0xb5b3d000 - 0xb5b57fff  libRScpp.so  ???
0xb5b5a000 - 0xb5b7cfff  libpng.so  ???
0xb5b82000 - 0xb5bd7fff  libft2.so  ???
0xb5bdc000 - 0xb5c16fff  libbcinfo.so  ???
0xb5c19000 - 0xb5c38fff  libbcc.so  ???
0xb5c5c000 - 0xb5ce9fff  libc++.so  ???
0xb5cf1000 - 0xb65dffff  libLLVM.so  ???
0xb6630000 - 0xb6665fff  libRS.so  ???
0xb666a000 - 0xb66bdfff  libhwui.so  ???
0xb66c3000 - 0xb67c6fff  libicuuc.so  ???
0xb67d7000 - 0xb67dafff  libgabi++.so  ???
0xb67dd000 - 0xb6937fff  libicui18n.so  ???
0xb6944000 - 0xb6989fff  libharfbuzz_ng.so  ???
0xb698c000 - 0xb698efff  libwpa_client.so  ???
0xb6991000 - 0xb6995fff  libnetutils.so  ???
0xb6999000 - 0xb699efff  libhardware_legacy.so  ???
0xb69a2000 - 0xb69b5fff  libexpat.so  ???
0xb69b9000 - 0xb6ae4fff  libcrypto.so  ???
0xb6afd000 - 0xb6afdfff  libcc_manager.so  ???
0xb6b00000 - 0xb6b00fff  libsync.so  ???
0xb6b03000 - 0xb6b03fff  libhardware.so  ???
0xb6b07000 - 0xb6b10fff  libui.so  ???
0xb6b13000 - 0xb6b1afff  libremotedesktop_client.so  ???
0xb6b1e000 - 0xb6b60fff  libgui.so  ???
0xb6b6e000 - 0xb6b73fff  libcamera_metadata.so  ???
0xb6b76000 - 0xb6baffff  libcamera_client.so  ???
0xb6bbb000 - 0xb6bbdfff  libspeexresampler.so  ???
0xb6bc1000 - 0xb6bc4fff  libaudioutils.so  ???
0xb6bc7000 - 0xb6bdefff  libz.so  ???
0xb6be1000 - 0xb6be1fff  libion_exynos.so  ???
0xb6be4000 - 0xb6c0cfff  libbinder.so  ???
0xb6c16000 - 0xb6c3afff  libandroidfw.so  ???
0xb6c3e000 - 0xb6c48fff  libGLESv2.so  ???
0xb6c4b000 - 0xb6c50fff  libGLESv1_CM.so  ???
0xb6c53000 - 0xb6c54fff  libETC1.so  ???
0xb6c57000 - 0xb6c58fff  libunwind-ptrace.so  ???
0xb6c5b000 - 0xb6c66fff  libunwind.so  ???
0xb6caf000 - 0xb6cb2fff  libgccdemangle.so  ???
0xb6cb8000 - 0xb6cbdfff  libbacktrace.so  ???
0xb6cc1000 - 0xb6cd5fff  libutils.so  ???
0xb6cd9000 - 0xb6d0ffff  libstlport.so  ???
0xb6d14000 - 0xb6d1efff  libcutils.so  ???
0xb6d22000 - 0xb6d8efff  libGLES_trace.so  ???
0xb6d93000 - 0xb6df0fff  libEGL.so  ???
0xb6e00000 - 0xb6ee9fff  libandroid_runtime.so  ???
0xb6f00000 - 0xb6f01fff  libstdc++.so  ???
0xb6f04000 - 0xb6f1afff  libm.so  ???
0xb6f1e000 - 0xb6f21fff  liblog.so  ???
0xb6f25000 - 0xb6f8afff  libc.so  ???  (WARNING: No symbols, libc.so, C32E8C7F492AEB87E030F7B32C1C52BF0)
0xb6f9c000 - 0xb6f9cfff  libsigchain.so  ???
0xb6fa3000 - 0xb6faffff  linker  ???
0xb6fb3000 - 0xb6fb5fff  app_process32  ???

can't reproduce on Nexus 6P

Comment 6 by torne@chromium.org, May 25 2017

From the microdump address space stats: by the time the microdump was taken there actually should have been (just about) enough address space to satisfy this allocation (there's just one single 64MB chunk available, and only 149MB free total). But, there's loads of failures from the GPU driver between the initial OOM and the microdump - it's likely that we actually were out of memory at that point, but while the GPU driver was failing it unmapped some stuff.

Unfortunately we don't dump the full address space map in a microdump so it's hard to see what was taking up all the space (minidumps do have this).

The page doesn't appear to use an unusual amount of memory on my devices, but it also doesn't appear to load properly (it renders a logo, background, and a weird empty frame, and spews a bunch of JS errors) so it's hard to tell whether something's going wrong or not.

It's possible we're tickling a GPU driver bug here that's making it misbehave and map too much stuff, but that's just a guess. We either need to be able to reproduce this (probably on the same device/build if it's a driver bug), or to get more data about what's mapped at the time of the crash (from a minidump, if there's a way to get it to generate that on a production build, or by doing a special build for the reporter that dumps it some other way?)
satyavathir@ would you like to verify if this issue could be reproduced?

Comment 8 by aluo@chromium.org, May 26 2017

Cc: -satyavat...@chromium.org
Owner: satyavat...@chromium.org
Owner: ----
I have checked on Samsung S4 Verizon(SCH-I545)/LRX22C with WebView :43.0.2357.121 (system), 58..0.3029.83 (Stable) and 59.0.3071.71(Beta). I didn't see any crashes on app launch.

I have also checked few things:
Kept the app in #0 idle for 3 to 5 minutes - no crashes
Back grounded the app, launched other WebView apps, launched app #0 from recent apps - no crashes
Clicked the links(like Facebook, G+, twitter etc) within app - no crashes
Clicked on the deck of apps- > it takes to Play store - no crashes 

May be we should find out more info, from the user? 

Thanks!

Comment 10 by torne@chromium.org, May 31 2017

Does the device you tested this on have the same build fingerprint:
samsung/ja3gxx/ja3g:5.0.1/LRX22C/I9500XXUHPK1:user/release-keys
I suppose, you can't reproduce because different GPU:
Samsung Galaxy S4 I9500XXUHPK1 has PowerVR SGX 544MP, but
Samsung S4 Verizon SCH-I545 has Adreno 320GPU.
Owner: satyavat...@chromium.org
Thanks for confirming that.

Satya, do we have one of the S4 variants with the Exynos SoC and Adreno GPU? I think those might not be sold in the US. The one you tested is the Snapdragon SoC with PVR GPU, so if it's a driver issue as I somewhat suspect then it won't repro there.
torne@ - we have only S4 Verizon/L for WebView (we have many S4's, mostly < L versions). I will recheck all remaining S4's to see, if any of these matches to the exact GPU & update the bug. 

Thanks!
Cc: battun@chromium.org
satyavathir@, the folks in India (ET) may have a GT-I9500 with L.

battun@, can you work with them to repro?
I have checked on Samsung Galaxy S4 Verizon(GT-I9500 PowerVR SGX 544MP)/LRX22C with WebView :43.0.2357.121 (system), 58..0.3029.83 (Stable) and 59.0.3071.71(Beta). I didn't see any crashes on app launch.

I have also tried by keeping the app back ground, idle for 5 to 10 minutes - we don't see any crash. 

Thanks!
Device fingerprint: samsung/ja3gub/ja3g:5.0.1/LRX22C/I9500UBUHOK2:user/release-keys

Thanks!

Comment 17 by torne@chromium.org, Jun 22 2017

Labels: -Arch-x86_64 -Needs-Bisect Needs-Feedback
Owner: ----
Thanks for trying.

peabeynarovich@, since we can't reproduce this the only way we'll be able to figure out what's happening is if you can get us some more information. A memory-infra trace might help: https://chromium.googlesource.com/chromium/src/+/master/docs/memory-infra/README.md
Hi

How to start chromium memory trace on Android WebView app?
Project Member

Comment 19 by sheriffbot@chromium.org, Jun 29 2017

Cc: torne@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "torne@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: Needs-Feedback
Assuming that you can't find a userdebug ROM for the device, you would need to add the following to your app initialization code:

WebView.setWebContentsDebuggingEnabled(true);

Then, when the device is connected via usb to a machine running chrome, browse to:

chrome://inspect?tracing

You should see a list of WebViews in your application, along with a "trace" link. Clicking on the trace link and then on "Record" should give you a list of categories to trace. If you select the memory-infra category, record a trace, and then save it to disk, the file produced should be the information we require.
Hi again

Trace file is attached.
trace_WebView.zip
2.3 MB Download
Project Member

Comment 22 by sheriffbot@chromium.org, Jul 3 2017

Cc: tobiasjs@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "tobiasjs@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 23 by boliu@chromium.org, Jul 14 2017

all the leaks are mappings from /dev/pvrsrvkm, that's the powervr graphics driver. However there is no growth in chrome's internal tracking, meaning chrome/webview considers that it has freed all its allocated resources (or at least there is no growth). So this is likely a gpu driver bug.

Can you open chrome browser on the device, go to chrome://gpu, and print that page as pdf and attach it here?

Don't really have high hopes of actually having this fixed, since device has probably long past oem support, and it's unlikely to get driver fixes, and finding workaround is hard.
Cc: ntfschr@chromium.org
Labels: Needs-Feedback
Adding needs-feedback for the pdf of chrome://gpu
I can't create pdf because I didn't find menu Share. 
I have made screenshots (attached)
GPU_info.zip
2.5 MB Download
Project Member

Comment 26 by sheriffbot@chromium.org, Jul 18 2017

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "ntfschr@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 27 by boliu@chromium.org, Jul 18 2017

we have one s4 with the same gpu, but it's stuck on kitkat..

Comment 28 by boliu@chromium.org, Jul 18 2017

Labels: -Pri-2 Pri-3
played with the kitkat device a bit

test shell leaks plenty of memory, expanding the avoid_egl_image_target_texture_reuse workaround does not help, disabling texture reuse in makes the rate of leak much much faster. so this is driver leaking some memory each time is created and shared. And on kitkat at least, KHR_fence_sync is blacklisted, so technically, webview doesn't even have enough extensions to operate in GL mode (although the code that checks for that doesn't respect the blacklist)

wonder if we should just blacklist hardware acceleration altogether on this config..
is this still an issue? is WebView memory still leaking on Samsung Galaxy S4? 
Yes, WebView memory is still leaking on Samsung Galaxy S4 (Chrome version: 62.0.3202.84)

Comment 31 by ctzsm@chromium.org, Dec 22 2017

Cc: ctzsm@chromium.org boliu@chromium.org
Status: Available (was: Unconfirmed)
It seems boliu@ had investigated this and there is no obvious way from WebView side to get this fixed. Potential workaround is blacklist hardware acceleration on this config per c#28.

cc boliu@ in case he want to make decision.

I'll change the status to available since the issue looks confirmed already.
Changing to available + p3 ensures that this will never be looked at by another team member. Is this configuration popular? Does it merit real action from our team (i.e. blacklisting the hardware)?

Comment 33 by ctzsm@chromium.org, Dec 22 2017

Owner: boliu@chromium.org
Status: Assigned (was: Available)
Hmm, S4 still shares reasonable amount of the market from the public resource (0.8% [1]), but with this GPU, maybe only Samsung knows. boliu@, assigning this to you, feel free to reassign though.

[1] https://www.appbrain.com/stats/top-android-phones
Cc: sandeepkumars@chromium.org
 Issue 807246  has been merged into this issue.
Labels: Valid-Difficult-Fix
Owner: ----
Status: Available (was: Assigned)
Labels: WebView-triaged

Sign in to add a comment