Opened 16 years ago
Closed 16 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 , 16 years ago
follow-up: 3 comment:2 by , 16 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
changetime
has 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 , 16 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 , 16 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 , 16 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
changetime
has 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.