Opened 17 years ago
Closed 17 years ago
#7840 closed defect (worksforme)
TypeError: a float is required
| Reported by: | Owned by: | ||
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | ticket system | Version: | 0.11 |
| Severity: | blocker | Keywords: | |
| Cc: | marshall@… | Branch: | |
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description
To reproduce: visit https://svn.boost.org/trac/boost/ticket/476
Most recent call last:
* File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/web/main.py", line 423, in _dispatch_request
Code fragment:
418. try:
419. if not env and env_error:
420. raise HTTPInternalError(env_error)
421. try:
422. dispatcher = RequestDispatcher(env)
423. dispatcher.dispatch(req)
424. except RequestDone:
425. pass
426. resp = req._response or []
427.
428. except HTTPException, e:
Local variables:
Name Value
after [u' except RequestDone:', u' pass', u' resp = ...
before [u' try:', u' if not env and env_error:', u' raise ...
dispatcher <trac.web.main.RequestDispatcher object at 0xb7b1b96c>
e <exceptions.TypeError instance at 0xb7a8490c>
env <trac.env.Environment object at 0xb7c62aec>
env_error None
exc_info (<class exceptions.TypeError at 0xb7f932cc>, <exceptions.TypeError ...
filename '/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/web/main.p ...
frames [{'function': '_dispatch_request', 'lines_before': [u' try:', u' ...
has_admin True
line u' dispatcher.dispatch(req)'
lineno 422
message u'TypeError: a float is required'
req <Request "GET u'/ticket/476'">
resp []
tb <traceback object at 0xb7a8a414>
tb_hide None
traceback 'Traceback (most recent call last):\n File ...
* File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/web/main.py", line 197, in dispatch
Code fragment:
192. req.args.get('__FORM_TOKEN') != req.form_token:
193. raise HTTPBadRequest('Missing or invalid form token. '
194. 'Do you have cookies enabled?')
195.
196. # Process the request and render the template
197. resp = chosen_handler.process_request(req)
198. if resp:
199. if len(resp) == 2: # Clearsilver
200. chrome.populate_hdf(req)
201. template, content_type = \
202. self._post_process_request(req, *resp)
Local variables:
Name Value
chosen_handler <trac.ticket.web_ui.TicketModule object at 0xb7b1b9cc>
chrome <trac.web.chrome.Chrome object at 0xb7c80d6c>
err (<class exceptions.TypeError at 0xb7f932cc>, <exceptions.TypeError ...
handler <trac.ticket.web_ui.TicketModule object at 0xb7b1b9cc>
req <Request "GET u'/ticket/476'">
self <trac.web.main.RequestDispatcher object at 0xb7b1b96c>
* File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/web_ui.py", line 152, in process_request
Code fragment:
147.
148. def process_request(self, req):
149. if 'id' in req.args:
150. if req.path_info.startswith('/newticket'):
151. raise TracError(_("id can't be set for a new ticket request."))
152. return self._process_ticket_request(req)
153. return self._process_newticket_request(req)
154.
155. # ITemplateProvider methods
156.
157. def get_htdocs_dirs(self):
Local variables:
Name Value
req <Request "GET u'/ticket/476'">
self <trac.ticket.web_ui.TicketModule object at 0xb7b1b9cc>
* File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/web_ui.py", line 412, in _process_ticket_request
Code fragment:
407. version = int(version)
408. except ValueError:
409. version = None
410.
411. req.perm('ticket', id, version).require('TICKET_VIEW')
412. ticket = Ticket(self.env, id, version=version)
413. action = req.args.get('action', ('history' in req.args and 'history' or
414. 'view'))
415.
416. data = self._prepare_data(req, ticket)
417. data['comment'] = None
Local variables:
Name Value
id 476
req <Request "GET u'/ticket/476'">
self <trac.ticket.web_ui.TicketModule object at 0xb7b1b9cc>
version None
* File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/model.py", line 47, in __init__
Code fragment:
42. self.env = env
43. self.resource = Resource('ticket', tkt_id, version)
44. self.fields = TicketSystem(self.env).get_ticket_fields()
45. self.values = {}
46. if tkt_id is not None:
47. self._fetch_ticket(tkt_id, db)
48. else:
49. self._init_defaults(db)
50. self.id = self.time_created = self.time_changed = None
51. self._old = {}
52.
Local variables:
Name Value
db None
env <trac.env.Environment object at 0xb7c62aec>
self <trac.ticket.model.Ticket object at 0xb7b1be0c>
tkt_id 476
version None
* File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/model.py", line 105, in _fetch_ticket
Code fragment:
100.
101. self.id = tkt_id
102. for i in range(len(std_fields)):
103. self.values[std_fields[i]] = row[i] or ''
104. self.time_created = datetime.fromtimestamp(row[len(std_fields)], utc)
105. self.time_changed = datetime.fromtimestamp(row[len(std_fields) + 1], utc)
106.
107. # Fetch custom fields if available
108. custom_fields = [f['name'] for f in self.fields if f.get('custom')]
109. cursor.execute("SELECT name,value FROM ticket_custom WHERE ticket=%s",
110. (tkt_id,))
Local variables:
Name Value
cursor <trac.db.util.IterableCursor object at 0xb7a83194>
db <trac.db.pool.PooledConnection object at 0xb7a7eb4c>
f {'type': 'text', 'name': 'cc', 'label': 'Cc'}
i 12
row (u'Remove try/catch(...) in thread.cpp:thread_proxy()', u'mgruenke', ...
self <trac.ticket.model.Ticket object at 0xb7b1be0c>
std_fields ['summary', 'reporter', 'owner', 'description', 'type', 'status', ...
tkt_id 476
File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/web/main.py", line 423, in _dispatch_request
dispatcher.dispatch(req)
File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/web/main.py", line 197, in dispatch
resp = chosen_handler.process_request(req)
File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/web_ui.py", line 152, in process_request
return self._process_ticket_request(req)
File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/web_ui.py", line 412, in _process_ticket_request
ticket = Ticket(self.env, id, version=version)
File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/model.py", line 47, in __init__
self._fetch_ticket(tkt_id, db)
File "/opt/trac2/lib/python2.4/site-packages/Trac-0.11-py2.4.egg/trac/ticket/model.py", line 105, in _fetch_ticket
self.time_changed = datetime.fromtimestamp(row[len(std_fields) + 1], utc)
System Information:
User Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/2008111317 Ubuntu/8.04 (hardy) Firefox/3.0.4 Trac: 0.11 Python: 2.4.4 (#1, Jan 25 2007, 13:04:51) [GCC 3.4.6 20060404 (Red Hat 3.4.6-3)] setuptools: 0.6c8 SQLite: 3.5.4 pysqlite: 2.4.1 Genshi: 0.5 Subversion: 1.4.2 (r22196) jQuery: 1.2.3
Attachments (0)
Change History (5)
follow-up: 2 comment:1 by , 17 years ago
follow-up: 3 comment:2 by , 17 years ago
Replying to rblank:
Could you please provide the output of the following:
$ sqlite3 /my/trac/env/db/trac.db sqlite> .nullvalue NULL sqlite> select * from ticket where id=476;
We're working on getting you that information
I suspect the field
changetimehas a NULL value.
Based on this, I think it's probably something more interesting.
You can fix it with some SQL, but the really interesting thing to find out is how it came to be NULL in the first place.
comment:3 by , 17 years ago
Replying to anonymous:
Based on this, I think it's probably something more interesting.
Weird, I suppose it's only a coincidence that the two tickets generating this error are 476 and 764 (same digits). At least 746 doesn't have the same issue.
If changetime is not NULL, a debug print to the log, right before the problematic line, and showing the value and type of row[len(std_fields) + 1] would be very helpful. The value is unfortunately cut off in the display of the local variables. Something like:
self.log.debug('changetime=%r (%r)' % (row[len(std_fields) + 1], type(row[len(std_fields) + 1])))
comment:4 by , 17 years ago
| Cc: | added |
|---|
It's not just those bug numbers - I think it's most (if not all) of the (still open) bugs that were imported from Sourceforge.
Try # 700, 701, 702, 703, 603 for more examples.
comment:5 by , 17 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
Looks like they fixed those tickets…



Could you please provide the output of the following:
I suspect the field
changetimehas a NULL value. You can fix it with some SQL, but the really interesting thing to find out is how it came to be NULL in the first place.