[server] prevent returning closed cursor to the database pool
In since c8c6ad8 init_repository use repo.internal_cnx() instead of
repo.system_source.get_connection() so it use the pool and we should not close
cursors from the pool before returning it back. Otherwise we may have
"connection already closed" error.
This bug only trigger when connection-pool-size = 1. Since we are moving to use
a dynamic pooler we need to get this fixed.
This does not occur with sqlite since the connection wrapper instantiate new
cursor everytime, but this occur with other databases.
<%def name="render_object(obj)">
% if hasattr(obj, "__name__"):
${obj.__module__}.${obj.__name__}
% else:
${obj}
% endif
</%def>
<table class="table table-bordered table-striped">
<tr>
<th>Result</th>
<th>Decision</th>
</tr>
<tr></tr>
% for registry_decision in registry_decisions:
<tr>
<td colspan="2"><b>${repr(registry_decision["key"])} -> ${render_object(registry_decision["winner"])} ${source_code_url(registry_decision["winner"]) | n}</b></td>
</tr>
<tr>
<td>
<p>End score: ${registry_decision["end_score"]}</p>
<div class="highlight-inline">args: ${highlight(registry_decision["args"], "html") | n}</div>
<div>kwargs:
<ul>
% for key, value in registry_decision["kwargs"].items():
<li>${repr(key)}: ${repr(value)}</li>
% endfor
</ul>
</div>
</td>
<td>
<ul>
% for obj in registry_decision["all_objects"]:
<li>
${obj["score"]}: ${render_object(obj["object"])} ${source_code_url(obj["object"]) | n}
</li>
% endfor
</ul>
</td>
</tr>
% endfor
</table>
<style>
${generate_css() | n}
.highlight-inline {
margin: 0 0 10px; /* like <p> */
}
.highlight-inline > .highlight {
display: inline;
}
.highlight > pre {
word-break: unset;
border: none;
margin: 0;
padding: 0;
background-color: unset;
display: inline;
}
</style>