Edgewall Software
Modify

Opened 17 years ago

Closed 17 years ago

Last modified 12 years ago

#5393 closed defect (fixed)

KeyError: 'set_resolution'

Reported by: diego Owned by: Eli Carter
Priority: normal Milestone: 0.11
Component: general Version: devel
Severity: normal Keywords:
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description (last modified by Emmanuel Blot)

Oops… Trac detected an internal error:

KeyError: 'set_resolution'

How to Reproduce

While doing a POST operation on /ticket/203, Trac issued an internal error. (please provide additional details here) Request parameters:

{'__FORM_TOKEN': u'9bf76176ccf4c7af6e7f2cfb', 
'action': u'resolve', 
'cnum': u'2', 
'comment': u'Na verdade o procedimento estava sendo feito incorreto.', 
'field_cc': u'', 
'field_client': u'', 
'field_component': u'geral', 
'field_description': u'O help em transfer\xeancia n\xe3o tem P de processa', 
'field_keywords': u'', 
'field_milestone': u'1.0.16', 
'field_priority': u'major', 
'field_reporter': u'silvio', 
'field_summary': u'Help transfer\xeancia', 
'field_type': u'task', 
'id': u'203', 
'replyto': u'', 
'resolve_resolve_resolution': u'invalid', 
'ts': u'2007-04-25 18:31:01+00:00'
} 

User Agent was: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

System Information

Trac 0.11dev-r5541
Python 2.4.4 (#1, Jan 13 2007, 17:48:09)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)]
setuptools 0.6c5
pyPgSQL 2.5.1
Genshi 0.4
Subversion 1.4.2 (r22196)
jQuery: 1.1.2

Python Traceback

Traceback (most recent call last): 
File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/web/main.py", line 428, in dispatch_request dispatcher.dispatch(req) 
File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/web/main.py", line 216, in dispatch resp = chosen_handler.process_request(req) File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/web_ui.py", line 130, in process_request return self._process_ticket_request(req) 
File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/web_ui.py", line 403, in _process_ticket_request action) 
File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/web_ui.py", line 871, in get_ticket_changes selected_action) 
File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/default_workflow.py", line 258, in get_ticket_changes this_action['set_resolution'].strip()) KeyError: 'set_resolution' 

Python Traceback Most recent call last:

    * File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/web/main.py", line 428, in dispatch_request
      Code fragment:
       423. if not env and env_error:
       424. raise HTTPInternalError(env_error)
       425. try:
       426. try:
       427. dispatcher = RequestDispatcher(env)
       428. dispatcher.dispatch(req)
       429. except RequestDone:
       430. pass
       431. return req._response or []
       432. finally:
       433. if not run_once:
      Local variables:
      Name	Value
      after 	[' except RequestDone:', ' pass', ' ...
      before 	[' if not env and env_error:', ' raise ...
      dispatcher 	<trac.web.main.RequestDispatcher object at 0x413c620c>
      e 	<exceptions.KeyError instance at 0x415146ac>
      egg_cache 	'/srv/www/trac/cache'
      env 	<trac.env.Environment object at 0x40e5be8c>
      env_error 	None
      env_path 	'/srv/www/trac'
      environ 	{'AUTH_TYPE': 'Basic', 'HTTP_AUTHORIZATION': 'Basic ZGllZ286d2FybG9jaw==', ...
      exc_info 	(<class exceptions.KeyError at 0x40a0995c>, <exceptions.KeyError instance ...
      filename 	'/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/web/mai ...
      frames 	[{'function': 'dispatch_request', 'lines_before': [' if not env and ...
      has_admin 	True
      line 	' dispatcher.dispatch(req)'
      lineno 	427
      message 	u"KeyError: 'set_resolution'"
      options 	{'TracEnv': '/srv/www/trac'}
      req 	<Request "POST /ticket/203">
      run_once 	False
      script_url 	None
      start_response 	<bound method ModPythonGateway._start_response of ...
      tb 	<traceback object at 0x41523874>
      tb_hide 	None
      traceback 	'Traceback (most recent call last):\n File ...
    * File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/web/main.py", line 216, in dispatch
      Code fragment:
       211. 'Do you have cookies enabled?')
       212.  
       213. # Process the request and render the template
       214. try:
       215. try:
       216. resp = chosen_handler.process_request(req)
       217. if resp:
       218. if len(resp) == 2: # Clearsilver
       219. chrome.populate_hdf(req)
       220. template, content_type = \
       221. self._post_process_request(req, *resp)
      Local variables:
      Name	Value
      chosen_handler 	<trac.ticket.web_ui.TicketModule object at 0x413c62ac>
      chrome 	<trac.web.chrome.Chrome object at 0x41368e4c>
      ctype 	'application/x-www-form-urlencoded'
      err 	(<class exceptions.KeyError at 0x40a0995c>, <exceptions.KeyError instance ...
      handler 	<trac.ticket.web_ui.TicketModule object at 0x413c62ac>
      options 	{}
      req 	<Request "POST /ticket/203">
      self 	<trac.web.main.RequestDispatcher object at 0x413c620c>
    * File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/web_ui.py", line 130, in process_request
      Code fragment:
       125. req.args['id'] = match.group(1)
       126. return True
       127.  
       128. def process_request(self, req):
       129. if 'id' in req.args:
       130. return self._process_ticket_request(req)
       131. return self._process_newticket_request(req)
       132.  
       133. # ITemplateProvider methods
       134.  
       135. def get_htdocs_dirs(self):
      Local variables:
      Name	Value
      req 	<Request "POST /ticket/203">
      self 	<trac.ticket.web_ui.TicketModule object at 0x413c62ac>
    * File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/web_ui.py", line 403, in _process_ticket_request
      Code fragment:
       398. actions = TicketSystem(self.env).get_available_actions(req, ticket)
       399. if action not in actions:
       400. raise TracError('Invalid action "%s"' % action)
       401. # (this should never happen in normal situations)
       402. field_changes, problems = self.get_ticket_changes(req, ticket,
       403. action)
       404. if problems:
       405. valid = False
       406. for problem in problems:
       407. req.warning(problem)
       408. req.warning(tag(tag.p('Please review your configuration, '
      Local variables:
      Name	Value
      action 	u'resolve'
      actions 	['leave', 'resolve', 'reassign', 'accept']
      context 	<Context [root], ticket:203 <Request "POST /ticket/203"> ...
      data 	{'comment': None, 'ticket': <trac.ticket.model.Ticket object at ...
      id 	203
      req 	<Request "POST /ticket/203">
      self 	<trac.ticket.web_ui.TicketModule object at 0x413c62ac>
      ticket 	<trac.ticket.model.Ticket object at 0x415130ac>
      valid 	True
    * File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/web_ui.py", line 871, in get_ticket_changes
      Code fragment:
       866. problems = []
       867. for controller in self._get_action_controllers(req, ticket,
       868. selected_action):
       869. cname = controller.__class__.__name__
       870. action_changes = controller.get_ticket_changes(req, ticket,
       871. selected_action)
       872. for key in action_changes.keys():
       873. old = ticket[key]
       874. new = action_changes[key]
       875. # Check for conflicting changes between controllers
       876. if key in field_changes:
      Local variables:
      Name	Value
      cname 	'ConfigurableTicketWorkflow'
      controller 	<trac.ticket.default_workflow.ConfigurableTicketWorkflow object at ...
      field_changes 	{}
      problems 	[]
      req 	<Request "POST /ticket/203">
      selected_action 	u'resolve'
      self 	<trac.ticket.web_ui.TicketModule object at 0x413c62ac>
      ticket 	<trac.ticket.model.Ticket object at 0x415130ac>
    * File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r5541-py2.4.egg/trac/ticket/default_workflow.py", line 258, in get_ticket_changes
      Code fragment:
       253.  
       254. if operation == 'del_resolution':
       255. updated['resolution'] = ''
       256. elif operation == 'set_resolution':
       257. newresolution = req.args.get(action + '_resolve_resolution',
       258. this_action['set_resolution'].strip())
       259. updated['resolution'] = newresolution
       260.  
       261. # leave_status and hidden are just no-ops here, so we don't look
       262. # for them.
       263. return updated
      Local variables:
      Name	Value
      action 	u'resolve'
      operation 	'set_resolution'
      req 	<Request "POST /ticket/203">
      self 	<trac.ticket.default_workflow.ConfigurableTicketWorkflow object at ...
      status 	'closed'
      this_action 	{'operations': ['set_resolution'], 'name': 'resolve', 'default': 0, ...
      ticket 	<trac.ticket.model.Ticket object at 0x415130ac>
      updated 	{'status': 'closed'}

Attachments (0)

Change History (4)

comment:1 by Emmanuel Blot, 17 years ago

Description: modified (diff)

(Fixing description)

comment:2 by Christian Boos, 17 years ago

He, I just did the same, it seems that we have a problem with semi-automatic bug reports ;-)

comment:3 by Eli Carter, 17 years ago

Resolution: fixed
Status: newclosed

Oops, my mistake in [5541]. I inadvertantly assumed that myaction.set_resolution had been set. (And the same bug for .set_owner.)

Fixed in [5550].

Thank you very much for the bugreport!

comment:4 by Christian Boos, 12 years ago

Milestone: 0.11
Owner: changed from Jonas Borgström to Eli Carter

(fixing {36})

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Eli Carter.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Eli Carter to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.