[Zope-dev] TCP CLOSE_WAIT leaks
Dieter Maurer
dieter at handshake.de
Mon Apr 3 13:35:05 EDT 2006
Alan Milligan wrote at 2006-4-3 12:05 +1000:
> ...
>#36 0xa86a19b0 in ?? ()
>#37 0xa86a19ac in ?? ()
>#38 0xb7a07583 in ?? () from
>/opt/zope2.8/lib/python/Acquisition/_Acquisition.so
>#39 0xb7a83660 in ?? ()
>#40 0x00000000 in ?? ()
>
>
>I must confess that I'm quite puzzled that the main thread is also
>blocked - DeadlockDebugger's publish magic is not being invoked,
>concurring with strace.
Looks as if your Python were compiled without debugging symbols.
You will get much better tracebacks (easier to understand),
when you rebuild your Python with debugging symbols.
The following GDB macros can be used to help in the analysis.
"pfr" can be called in frames "eval_frame" to learn
about the Python frame.
def ps
x/s ({PyStringObject}$arg0)->ob_sval
end
def pfr
ps f->f_code->co_filename
ps f->f_code->co_name
#p f->f_lineno
lineno
end
define lineno
set $__co = f->f_code
set $__lasti = f->f_lasti
set $__sz = ((PyStringObject *)$__co->co_lnotab)->ob_size/2
set $__p = (unsigned char *)((PyStringObject *)$__co->co_lnotab)->ob_sval
set $__li = $__co->co_firstlineno
set $__ad = 0
while ($__sz-1 >= 0)
set $__sz = $__sz - 1
set $__ad = $__ad + *$__p
set $__p = $__p + 1
if ($__ad > $__lasti)
# break -- interpreted as "breakpoint"
set $__sz = -1
end
if ($__sz >= 0)
set $__li = $__li + *$__p
set $__p = $__p + 1
end
end
printf "%d\n", $__li
end
--
Dieter
More information about the Zope-Dev
mailing list