{5} Assigned, Active Tickets by Owner (Full Description) (13 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.2 | 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #852 | CherryPy always overrides user specified log levels | CherryPy code | 3.1 | defect | None | 09/02/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CherryPy unconditionally sets the log level for loggers used by cherrypy to DEBUG for error logs and INFO for access logs. This may override log levels configured by the user since this is done during startup.
From IRC: There is no reason why CherryPy should set these levels, especially not in production environments. The solution is to just leave the setting alone. Patch is attached. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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:
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. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #767 | Replace sessions.py with something good | sessions | enhancement | 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. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #815 | cherrypy doesn't handle case where URL path contains multiple slashes | wsgiserver | 3.1 | defect | None | 05/19/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
If you feed something like GET //status/Status/ HTTP/1.1 cherrypy will treat status as hostname and Status as path. As a result links like http://localhost//status/Status/ will produce 404. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #829 | @tools.response.headers doesn't appear to work with response.stream True | CherryPy code | 3.2 | defect | None | 06/24/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Using CherryPy 3.0.3. I have a method setup as such: @cherrypy.expose @cherrypy.tools.response_headers(headers = \ [('Content-Type','application/data')]) def my_method: ... yield "blah" ... my_method._cp_config = { 'response.stream': True } Whenever the method is executed by cherrypy's default dispatcher, the Content-Type is text/html, not application/data as I expected. However, if I changed the method setup to be like this: @cherrypy.expose def my_method: ... yield "blah" ... my_method._cp_config = { 'response.stream': True, 'tools.response_headers.on': True, 'tools.response_headers.headers': [('Content-Type', 'application/data')] } ...then it works. Ideas? |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #834 | lighty+fcgi+flup+cherrypy+sessions stored in files deadlocks | sessions | 3.0 | defect | None | 07/03/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Well, summary pretty much says everything. If I let the sessions be stored in RAM, everything functions normally. Here are some configs: lighttpd.conf: fastcgi.server = (
"/" => ( "main.py" => (
"bin-path" => "/home/apache/htdocs/python/main.py",
"socket" => "/tmp/script.sock",
"check-local" => "disable",
"disable-time" => 1,
"min-procs" => 1,
"max-procs" => 1,
),
),
)
snippet of /home/apache/htdocs/python/main.py: cherrypy.config.update('/home/apache/htdocs/python/cherrypy.conf')
app = cherrypy.tree.mount(site,'/','/home/apache/htdocs/python/cherrypy.conf')
cherrypy.config.update({'engine.autoreload_on':False})
cherrypy.engine.start(blocking=False)
try:
WSGIServer(app).run()
finally:
cherrypy.engine.stop()
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #841 | Make match module of Autoreloader overwriteable in subclasses | engine | 3.1 | enhancement | None | 07/22/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The Autoreloader class has the entire logic for reloading in its run() method. The patch moves the match check into a separate method. With the patch subclasses of Autoreloader can create a custom check method based on the name and module. Index: cherrypy/process/plugins.py
===================================================================
--- cherrypy/process/plugins.py (revision 9407)
+++ cherrypy/process/plugins.py (working copy)
@@ -432,11 +432,15 @@
Monitor.start(self)
start.priority = 70
+ def match_hook(self, name, module):
+ """Check if module should be considered for reloading."""
+ return re.match(self.match, name)
+
def run(self):
"""Reload the process if registered files have been modified."""
sysfiles = set()
for k, m in sys.modules.items():
- if re.match(self.match, k):
+ if self.match_hook(k, m):
if hasattr(m, '__loader__'):
if hasattr(m.__loader__, 'archive'):
k = m.__loader__.archive
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #860 | Robustness issue in exception catching | wsgiserver | 3.0 | defect | None | 09/24/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In wsgiserver.tick(), there is a selective exception catching clause: except socket.error, x: msg = x.args[1] if msg in ("Bad file descriptor", "Socket operation on non-socket"): # Our socket was closed. return if msg == "Resource temporarily unavailable": # Just try again. See http://www.cherrypy.org/ticket/479. return raise Problem arises when cherrypy is used with a locale other than C/english: error messages do not match. The error code (i.e. x.args[0]) should be used instead. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #861 | Missing socket.error exception catching | wsgiserver | 3.0 | defect | None | 09/24/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In wsgiserver.tick, some socket.error exceptions are caught and ignored ("Bad file descriptor", "Socket operation on non-socket", "Resource temporarily unavailable"). When using in the same application gtk and cherrypy, displaying a gtk dialog (such as a fileselector) while cause the server to crash with the "Interrupted system call" exception. Catching this exception solves the issue : --- /tmp/__init__.py 2008-09-24 18:13:55.000000000 +0200
+++ /var/lib/python-support/python2.5/cherrypy/wsgiserver/__init__.py 2008-09-24 17:40:30.000000000 +0200
@@ -913,6 +913,8 @@
if msg == "Resource temporarily unavailable":
# Just try again. See http://www.cherrypy.org/ticket/479.
return
+ if msg == "Interrupted system call":
+ return
raise
def _get_interrupt(self):
But considering also #860 (use error code rather than error message), the except clause should rather catch the error code 4. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
guest
| Ticket | Summary | Component | Milestone | Type | Severity | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #866 | Error *and* access log printed to stderr | CherryPy code | 3.1 | defect | None | 10/20/08 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In 3.1.0 final both, the error and the access log are printed to stderr. As already stated in #747, the access log should go to stdout and the error log to stderr (only then, both of them were printed to stdout). A workaround is cherrypy.log._set_screen_handler(cherrypy.log.access_log, False) cherrypy.log._set_screen_handler(cherrypy.log.access_log, True, stream=sys.stdout) but using underscore-methods is not very user-friendly. Furthermore, this behaviour was new in 3.1.0 final (if I remember correctly, beta 3 did it fine) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

