jarrod roberson
jarrod.roberson at gmail.com
Fri May 6 11:59:47 EDT 2005
On 5/6/05, Graham Dumpleton <grahamd at dscpl.com.au> wrote: > > jarrod roberson wrote .. > > On 5/5/05, Graham Dumpleton <grahamd at dscpl.com.au> wrote: > > > Question to the original poster. Have you added sufficient debug into > > each > > > step of the internals of that call so as to know precisely when the > code > > > seems to block? > > > > > > that call basically walks a list filters out some items and builds > another > > list to return > > I have done alot of basic debugging and the problem is it just hangs > apache > > and I have to kill it. > > Thus it doesn't print anything out because it doesn't shut down > correctly. > > Is your debug using "print" or "apache.log_error()" from mod_python. it is apache.log_error() If the > latter, it should be logged to Apache log straight away and adding > sufficient > debugging should be able to identify place it stops if it reliably stops > in the > same place. Is there any evidence it stops at the same place? yep same place req.write() Does Apache > process go to idle, or does it look to be stuck in a tight loop and > hogging > all the CPU? seems that only that req hangs, I enabled the apache server-status mod and it seems that all the req threads go into a (W)ait mode when that call happens and never return :-( Depending on what platform you are using, does use of ktrace, > ptrace, strace or truss, indicate that Apache process is stuck within > certain > system calls? These tools should be able to pointed at the process using > its > pid. Tools on Mac OS X are good for this sort of debugging as can show > where > different threads are and whether they are waiting on locks etc. I am using OSX 10.4 so I will look into what it can do, I just got my PowerBook in March so that is still a learning curve. > Do you know that a separate thread can't call into Twisted > > > unless it uses appropriate mechanisms? > > > > > > I do now, what I don't know is what "appropriate mechanisms" is > specifically > > I don't use Twisted, but based on recent comp.lang.python post, there is a > call "callFromThread". Example on the new group was: > > import time > from twisted.internet import reactor > > def shutdown(): > > time.sleep(3) > print "stopping" > reactor.callFromThread(reactor .stop) > > reactor.callInThread(shutdown) > reactor.run() > > Don't know much more than that. > > Graham Awesome, thanks for the advice I will go and try all that stuff! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20050506/0c7a12cb/attachment-0001.html
|