Hello list, I'm testing 3.2.6 version under FreeBSD 4.9. PythonConnectionHandler test fails and apache dies with sigfault. Tested on: Apache 2.0.50, Python 2.3 Apache 2.0.55, Python 2.4.2 Apache 2.0.55, Python 2.3 I've compiled debug versions of Apache and mod_python and was able to reproduce failure of PythonConnectionHandler test under gdb. So here is backtrace:
> #0 0x58 in ?? () > #1 0x2823e4af in conn_readline (self=0x82e7660, args=0x81c702c) at > connobject.c:193 > #2 0x2825b8b8 in PyCFunction_Call () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #3 0x2828181f in call_function () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #4 0x2827fb64 in eval_frame () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #5 0x282819b7 in fast_function () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #6 0x282818a1 in call_function () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #7 0x2827fb64 in eval_frame () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #8 0x282809dc in PyEval_EvalCodeEx () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #9 0x282b6562 in function_call () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #10 0x282489f0 in PyObject_Call () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #11 0x2824d9cf in instancemethod_call () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #12 0x282489f0 in PyObject_Call () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #13 0x28248bff in PyObject_CallMethod () > from /home/volodya/apache20/mod_python-3.2.6/src/mod_python.so > #14 0x2824521b in python_connection (con=0x8290128) at > mod_python.c:1292 > #15 0x28246022 in PythonConnectionHandler (con=0x8290128) at > mod_python.c:1940 > #16 0x8085fd0 in ap_run_process_connection (c=0x8290128) at > connection.c:43 > #17 0x8086298 in ap_process_connection (c=0x8290128, csd=0x8290050) at > connection.c:176 > #18 0x807b2ce in child_main (child_num_arg=0) at prefork.c:610 > #19 0x807b38c in make_child (s=0x80e5788, slot=0) at prefork.c:650 > #20 0x807b47e in startup_children (number_to_start=3) at prefork.c:722 > #21 0x807b76c in ap_mpm_run (_pconf=0x80e1018, plog=0x8119018, > s=0x80e5788) > at prefork.c:941 > #22 0x8081036 in main (argc=4, argv=0xbfbff6dc) at main.c:618 Segmentation fault is here (connobject.c): static PyObject * conn_readline(connobject *self, PyObject *args) { long len = 0; if (! PyArg_ParseTuple(args, "|l", &len)) return NULL; return _conn_read(self->conn, AP_MODE_GETLINE, len); ^^^^ For some reason self-pointer contains illegal value. gdb output: (gdb) p self $2 = (connobject *) 0x58 Next thing. I tried the following (all under gdb): 1) Setup breakpoint at _conn_read function 2) Run the server 3) Initiate new client connection 4) gdb breaks at _conn_read 5) wait for a second 6) disable breakpoint at _conn_read (to stop breaking on arrival of each line of client's http-traffic) 7) continue (gdb command to continue execution) This way everything works fine (no segfault, test passes). I've also tried mod_python 3.1.4 -- no segfaults, all tests were successfully passed. Do you have any ideas? P.S. Sorry for the flood.