Hi,

I get a crash in lxml's test suite on 64bit Linux, right with the first
test. I couldn't investigate it in depth so far, but at least I found that
it crashes in line 606 of obmalloc.c, which reads as follows:

    583    block *bp;
    [...]
    604         bp = pool->freeblock;
    605         assert(bp != NULL);
    606         if ((pool->freeblock = *(block **)bp) != NULL) {

The cast looks a bit smelly to me. Could someone who knows that code please
take a look to see if it makes any sense? This kind of code tends to hint
at potential aliasing problems to me etc. OTOH, "bp" holds the value 0xc
here when it crashes, so there's clearly something going wrong.

Here is the stack trace I get:

#0  PyObject_Malloc (nbytes=16) at .../pypy/translator/c/src/obmalloc.c:606
#1  0x0000000000eeb938 in
pypy_g__ll_malloc_varsize_no_length_zero__Signed_Signed
(l_length_1494=<value optimized out>, l_v1845914=<value optimized out>,
l_itemsize_9=<value optimized out>)
    at rpython_memory_gctransform_transform.c:249
#2  0x0000000000cad374 in pypy_g_BaseCpyTypedescr_allocate
(l_self_67=0x1aafeb8, l_w_type_11=0x1702040, l_itemcount_7=0) at
module_cpyext_pyobject.c:3190
#3  0x0000000000cadc92 in pypy_g_create_ref (l_w_obj_2087=0x7f0d25d49ac0,
l_itemcount_1=<value optimized out>) at module_cpyext_pyobject.c:1275
#4  0x0000000000cace27 in pypy_g_make_ref (l_w_obj_2086=0x168de00) at
module_cpyext_pyobject.c:509
#5  0x0000000001040796 in PyWeakref_NewRef (l_v2078649=<value optimized
out>, l_v2078623=0x0) at module_cpyext_api_2.c:38330
#6  0x00007f0d2576df72 in __pyx_f_4lxml_5etree__registerProxy () from
.../lxml-3.0/src/lxml/etree.pypy-19.so
#7  0x00007f0d257a361f in __pyx_f_4lxml_5etree__elementFactory () from
.../lxml-3.0/src/lxml/etree.pypy-19.so
#8  0x00007f0d2578f2cf in __pyx_f_4lxml_5etree_9_Document_getroot () from
.../lxml-3.0/src/lxml/etree.pypy-19.so
#9  0x00007f0d257c2990 in __pyx_pf_4lxml_5etree_22fromstring () from
.../lxml-3.0/src/lxml/etree.pypy-19.so
#10 0x00007f0d257c2847 in __pyx_pw_4lxml_5etree_23fromstring () from
.../lxml-3.0/src/lxml/etree.pypy-19.so

Note that this isn't using the latest nightly PyPy from the buildbot
(58001) but I quickly tested it with that as well and it seems to crash at
the same place.

When I skip the first test, the test suite runs without crashes, so if
there isn't something obviously wrong in the code above, I'd see when I
find the time to figure out why this particular set of doctests (in
test_autolink.txt) crashes but the rest doesn't, even though the etree part
of the stack trace above should be the same in a pretty large part of the
test suite.

Stefan

_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to