-
Notifications
You must be signed in to change notification settings - Fork 566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ASSERT (ARM ChromeOS) in memcache_query_memory #1728
Comments
I can reproduce this assert, seem might be a Linux kernel bug. At start of the execution, part of the memory map: later, the [stack] label is removed: In the middle of execution, as we can see, some of the memory region is listed twice in the /proc/pid/maps file: And on assert, the duplicated memory region is gone. <all_memory_areas is missing region 0xbecde000-0xbed34000!> From DR log, I did not see any syscall to unmap that memory. |
Assert callstack:
|
Xref weird empty regions in the maps file we had to work around in the past: #599 |
The racy read/write of the /proc/pid/maps by user program and the kernel seems to be the cause of the problem. We need adjust our code to tolerant the inconsistency caused by racy access. |
The maps iterator already has some code to handle racy changes of the file underneath it. |
When running a telemetry benchmark program, roi.maps, in DynamoRIO debug mode on a ARM-based Chromebook with ChromeOS, an assertion error is triggered in the very beginning. The failed assertion is in Function memcache_query_memory(...) at $DYNAMORIO_HOME/core/unix/memcache.c, and the detailed description is:
The text was updated successfully, but these errors were encountered: