Modify

Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#5170 closed defect (invalid)

Bad field name causes trace back when editing field values

Reported by: olaf.meeuwissen@… Owned by: Odd Simon Simonsen
Priority: normal Component: CustomFieldAdminPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.11

Description

A TRAC_ADMIN on one of our local projects used the CustomFieldAdminPlugin to add a field with the name comment. After entering a comment editing of any text field (including Cc: and Keywords:) results in a trace back. Removing the custom field re-enables editing of text fields. Custom fields with other names work fine.

Are there other "bad" field names? If so, which ones? I've noticed that CustomFields.update_custom_field() does some validation already. Would it be possible to validate against these before deciding to add such custom fields?

FWIW, we're using 0.2 (r4016) of the plugin with Trac-0.11.1 under Python 2.5. I've skimmed the revision log up to r5253 but it does not seem that the above has been addressed.

Trace back:

Traceback (most recent call last):
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/main.py", line 423, in _dispatch_request
    dispatcher.dispatch(req)
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/main.py", line 197, in dispatch
    resp = chosen_handler.process_request(req)
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/ticket/web_ui.py", line 170, in process_request
    return self._process_ticket_request(req)
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/ticket/web_ui.py", line 494, in _process_ticket_request
    self._do_save(req, ticket, action)
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/ticket/web_ui.py", line 989, in _do_save
    cnum=internal_cnum):
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/ticket/model.py", line 270, in save_changes
    (self.id, when_ts, author, cnum, comment))
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/db/util.py", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/db/sqlite_backend.py", line 58, in execute
    args or [])
  File "/opt/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/db/sqlite_backend.py", line 50, in _rollback_on_error
    return function(self, *args, **kwargs)
IntegrityError: columns ticket, time, field are not unique

See also trac:ticket:6975 for something that may be related.

Attachments (0)

Change History (2)

comment:1 Changed 9 years ago by Odd Simon Simonsen

Resolution: invalid
Status: newclosed

Seeing that the plugin only writes to the trac.ini file (as if you had edited it manually), this isn't really a plugin issue. The problem is how Trac handles this particular name ('comment').

The problem is already reported, see trac:ticket:6975. And, it has just been fixed in trac:changeset:8167 so if you update to latest from 0.11 branch (or wait for 0.11.5) it should no longer be a problem.

Thanks for reporting.

comment:2 Changed 9 years ago by olaf.meeuwissen@…

Thanks. I guess I'll wait for 0.11.5 then and tell my users to not use comment for the time being.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Odd Simon Simonsen.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.