Third party script debugging on remote server ...

dbee daraburke78 at gmail.com
Wed Apr 18 20:52:04 EDT 2007


On Apr 19, 12:31 am, Graham Dumpleton <Graham.Dumple... at gmail.com>
wrote:
> After calling whatever it is that is writing to standard output/error,
> do:
>
>   import sys
>   sys.stdout.flush()
>   sys.stderr.flush()
>
> This should cause any buffered data to be immediately flushed to the
> main Apache error log, ie., don't look in any virtual host logs, check
> the main one.
>
> Graham
>
> On Apr 19, 9:15 am, dbee <daraburk... at gmail.com> wrote:
>
> > Right. I've got a really, really annoying/difficult/time consuming
> > problem with my development environment. I'm using django to build a
> > web app with paypal integration. My server is hosted remotely, and it
> > is receiving IPN (payment notifications) POST requests from Paypal.
> > I've checked on google and irc and this is my last shot at solving
> > this before I go mad ... :-(
>
> > The problem is that I can't debug those POST requests. Browser
> > debugging is out of the question obviously cause I'm not at the
> > computer, ( and it doesn't have X ).
>
> > I've tried cgitb but that doesn't seem to work at all ...
>
> > import cgitb; cgitb.enable(display=0,logdir='/tmp/',format='plain')
> > import cgitb; cgitb.enable()
>
> > ... neither of those commands have any effect. Although I do log other
> > parts of the script to /tmp, so I know that it's reachable...
>
> > mod_pythonabsolutely refuses to error_log to the apache error_log. I
> > have restarted it and it still won't flush whatever error buffer it
> > may ( or may not ) have stored.
>
> > I can re-constitute the requests in my browser using a GET request.
> > But frankly, that's kinda messy - there are lots of paypal IPN
> > combinations and I may have to integrate other applications with
> > paypal. So ideally speaking I'm looking for a proper debugging
> > environment for this kind of thing ...
>
> > Basically, I either wantmod_pythonto start error_logging properly,
> > or I want some type of working traceback environment to be available.
> > Help !
>
> > Server version: Apache/2.0.52
> > Server built:   Aug 13 2006 03:29:43
> > CentOS4.x: (RedHat Clone)mod_python.i386                          3.1.3-5.1
> > installed
>
> > # httpd.conf
>
> > <VirtualHost *:80 >
>
> >  ServerName mydomain.biz
> >  ServerAliaswww.mydomain.biz
> >  SetHandlermod_python
> >  PythonPath "['/home/babo/django'] + sys.path"
> >  PythonHandler django.core.handlers.modpython
> >  SetEnv DJANGO_SETTINGS_MODULE mydomain.settings
>
> >   <Location "/libs/media/">
> >    SetHandler None
> >    Options None
> >   </Location>
>
> > </VirtualHost>
>
> > My python.conf: ( seems pretty normal )
>
> > #
> > #Mod_pythonis a module that embeds the Python language interpreter
> > # within the server, allowing Apache handlers to be written in Python.
> > #
>
> > LoadModule python_module modules/mod_python.so
>
> > # Override type-map handler for /var/www/manual
> > <Directory "/var/www/manual/mod/mod_python">
> >         <Files *.html>
> >                 SetHandler default-handler
> >         </Files>
> > </Directory>
>
> > # This will cause files beneath /var/www/html with the extension .spam
> > # to be handled by the Python script /var/www/html/eggs.py
> > #
> > #<Directory /var/www/html>
> > #    AddHandler python-program .spam
> > #    PythonHandler eggs
> > #</Directory>
>
> > # This will cause all requests to the /python heirachy of your
> > # webserver to be handled by the python script /path/to/myhandler.py
> > #
> > #<Location /python>
> > #    SetHandler python-program
> > #    PythonPath "sys.path + ['/path/to']"
> > #    PythonHandler myhandler
> > #</Location>
>
> > # This will cause all requests to the /python heirachy of your
> > # webserver to be handled bymod_python'sPublisher handler
> > # (seehttp://localhost/manual/mod/mod_python/hand-pub.html)
> > #
> > # This will cause the output of all requests to files beneath
> > # /var/www/html with the extension .flt to be filtered through
> > # the Python script /var/www/html/filter.py
> > #
> > #<Directory /var/www/html>
> > #    PythonOutputFilter filter MYFILTER
> > #    AddOutputFilter MYFILTER .flt
> > #</Directory>

Hi Graeme,

Thanks for the suggestion. Unluckily for me, it doesn't seem to be
working though ...

I've tried it a number of different ways. I guess if I put the code
after an exception, then the code won't be called.
So I ran an error in the python script and then I called the
sys.stderr.flush() from the python shell. No luck though.

I called on it's own, still no luck,

Then I tried ...

    try:

        raise Exception('Please log this error')

    except:

        import sys

        sys.stderr.flush()
        sys.stdout.flush()

The error log still has no error info in it :-(  ....

Is this problem unique to me ?

This is startup message that gets posted to error_log on apache
restart ... (The IIS string is a mod_sec Security Signature)
[Wed Apr 18 19:58:25 2007] [notice] mod_python: (Re)importing module
'django.core.handlers.modpython'
[Wed Apr 18 19:58:32 2007] [notice] mod_python: (Re)importing module
'django.core.handlers.modpython'
DEBUG:  InitPostgres
DEBUG:  InitPostgres
[Wed Apr 18 19:59:56 2007] [notice] caught SIGTERM, shutting down
[Wed Apr 18 19:59:57 2007] [notice] suEXEC mechanism enabled
(wrapper: /usr/sbin/suexec)
[Wed Apr 18 19:59:57 2007] [notice] mod_security/1.9.4 configured -
Apache/2.0.52 (CentOS)
[Wed Apr 18 19:59:58 2007] [notice] Digest: generating secret for
digest authentication ...
[Wed Apr 18 19:59:58 2007] [notice] Digest: done
[Wed Apr 18 19:59:58 2007] [notice] LDAP: Built with OpenLDAP LDAP SDK
[Wed Apr 18 19:59:58 2007] [notice] LDAP: SSL support unavailable
[Wed Apr 18 19:59:58 2007] [notice] mod_python: Creating 4 session
mutexes based on 256 max processes and 0 max threads.
[Wed Apr 18 19:59:58 2007] [notice] Microsoft-IIS/5.0 configured --
resuming normal operations

There are no python debug messages ...

Also, I've reinstalled mod_python, but it makes no difference. And put
this into my VirtualHost, just in case ...

 PythonDebug On

Is there any answer for my problem ?




More information about the Python-list mailing list