[ http://issues.apache.org/jira/browse/MODPYTHON-102?page=all ]
     
Graham Dumpleton resolved MODPYTHON-102:
----------------------------------------

    Resolution: Fixed

> Bus error with connection handler on secondary port.
> ----------------------------------------------------
>
>          Key: MODPYTHON-102
>          URL: http://issues.apache.org/jira/browse/MODPYTHON-102
>      Project: mod_python
>         Type: Bug
>   Components: core
>     Versions: 3.1.4
>  Environment: Mas OS X 10.3 (Panther)
>     Reporter: Graham Dumpleton
>      Fix For: 3.2.7

>
> Logging this one for posterity as hardly likely that anyone would use 
> connection handlers with mod_python for anything meaningful.
> Basic problem is that use of connection handler on secondary listener port is 
> resulting in a bus error deep in Apache code when it tries to read data from 
> the connection. The problem initially only seems to be present on Mac OS X 
> 10.3. The problem could not be duplicated on Linux. On Mac OS X the problem 
> occurred with both Apache 2.0.51 and 2.0.55 in both prefork and worker MPM 
> modes.
> The connection handler code that was being used was:
>   from mod_python import apache
>   def connectionhandler(conn):
>     apache.log_error("connectionhandler")
>     try:
>       while 1:
>         #conn.write(conn.readline())
>         conn.write(conn.read())
>     except IOError:
>       pass
>     return apache.OK
> If this is enabled for the default listener port for Apache, ie., simply add 
> in main Apache config:
>   PythonPath '["/Users/grahamd/Sites/add_handler"]+sys.path'
>   PythonConnectionHandler example::connectionhandler
> The connection handler works and is equivalent to mod_echo.
> If however the connection handler is run on a secondary port, a bus error 
> occurs when read() or readline() is called by the connection handler. Ie.,
>   Listen 8081
>   PythonPath '["/Users/grahamd/Sites/add_handler"]+sys.path'
>   <VirtualHost *:8081>
>   PythonConnectionHandler example::connectionhandler
>   </VirtualHost>
> Output from gdb is below. Note that if the connection handler simply returns 
> apache.DECLINED, everything is okay and Apache will serve up pages fine, only 
> when doing read of data from connection handler does it decide to crash.
> (gdb) cont
> Continuing.
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> [Switching to process 2342 thread 0xc03]
> 0x00000058 in ?? ()
> (gdb) where
> #0  0x00000058 in ?? ()
> Cannot access memory at address 0x58
> Cannot access memory at address 0x58
> #1  0x006068f8 in _conn_read (c=0x1933014, mode=AP_MODE_READBYTES, len=0) at 
> connobject.c:117
> #2  0x00606b04 in conn_read (self=0x471da0, args=0xf0101140) at 
> connobject.c:177
> #3  0x95fa94a8 in PyEval_GetFuncDesc ()
> #4  0x95fa6c64 in PyEval_EvalCode ()
> #5  0x95fa9728 in PyEval_GetFuncDesc ()
> #6  0x95fa9580 in PyEval_GetFuncDesc ()
> #7  0x95fa6c64 in PyEval_EvalCode ()
> #8  0x95fa9728 in PyEval_GetFuncDesc ()
> #9  0x95fa9580 in PyEval_GetFuncDesc ()
> #10 0x95fa6c64 in PyEval_EvalCode ()
> #11 0x95fa7e30 in PyEval_EvalCodeEx ()
> #12 0x95fa97dc in PyEval_GetFuncDesc ()
> #13 0x95fa9580 in PyEval_GetFuncDesc ()
> #14 0x95fa6c64 in PyEval_EvalCode ()
> #15 0x95fa7e30 in PyEval_EvalCodeEx ()
> #16 0x95f5f354 in PyFunction_SetClosure ()
> #17 0x95f4a8d0 in PyObject_Call ()
> #18 0x95f529e8 in PyMethod_New ()
> #19 0x95f4a8d0 in PyObject_Call ()
> #20 0x95f4ab7c in PyObject_CallMethod ()
> #21 0x0060eab0 in python_connection (con=0x192c540) at mod_python.c:1313
> #22 0x0003fce4 in ap_run_process_connection (c=0x192c540) at connection.c:42
> #23 0x0002395c in process_socket (p=0x186e598, sock=0x507f20, 
> my_child_num=-267382460,
> my_thread_num=0, bucket_alloc=0x192c540) at worker.c:520
> #24 0x000240bc in worker_thread (thd=0x460e30, dummy=0xf0101140) at 
> worker.c:834
> #25 0x9499d990 in _pthread_body ()
> (gdb) 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to