New issue
Advanced search Search tips

Issue 762674 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 747657
Owner: ----
Closed: Nov 2017
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

VirtualFree() MEM_DECOMMIT failed in Purge(): Parameter is incorrect. (0x57)

Reported by lolovo2...@gmail.com, Sep 6 2017

Issue description

Chrome Version       : Chromium 57.0.2987.133 - 60.0.3112.113
URLs (if applicable) :
Other browsers tested: not tested

What steps will reproduce the problem?

notes: due to the problem triggers when memory usage exceeds the limits (i.e. default limits get minimum of ~536Mb and 25% of physical memory), it is best to set appropriate flag to lower this limit for reproduction - i.e. --enable-low-end-device-mode to make Purge work when memory limit exceeds

(1) execute "cefclient.exe --enable-low-end-device-mode"
(2) write address "https://www.facebook.com/VinDiesel" to the address box and press enter
(3) press ok button about console.log
(4) press menu "Test"->"New Window"
(5) repeat 2-4 steps several times to open at least 4-5 windows
(6) see debug.log:

[0905/164331.854:ERROR:discardable_shared_memory.cc(364)] VirtualFree() MEM_DECOMMIT failed in Purge(): Parameter is incorrect. (0x57)
[0905/164332.536:ERROR:discardable_shared_memory.cc(364)] VirtualFree() MEM_DECOMMIT failed in Purge(): Parameter is incorrect. (0x57)
[0905/164333.200:ERROR:discardable_shared_memory.cc(364)] VirtualFree() MEM_DECOMMIT failed in Purge(): Parameter is incorrect. (0x57)
[0905/164333.770:ERROR:discardable_shared_memory.cc(364)] VirtualFree() MEM_DECOMMIT failed in Purge(): Parameter is incorrect. (0x57)
[0905/164334.487:ERROR:discardable_shared_memory.cc(364)] VirtualFree() MEM_DECOMMIT failed in Purge(): Parameter is incorrect. (0x57)
[0905/164334.775:ERROR:discardable_shared_memory.cc(364)] VirtualFree() MEM_DECOMMIT failed in Purge(): Parameter is incorrect. (0x57)
...

(7) if there is no errors try to open more windows.

crash: when program work long time actively the result of work will be the folliwing crash:

[0904/180144.363:FATAL:mem_backend_impl.cc(111)] Check failed: CheckLRUListOrder(lru_list_).


What is the expected result?

no errors and at least one success call of VirtualFree in Purge

What happens instead?

any call of VirtualFree in Purge are failed with 0x57 error code - Incorrect parameter


 
Is anyone can explain smth about it? Is it normal got this errors?

Program always got crashes with time associated with memory in that or another way:
[0901/101618.115:WARNING:child_thread_impl.cc(695)] Browser failed to allocate shared memory

If additional information could be useful (almost all data contain in memory):
settings are:
	CefSettings settings;
	settings.single_process = false;
	settings.command_line_args_disabled = true;
	settings.multi_threaded_message_loop = true;
	settings.no_sandbox = true;
	settings.ignore_certificate_errors = true;
	CefString(&settings.user_data_path) = "";
	CefString(&settings.cache_path) = "";
	settings.persist_session_cookies = false;
	settings.persist_user_preferences = false;

browser settings are:
	CefBrowserSettings browser_settings;
	browser_settings.application_cache = STATE_DISABLED;
	browser_settings.databases = STATE_DISABLED;

I've also explored that if increase memory_limit_ in DiscardableSharedMemoryManager it will win for program more time until crash....but it seems that problem somewhere else?! These VirtualFree errors look like don't affect to anything?!

This issue happens almost all versions of chromium at least tested since 53.x...and it can be viewed in Debug build. In Release build these VirtualFree errors aren't appeared... but fatal crash like described above happened.

Any advice or suggestion?
Labels: TE-NeedsTraige-help Needs-Milestone
Seems it is out of scope from TE end, adding TE-NeedsTraige-help label to move this out of our triaging bucket.

Could someone from dev team please take a look into this issue.
Thanks..!

Comment 3 by w...@chromium.org, Nov 27 2017

Mergedinto: 747657
Status: Duplicate (was: Unconfirmed)
The VirtualFree(MEM_DECOMMIT) call in Purge() was intended as an optimization to more-quickly release DiscardableSharedMemory, without waiting for the other process (e.g. renderer) to release it - even though the call is failing (and was subsequently removed) the memory will be freed as soon as the other process releases it, or exits.

Sign in to add a comment