Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

{5} Assigned, Active Tickets by Owner (Full Description) (8 matches)

List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display.

dowski

Ticket Summary Component Milestone Type Severity Created
Description
#722 Handling bad POST retries from IE6/IE7 wsgiserver 3.0 enhancement None 08/29/07

See this KB article for the MS version of the story.

In a nutshell, if the connection is reset when IE is in the middle of a POST, it will retry the POST without confirmation, but without the message body. This causes the CP WSGI server to hand the request off to the CP WSGI application, which times out while trying to read the non-existent POST body.

Here is a diagram of the flow/state of the conversation:

 Client                          CherryPy Server
 sends POST req    --->     <--- Socket idle timeout (default 10 secs) (FIN)

 receives FIN      <---

 sends ACK         --->          
                            ---> Receives ACK, socket to FIN_WAIT_2

                            ---> Receives POST from above on closed socket

                            <--- sends RST
 Receives RST     <---

 (socket is closed)

 resends POST
 *headers only*    --->          
                            ---> Receives POST headers
                                 FieldStorage object times
                                 out attempting to read
                                 non-existant message body
                            <--- Sends 500 response


fumanchu

Ticket Summary Component Milestone Type Severity Created
Description
#571 Make CP static file performance comparable to Apache CherryPy code enhancement None 09/22/06

I can dream, can't I?


#645 A value of 0 for socket_port should cause CP to bind to an avaibale unused port wsgiserver 3.2 enhancement None 01/16/07

When socket_port is specified as 0, an exception is thrown as follows:

File
"/localhome/raghu/localwork/cherrypy/svn.cherrypy.org/trunk/cherrypy/_cpserver.py",
line 69, in quickstart
    self.start()
  File
"/localhome/raghu/localwork/cherrypy/svn.cherrypy.org/trunk/cherrypy/_cpserver.py",
line 95, in start
    self._start_http(httpserver)
  File
"/localhome/raghu/localwork/cherrypy/svn.cherrypy.org/trunk/cherrypy/_cpserver.py",
line 118, in _start_http
    self.wait(httpserver)
  File
"/localhome/raghu/localwork/cherrypy/svn.cherrypy.org/trunk/cherrypy/_cpserver.py",
line 159, in wait
    wait_for_occupied_port(*bind_addr)
  File
"/localhome/raghu/localwork/cherrypy/svn.cherrypy.org/trunk/cherrypy/_cpserver.py",
line 247, in wait_for_occupied_port
    raise IOError(msg)
IOError: Port 0 not bound on 'localhost'

I am using the latest code from the trunk. It appears to me that even though wsgiserver is properly passing 0 to socket.bind (and hence binding to an unused port), other parts of the code still use "configured" port which is 0.


#726 Support Zope/EvalException conventions in default traceback output CherryPy code enhancement None 09/04/07

As documented here:

http://pythonpaste.org/class-paste.exceptions.collector.ExceptionCollector.html

For example, Genshi makes extensive use of __traceback_hide__ to get rid of frames in tracebacks that are not helpful to a developer trying to fix an error in a template.


#733 404 instead of 500 on wrong number of arguments CherryPy code 3.2 defect None 09/20/07

Currently, calling a handler with the wrong number of arguments results in a 500 error. A 404 might be better. The following patch (against trunk) tries to do this:

Index: _cpdispatch.py
===================================================================
--- _cpdispatch.py	(revision 1716)
+++ _cpdispatch.py	(working copy)
@@ -21,7 +21,14 @@
         self.kwargs = kwargs
     
     def __call__(self):
-        return self.callable(*self.args, **self.kwargs)
+        try:
+            return self.callable(*self.args, **self.kwargs)
+        except TypeError, x:
+            import re
+            if re.match(r'%s\(\) takes .+ arguments? \(.+ given\)' %
+                        re.escape(self.callable.__name__), x.args[0]):
+                raise cherrypy.HTTPError(404)
+            raise
 
 
 class LateParamPageHandler(PageHandler):

#767 Replace sessions.py with something good sessions defect None 01/13/08

The session library in CP isn't very good: it's hard to extend, partly because IMO it tries to do too much. For example, it shouldn't try to allow both eager and lazy locking. It also does too much at the class level instead of the instance level; that is, instead of instantiating a Session object per request, it should just stick all that state into cherrypy.request--it would then be free to instantiate a FileSession? object per Application, rather than using class variables to manage config across requests.


#814 Custom error Functions dont work CherryPy code 3.1 defect None 05/14/08

Tryed to create a Function for Errorhandling as described in http://www.cherrypy.org/wiki/ErrorsAndExceptions -> Anticipated HTTP responses but i end up with "In addition, the custom error page failed: coercing to Unicode: need string or buffer, function found" Im using CherryPy 3.1.0beta3


lawouach

Ticket Summary Component Milestone Type Severity Created
Description
#749 digest auth does not work with POST and InternalRedirect CherryPy code defect None 11/05/07

if submitted a post request and start an InternalRedirect? -> digest auth will ask again for password and user is no longer able to log in:

reproduce-able with following code:

import cherrypy

class Root:
    @cherrypy.expose
    def index(self):
        return """<html>
<head></head>
<body>
  <a href="/sub">sub area</a>
    <form action="/sub" method="post">
        <input type="hidden" name="submitted" value="True" />
        <input type="submit" name="select" value="Select" />
    </form>
</body>
</html>
"""

    @cherrypy.expose
    def sub(self, select=None, submitted=None):
        #if submitted == "True":
        raise cherrypy.InternalRedirect("/sub2")
        return "This is a sub1 area"

    @cherrypy.expose
    def sub2(self, select=None):
        return "This is a sub2 area"

    
if __name__ == '__main__':
    def get_users():
        return {'test': 'test'}
    
    conf = {'/': {'tools.digest_auth.on': True,
                       'tools.digest_auth.realm': 'Some site',
                       'tools.digest_auth.users': get_users}}
    root = Root()
    cherrypy.quickstart(root, '/', config=conf)

just press select on index page... GET seems to be working fine tested with 3.0.1 and 3.0.2 and python 2.4 on openbsd


Note: See TracReports for help on using and creating reports.

Hosted by WebFaction

Log in as guest/cpguest to create tickets