Roundup Tracker - Issues

Issue 2550655

classification
demo doesn't handle keywords
Type: Severity: urgent
Components: Versions: 1.4
process
Status: closed fixed
:
: richard : cmeerw, richard, tonimueller
Priority: :

Created on 2010-07-03 15:19 by tonimueller, last changed 2010-07-10 03:59 by richard.

Messages
msg4083 Author: [hidden] (tonimueller) Date: 2010-07-03 15:19
When running the demo, I cannot check out the keyword functionality:

$ python demo.py 
Trying to set up web server on port 8917 ... should be ok.
Server running - connect to:
    http://localhost:8917/demo/
1. Log in as "demo"/"demo" or "admin"/"admin".
2. Hit Control-C to stop the server.
3. Re-start the server by running "roundup-demo" again.
4. Re-initialise the server by running "roundup-demo nuke".

Demo tracker is set up to be accessed by localhost browser.  If you
run demo on a server host, please stop the demo, open file
"demo/config.ini" with your editor, change the host name in the "web"
option in section "[tracker]", save the file, then re-run the demo
program.


127.0.0.1 - - [03/Jul/2010 15:07:05] "GET /demo/ HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 15:07:05] "GET /demo/@@file/style.css
HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 17:07:06] "GET /favicon.ico HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 17:07:08] "GET /favicon.ico HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 15:07:14] "POST /demo/ HTTP/1.1" 302 -
127.0.0.1 - - [03/Jul/2010 15:07:14] "GET /demo/ HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 15:07:18] "GET /demo/keyword?@template=item
HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 15:07:22] "POST /demo/keyword HTTP/1.1" 500 -
127.0.0.1 - - [03/Jul/2010 15:07:55] "GET /demo/user HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 15:08:02] "GET /demo/keyword?@template=item
HTTP/1.1" 200 -
127.0.0.1 - - [03/Jul/2010 15:08:12] "POST /demo/keyword HTTP/1.1" 500 -


In the web interface, I see:

Traceback
 
 
TypeError: not indexable	Python 2.5.2
/usr/bin/python

A problem occurred while running a Python script. Here is the sequence
of function calls leading up to the error, with the most recent
(innermost) call first. The exception attributes are:

/usr/lib/python2.5/cgi.py in keys(self=FieldStorage('@action', None, 'new'))
  607         """Dictionary style keys() method."""
  608         if self.list is None:
  609             raise TypeError, "not indexable"
      global TypeError = undefined
  610         keys = []
  611         for item in self.list:

/usr/lib/python2.5/cgi.py in __len__(self=FieldStorage('@action', None,
'new'))
  631     def __len__(self):
  632         """Dictionary style len(x) support."""
  633         return len(self.keys())
      global len = undefined, self = FieldStorage('@action', None,
'new'), global keys = undefined
  634 
  635     def read_urlencoded(self):

/path/to/roundup/roundup-1.4.14/roundup/cgi/client.py in
check_anonymous_access(self=<roundup.cgi.client.Client instance at
0x13ca518>)
  743         if isinstance(action, list):
  744             raise SeriousError('broken form: multiple @action
values submitted')
  745         elif action:
      action = FieldStorage('@action', None, 'new')
  746             action = action.value.lower()
  747         if action in ('login', 'register'):

/path/to/roundup/roundup-1.4.14/roundup/cgi/client.py in
inner_main(self=<roundup.cgi.client.Client instance at 0x13ca518>)
  446                 # Roundup's real web interface (not a file being
served up)
  447                 # so do the Anonymous Web Acess check now
  448                 self.check_anonymous_access()
      self = <roundup.cgi.client.Client instance at 0x13ca518>, global
check_anonymous_access = undefined
  449 
  450                 # possibly handle a form submit action (may change
