[server/session] add missing rollback when freeing a db connection
When we let go of a cnxset and give it back to the pool, we need to make
sure it's not in the middle of a transaction.
We got bitten by a migration where the connection used by admin's
repo.connect was not rolled back before attempting the migration,
causing a deadlock because it had a lock on a table. This could
potentially also be an issue for e.g. hooks or looping tasks that didn't
explicitly rollback before calling free_cnxset or moving out of a
ensure_cnx_set block.
<html>
<head>
<!-- dependencies -->
<script type="text/javascript" src="utils.js"></script>
<script type="text/javascript" src="../../data/jquery.js"></script>
<script src="../../data/cubicweb.python.js" type="text/javascript"></script>
<script src="../../data/cubicweb.js" type="text/javascript"></script>
<script src="../../data/cubicweb.compat.js" type="text/javascript"></script>
<!-- qunit files -->
<script type="text/javascript" src="../../../devtools/data/qunit.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="../../../devtools/data/qunit.css" />
<!-- test suite -->
<script src="cwmock.js" type="text/javascript"></script>
<script src="test_utils.js" type="text/javascript"></script>
</head>
<body>
<div id="main"> </div>
<h1 id="qunit-header">cw.utils functions tests</h1>
<h2 id="qunit-banner"></h2>
<ol id="qunit-tests">
</body>
</html>