Skip to content
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

HANG (any 64-bit app) debug build with no client #86

Closed
derekbruening opened this issue Nov 27, 2014 · 1 comment
Closed

HANG (any 64-bit app) debug build with no client #86

derekbruening opened this issue Nov 27, 2014 · 1 comment

Comments

@derekbruening
Copy link
Contributor

From [email protected] on March 18, 2009 15:10:57

I'm a little confused as to why I didn't see this before as I run builds
with no client all the time, but it seems to exist all the way back to at
least 9602 (1.2.0).

When I run (on FC10) debug build with no client we assert reading
/proc/maps and hang with a lock issue:

(gdb) bt

#0 0x00000000711a17fc in syscall_ready ()

from /work/dr/tot/exports/lib64/debug/libdynamorio.so

#1 0x00000000000044fc in ?? ()

#2 0x00000000711b8dc5 in get_thread_id () at
/work/dr/tot/opensource/core/linux/os.c:1199
#3 0x00000000710cb78f in deadlock_avoidance_lock (lock=0x7145dac0,
acquired=0, ownable=1)
at /work/dr/tot/opensource/core/utils.c:653

#4 0x00000000710cb98c in mutex_trylock (lock=0x27)

at /work/dr/tot/opensource/core/utils.c:903                           

#5 0x00000000711ba0c4 in mutex_wait_contended_lock (lock=0x7145dac0)

at /work/dr/tot/opensource/core/linux/os.c:5157                       

#6 0x00000000710cba63 in mutex_lock (lock=0x7145dac0)

at /work/dr/tot/opensource/core/utils.c:876                           

#7 0x00000000710ee6a8 in report_dynamorio_problem
(dcontext=0xffffffffffffffff,
dumpcore_flag=8, exception_addr=0x0, report_ebp=0x0,

fmt=0x711f1950 "Internal DynamoRIO Error: %s:%d %s\n(Error occurred @%d

frags)")
at /work/dr/tot/opensource/core/utils.c:1988

#8 0x00000000710c9eec in internal_error (

file=0x711f1850 "/work/dr/tot/opensource/core/utils.c", line=653,     

expr=0x711f21b8 "lock->owner != get_thread_id() && \"deadlock on

recursive mutex_lock"") at /work/dr/tot/opensource/core/utils.c:179

#9 0x00000000710cb7ab in deadlock_avoidance_lock (lock=0x7145b360,

acquired=<value optimized out>, ownable=1) at

/work/dr/tot/opensource/core/utils.c:653
#10 0x00000000710cb98c in mutex_trylock (lock=0x27)

at /work/dr/tot/opensource/core/utils.c:903                           

#11 0x00000000710cba20 in mutex_lock (lock=0x7145b360)

at /work/dr/tot/opensource/core/utils.c:845                           

#12 0x00000000711b846e in maps_iterator_start (iter=0x7fff1d3053a0,
may_alloc=0)
at /work/dr/tot/opensource/core/linux/os.c:4122

#13 0x00000000711b936d in get_memory_info_from_os (pc=0x7fff1d305000
"��\023�>",
base_pc=0x0, size=0x1, prot=0x711a17fc)

at /work/dr/tot/opensource/core/linux/os.c:5068                       

#14 0x00000000711bca33 in is_readable_without_exception_internal (

pc=<value optimized out>, size=<value optimized out>, query_os=1)     

at /work/dr/tot/opensource/core/linux/os.c:2257                       

#15 0x00000000711bca92 in is_readable_without_exception_query_os (

pc=0x27 \<Address 0x27 out of bounds>, size=0)                         

at /work/dr/tot/opensource/core/linux/os.c:2286                       

#16 0x00000000710ee89c in report_dynamorio_problem
(dcontext=0xffffffffffffffff,
dumpcore_flag=128, exception_addr=0x0, report_ebp=0x7fff1d3055d0
"�W0\035�\177",
---Type to continue, or q to quit---

fmt=<value optimized out>) at /work/dr/tot/opensource/core/utils.c:2021

#17 0x00000000711b96d0 in get_library_bounds (name=0x71227822
"libdynamorio.so",
start=0x7fff1d305810, end=0x7fff1d305808, fullpath=0x71472c20 "",
path_size=260)
at /work/dr/tot/opensource/core/linux/os.c:4367

#18 0x00000000711b9b3e in get_dynamo_library_bounds ()

at /work/dr/tot/opensource/core/linux/os.c:4475                       

#19 0x00000000711b9cdc in get_dynamorio_dll_end ()

at /work/dr/tot/opensource/core/linux/os.c:4535                       

#20 0x000000007111c922 in vmm_heap_init () at
/work/dr/tot/opensource/core/heap.c:1253
#21 0x000000007107b784 in dynamorio_app_init ()

at /work/dr/tot/opensource/core/dynamo.c:439

#22 0x0000000000179668 in _init () at
/work/dr/tot/opensource/core/linux/preload.c:144
#23 0x0000003ea3a0eaf0 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#24 0x0000003ea3a00b2a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#25 0x0000000000000001 in ?? ()
#26 0x00007fff1d3071a6 in ?? ()
#27 0x0000000000000000 in ?? ()

Original issue: http://code.google.com/p/dynamorio/issues/detail?id=86

@derekbruening
Copy link
Contributor Author

From [email protected] on March 18, 2009 13:23:41

this is an assert due to an erroneous check in get_library_bounds() that should be
checking for the non-HAVE_PROC_MAPS condition. fixed in r93 .

Status: Verified

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant