How do clients(web browser) close a python CGI program that is not responding?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Sullivan WxPyQtKinter

    #1

    How do clients(web browser) close a python CGI program that is not responding?

    Hi,there. Sometimes a python CGI script tries to output great
    quantities of HTML responce or in other cases, it just falls into a
    dead loop. How could my client close that CGI script running on the
    server? I tried to use the STOP button in the web browser button, but
    it does not work.

    In addition, how could I configure that if a CGI program do not finish
    its task in 20sec or so, it will be automatically terminated?

  • Ben Sizer

    #2
    Re: How do clients(web browser) close a python CGI program that is not responding?

    Sullivan WxPyQtKinter wrote:[color=blue]
    > Hi,there. Sometimes a python CGI script tries to output great
    > quantities of HTML responce or in other cases, it just falls into a
    > dead loop. How could my client close that CGI script running on the
    > server?[/color]

    Generally speaking, remote users don't have control over your local
    processes, and if there is some problem with that local process that
    causes it to loop indefinitely, the chance that it could react
    appropriately to the browser is slim anyway. So the answer is to fix
    the problem with the CGI program.
    [color=blue]
    > In addition, how could I configure that if a CGI program do not finish
    > its task in 20sec or so, it will be automatically terminated?[/color]

    I suppose you could run it in a background thread or process,
    terminating it after the allotted time has expired, but I suspect you'd
    be better off addressing whatever is causing the problem in the first
    place. What sort of CGI program is this?

    --
    Ben Sizer

    Comment

    • Jon Ribbens

      #3
      Re: How do clients(web browser) close a python CGI program that is not responding?

      In article <1143521853.097 142.57740@z34g2 000cwc.googlegr oups.com>, Sullivan WxPyQtKinter wrote:[color=blue]
      > Hi,there. Sometimes a python CGI script tries to output great
      > quantities of HTML responce or in other cases, it just falls into a
      > dead loop. How could my client close that CGI script running on the
      > server? I tried to use the STOP button in the web browser button, but
      > it does not work.[/color]

      It depends on what CGI framework you're using. If the user hits
      'stop', the client browser should close its connection and your web
      server should close the pipe to your CGI process. I'd expect you to
      get a SIGPIPE when next trying to output data.
      [color=blue]
      > In addition, how could I configure that if a CGI program do not finish
      > its task in 20sec or so, it will be automatically terminated?[/color]

      Do you mean a specific CGI, or all CGIs in general? If it's in general
      then you need to see if your web server can be configured to do that.
      If it's a specific CGI, check out signal.alarm() or
      resource.setrli mit(resource.RL IMIT_CPU, ...). Apache has a RLimitCPU
      directive, but be careful with it since it may well not do what you
      expect.

      Comment

      • Sullivan WxPyQtKinter

        #4
        Re: How do clients(web browser) close a python CGI program that is not responding?

        Actually my project is converting certain specially costomized XML
        file to HTML to display and edit. Sometimes the XML file is too big, or
        the client upload a very huge file for the server to process, which
        exceeds the processing ability of my server.(after all, it is a small
        server on my poor laptop....which use winXP and IIS......not
        professional, huh?)

        I configures IIS to terminate CGI program if it do not complete in 20
        sec. But it does not work....Perhaps I should go to a IIS or apache
        forum for answer.

        Thank you.

        Comment

        Working...