Opened 8 years ago

Closed 8 years ago

Bad field name causes trace back when editing field values

Reported by: Owned by: olaf.meeuwissen@… Odd Simon Simonsen normal CustomFieldAdminPlugin normal 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.

comment:1 Changed 8 years ago by Odd Simon Simonsen

Resolution: → invalid new → closed

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 8 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