[lxml-dev] python crashes in xmlDictFree inside Zope
Eric Tiffany
etiffany at alum.mit.edu
Wed May 30 20:14:33 CEST 2007
Sorry for the delay in responding -- been on vacation in Italy. Responses
inline. I am quite mystified at this point.
On 5/21/07 2:21 AM, "Stefan Behnel" <stefan_ml at behnel.de> wrote:
> Hi,
>
> Eric Tiffany wrote:
>> I have been prototyping some XMLSchema parsing/validating using lxml
>> 1.3beta.
>>
>> Everthing works great from python 2.4.4 started from the command line, or
>> running from inside Eclipse.
>>
>> However, when I moved my code over to my Plone product, python crashes when
>> Zope is initializing the product. I am creating my XMLSchema object there.
>> [...]
>
> Is this the Python version?
For some reason, the python reports its version incorrectly in the
crashdump. It is actually 2.4.4.
>
> Is there any way to detect MacOS-X at the C level? In that case, we could try
> to disable thread concurrency support completely for this platform - in case
> that's the source of the segfault. You can try to see if this would fix the
> problem by passing the option "--without-threading" to setup.py when building
> lxml. Could you please try that with your current setup and report back to the
> list?
There are certainly ways to detect MacOS at compile-time, though I'm not
sure of the details. I get this from the shell:
$ uname -a
Darwin etmac.local 8.9.1 Darwin Kernel Version 8.9.1: Thu Feb 22 20:55:00
PST 2007; root:xnu-792.18.15~1/RELEASE_I386 i386 i386
I have attempted to build from SVN using --without-threading using
$ make clean
$ python setup.py build --without-threading
$ sudo python setup.py install
(interestingly, it makes an egg called
lxml-1.3beta-py2.4-macosx-10.3-i386.egg even though the OS version 10.4.9
not 10.3, but whatever).
Also, I see a problem with the self tests regarding
test_module_HTML_unicode, but I'll report that elsewhere.
>
> Another question: are you using a custom parser (i.e. passing a second
> argument to the parse() function) here or is it the default parser that
> crashes here?
It is the default parser. And it is still crashing inside Zope even with
the --without-threading. Here is my code:
schemaPath =
"/Applications/Plone-2.5.2/Instance/Products/xtend/xtend/schedules.xsd"
print >> sys.stderr, "Loading schema doc from ", schemaPath
schemaDoc = etree.parse(schemaPath) print >> sys.stderr, "creating XMLSchema
..." schemaTree = etree.XMLSchema(schemaDoc) print >> sys.stderr, "Trying
validation"
And here is the output (when running inside Zope):
Loading schema doc from
/Applications/Plone-2.5.2/Instance/Products/xtend/xtend/schedules.xsd
creating XMLSchema ...
Bus error
So it seems pretty clear that it is croaking while trying to do the
XMLSchema construction.
Inside a python shell, that code runs fine. In both environments (zope and
shell) I have
lxml.etree: (1, 3, -1, 43887)
libxml used: (2, 6, 28)
libxml compiled: (2, 6, 28)
libxslt used: (1, 1, 20)
libxslt compiled: (1, 1, 20)
Here is the thread backtrace for the thread that crashed:
Thread 1 Crashed:
0 <<00000000>> 0xffff07c7 __memcpy + 39 (cpu_capabilities.h:228)
1 libSystem.B.dylib 0x9000b569 __sfvwrite + 409
2 libSystem.B.dylib 0x9001063d __vfprintf + 19692
3 libSystem.B.dylib 0x90011428 vfprintf + 91
4 libxml2.2.dylib 0x91befd3b xmlGenericErrorDefaultFunc + 75
5 libxml2.2.dylib 0x0354bad1 xmlSchemaCheckFacet + 709
6 libxml2.2.dylib 0x0354c020 xmlSchemaFixupSimpleTypeStageTwo + 927
7 libxml2.2.dylib 0x0355175b xmlSchemaFixupComponents + 4054
8 libxml2.2.dylib 0x03552207 xmlSchemaParse + 290
9 etree.so 0x06464039 __pyx_f_5etree_9XMLSchema___init__ +
980 (etree.c:38191)
10 org.python.python 0x0025283e type_call + 166 (typeobject.c:435)
11 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
12 org.python.python 0x0027e397 PyEval_EvalFrame + 16838 (ceval.c:3776)
13 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
14 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
15 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
16 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
17 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
18 org.python.python 0x00214c90 instance_call + 90 (classobject.c:2087)
19 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
20 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
21 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
22 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
23 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
24 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
25 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
26 org.python.python 0x00214c90 instance_call + 90 (classobject.c:2087)
27 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
28 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
29 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
30 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
31 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
32 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
33 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
34 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
35 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
36 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
37 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
38 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
39 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
40 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
41 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
42 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
43 org.python.python 0x0027ebaa PyEval_EvalFrame + 18905 (ceval.c:3651)
44 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
45 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
46 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
47 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
48 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
49 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
50 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
51 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
52 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
53 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
54 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
55 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
56 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
57 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
58 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
59 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
60 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
61 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
62 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
63 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
64 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
65 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
66 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
67 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
68 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
69 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
70 _Acquisition.so 0x0151e9ac CallMethodO + 60 (_Acquisition.c:97)
71 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
72 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
73 org.python.python 0x002715a1 builtin_apply + 201 (bltinmodule.c:100)
74 org.python.python 0x0027faca PyEval_EvalFrame + 22777 (ceval.c:3568)
75 org.python.python 0x0027ebaa PyEval_EvalFrame + 18905 (ceval.c:3651)
76 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
77 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
78 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
79 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
80 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
81 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
82 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
83 org.python.python 0x0027e69c PyEval_EvalFrame + 17611 (ceval.c:3845)
84 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
85 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
86 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
87 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
88 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
89 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
90 _Acquisition.so 0x0151e9ac CallMethodO + 60 (_Acquisition.c:97)
91 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
92 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
93 org.python.python 0x002715a1 builtin_apply + 201 (bltinmodule.c:100)
94 org.python.python 0x0027faca PyEval_EvalFrame + 22777 (ceval.c:3568)
95 org.python.python 0x0027ebaa PyEval_EvalFrame + 18905 (ceval.c:3651)
96 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
97 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
98 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
99 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
100 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
101 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
102 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
103 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
104 _Acquisition.so 0x0151e9ac CallMethodO + 60 (_Acquisition.c:97)
105 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
106 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
107 org.python.python 0x002715a1 builtin_apply + 201 (bltinmodule.c:100)
108 org.python.python 0x0027faca PyEval_EvalFrame + 22777 (ceval.c:3568)
109 org.python.python 0x0027ebaa PyEval_EvalFrame + 18905 (ceval.c:3651)
110 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
111 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
112 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
113 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
114 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
115 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
116 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
117 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
118 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
119 org.python.python 0x0027e49f PyEval_EvalFrame + 17102 (ceval.c:3661)
120 org.python.python 0x00280665 PyEval_EvalCodeEx + 1774 (ceval.c:2741)
121 org.python.python 0x00228063 function_call + 320 (funcobject.c:548)
122 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
123 org.python.python 0x00215667 instancemethod_call + 401
(classobject.c:2532)
124 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
125 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
126 org.python.python 0x00217aaa PyInstance_New + 114
(classobject.c:588)
127 org.python.python 0x0020d87f PyObject_Call + 45 (abstract.c:1795)
128 org.python.python 0x0027944a PyEval_CallObjectWithKeywords + 112
(ceval.c:3435)
129 org.python.python 0x002b3126 t_bootstrap + 62 (threadmodule.c:434)
130 libSystem.B.dylib 0x90024987 _pthread_body + 84
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codespeak.net/pipermail/lxml-dev/attachments/20070530/9cdad7ad/attachment-0001.htm
More information about the lxml-dev
mailing list