DynamoRIO / DynamoRIO/drmemory

ASSERT (python.exe ui_tests) !TEST(MALLOC_VALID, old_e->flags)

Open
#481 0 comments 0 reactions 0 assignees View on GitHub
Bug-Assert Migrated OpSys-Windows Priority-Medium
Dominant language
C
Stars
2.7k
Forks
290
PR merge metrics
No merged PRs in 30d

Description

_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on June 28, 2011 16:27:42_

after handling the two instances of the !is_in_heap_region assert in issue #480, python.exe launched by ui_tests for the
WorkerFileSystemTest.FLAKY_ResolveURLHttpTests test hits this assert:

heap walk:
heap 1 0x008b1708-0x008b1710-0x008b1790 0 0x008b0598,0x008c0000 80 80 0
heap 1 0x008b1790-0x008b179c-0x008b19b0 0 0x008b0598,0x008c0000 214 214 0

Adding unknown heap region 0x008c0000-0x18cc0000
adding heap region 0x008c0000-0x18cc0000 arena

later uxtheme.dll calls msvcrt!malloc which calls RtlAllocateHeap:
malloc-post 0x008b1790-0x008b1810 = 0x80 (really 0x008b1790-0x008b19a4 0x214)
ASSERT FAILURE (thread 4432): ..\src\common\alloc.c:1891: !TEST(MALLOC_VALID, old_e->flags) (internal error in malloc tracking)

this is in regular Heap, not cygwin heap. this pre-existing entry is given out later. ?!?

rangegrep doesn't find anything: no free.

this happens after:
:::Dr.Memory::: log dir is E:\src\drmemory\git\build_drmemory/logs/DrMemory-python.exe.3100.000
1074 [main] python 3100 tty_list::allocate: No tty allocated

Traceback (most recent call last):
File "E:\src\chromium\src\third_party\WebKit\Tools\Scripts\new-run-webkit-httpd", line 49, in
import port
ImportError: No module named port

re-running with -ignore_asserts we see more issues:
% grep ASSERT `ls -1td logs/DrMemory-python* | head -1`/g*
ASSERT FAILURE (thread 4372): ..\src\common\alloc.c:1891: !TEST(MALLOC_VALID, old_e->flags) (internal error in malloc tracking)checking leaks via reachability analysis
ASSERT FAILURE (thread 4372): ..\src\drmemory\leak.c:948: node == NULL (mallocs should not overlap)ASSERT FAILURE (thread 4372): ..\src\drmemory\leak.c:948: node == NULL (mallocs should not overlap)
ASSERT FAILURE (thread 4372): ..\src\drmemory\leak.c:920: node != NULL (must be in rbtree)ASSERT FAILURE (thread 4372): ..\src\common\redblack.c:86: node != NULL (invalid param)

ugh -- is this cygwin-specific craziness? but the first assert at least is in a win32 Heap. xref issue #197.

_Original issue: http://code.google.com/p/drmemory/issues/detail?id=481_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.