self.classname

 
Environment Variables
CONTENT_LENGTH	'647'
CONTENT_TYPE	'multipart/form-data;
boundary=---------------------------343544906364756819183345081'
HTTP_ACCEPT_LANGUAGE
'en-US,en;q=0.9,de-DE;q=0.9,de;q=0.8,zh-CN;q=0.7,zh;q=0.6,en-us;q=0.6,de-de;q=0.5,de-ch;q=0.4,sv;q=0.4,fr;q=0.3,ru;q=0.2,es;q=0.1,ja;q=0.1'
HTTP_AUTHORIZATION	None
HTTP_COOKIE
'roundup_session_Roundupissuetracker=MTI3ODE2OTYzNC41NjAuNjcyMDE0MjAyMDA0;
MOIN_SESSION=6bh40g9hubcfa91w7_761w6a_qx54s2x'
HTTP_HOST	'localhost:8917'
PATH_INFO	'keyword'
REQUEST_METHOD	'POST'
SCRIPT_NAME	''
SERVER_NAME	'debian'
SERVER_PORT	'8917'
TRACKER_NAME	'demo'
msg4084 Author: [hidden] (tonimueller) Date: 2010-07-03 16:25
This is a regression from 1.4.13, which handles keyword creation well in
the demo. So the bug exists only in 1.4.14.
msg4088 Author: [hidden] (tonimueller) Date: 2010-07-05 16:01
requires 'nuke' on every new run, should be able to guess a new port
on-the-fly instead
msg4089 Author: [hidden] (tonimueller) Date: 2010-07-06 15:53
Tried again, this time on a Debian/testing system:
$ python demo.py nuke
Trying to set up web server on port 8917 ... should be ok.
Server running - connect to:
    http://localhost:8917/demo/
1. Log in as "demo"/"demo" or "admin"/"admin".
2. Hit Control-C to stop the server.
3. Re-start the server by running "roundup-demo" again.
4. Re-initialise the server by running "roundup-demo nuke".

Demo tracker is set up to be accessed by localhost browser.  If you
run demo on a server host, please stop the demo, open file
"demo/config.ini" with your editor, change the host name in the "web"
option in section "[tracker]", save the file, then re-run the demo
program.


127.0.0.1 - - [06/Jul/2010 15:48:03] "GET /demo/ HTTP/1.1" 200 -
127.0.0.1 - - [06/Jul/2010 15:48:03] "GET /demo/@@file/style.css
HTTP/1.1" 200 -
127.0.0.1 - - [06/Jul/2010 15:48:15] "POST /demo/ HTTP/1.1" 302 -
127.0.0.1 - - [06/Jul/2010 15:48:15] "GET /demo/ HTTP/1.1" 200 -
127.0.0.1 - - [06/Jul/2010 15:48:18] "GET /demo/keyword?@template=item
HTTP/1.1" 200 -
127.0.0.1 - - [06/Jul/2010 15:48:25] "POST /demo/keyword HTTP/1.1" 500 -
$ python
Python 2.5.5 (r255:77872, Apr 21 2010, 08:44:16) 
[GCC 4.4.3] on linux2


With Python 2.6.5, it works ok.


Upp'ing the severity because this bug prevents users from upgrading to
this 1.4.14, and thus missing out on the security fixes.
msg4090 Author: [hidden] (cmeerw) Date: 2010-07-08 21:03
I am seeing the same issue with Python 2.5 here - I have locally fixed it 
by changing line 745 of client.py from

        elif action:

to

        elif action != '':
msg4091 Author: [hidden] (richard) Date: 2010-07-10 03:59
Cripes, there's a bunch of stuff broken for pre-2.6 Pythons. I've fixed them, added some 
missing test coverage and run the tests with 2.4, 2.5 and 2.6.
History
Date User Action Args
2010-07-10 03:59:29richardsetstatus: new -> closed
assignee: richard
resolution: fixed
messages: + msg4091
nosy: + richard
2010-07-08 21:03:44cmeerwsetnosy: + cmeerw
messages: + msg4090
2010-07-06 15:53:28tonimuellersetmessages: + msg4089
severity: normal -> urgent
2010-07-05 16:01:52tonimuellersetmessages: + msg4088
2010-07-03 16:25:46tonimuellersetmessages: + msg4084
2010-07-03 15:19:12tonimuellercreate