diff -r 19ebe0b994d6 -r 9f91d09ee5fa server/session.py --- a/server/session.py Fri Oct 01 17:04:09 2010 +0200 +++ b/server/session.py Fri Oct 01 18:49:47 2010 +0200 @@ -31,7 +31,7 @@ from rql.nodes import ETYPE_PYOBJ_MAP, etype_from_pyobj from yams import BASE_TYPES -from cubicweb import Binary, UnknownEid, schema +from cubicweb import Binary, UnknownEid, QueryError, schema from cubicweb.req import RequestSessionBase from cubicweb.dbapi import ConnectionProperties from cubicweb.utils import make_uid, RepeatList @@ -726,7 +726,10 @@ self._touch() self.debug('commit session %s done (no db activity)', self.id) return - if self.commit_state: + cstate = self.commit_state + if cstate == 'uncommitable': + raise QueryError('transaction must be rollbacked') + if cstate is not None: return # on rollback, an operation should have the following state # information: