Ticket #6348 (new defect)
Catch database exceptions in a backend neutral way
| Reported by: | jruigrok | Owned by: | cboos |
|---|---|---|---|
| Priority: | high | Milestone: | 0.11.3 |
| Component: | general | Version: | devel |
| Severity: | normal | Keywords: | db |
| Cc: |
Description
When you, within trac-admin, add a permission to a user that already has that permission you will receive a Python traceback.
Trac [/usr/local/trac-rangaku]> permission list User Action ------------------------------- asmodai MILESTONE_ADMIN asmodai PERMISSION_ADMIN asmodai TICKET_ADMIN asmodai TRAC_ADMIN
Trac [/usr/local/trac-rangaku]> permission add asmodai MILESTONE_ADMIN
Traceback (most recent call last):
File "/usr/local/bin/trac-admin", line 8, in <module>
load_entry_point('Trac==0.11dev-r6153', 'console_scripts', 'trac-admin')()
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/admin/console.py", line 1190, in run
admin.run()
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/admin/console.py", line 119, in run
self.cmdloop()
File "/usr/local/lib/python2.5/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/admin/console.py", line 102, in onecmd
rv = cmd.Cmd.onecmd(self, line) or 0
File "/usr/local/lib/python2.5/cmd.py", line 219, in onecmd
return func(arg)
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/admin/console.py", line 393, in do_permission
self._do_permission_add(user, action)
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/admin/console.py", line 429, in _do_permission_add
self._permsys.grant_permission(user, action)
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/perm.py", line 274, in grant_permission
self.store.grant_permission(username, action)
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/perm.py", line 204, in grant_permission
(username, action))
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/db/util.py", line 50, in execute
return self.cursor.execute(sql_escape_percent(sql), args)
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/db/sqlite_backend.py", line 58, in execute
args or [])
File "/usr/local/lib/python2.5/site-packages/Trac-0.11dev_r6153-py2.5.egg/trac/db/sqlite_backend.py", line 50, in _rollback_on_error
return function(self, *args, **kwargs)
pysqlite2.dbapi2.OperationalError: SQL logic error or missing database
Please note that the database does exist and initial permission assignments work as intended.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.


