<html>
<head>
<base href="https://bugs.documentfoundation.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Firebird: app must be forced to end after any use relation designer window - add table function causes immediate hang"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=122129#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Firebird: app must be forced to end after any use relation designer window - add table function causes immediate hang"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=122129">bug 122129</a>
from <span class="vcard"><a class="email" href="mailto:btomi96@gmail.com" title="Tamas Bunth <btomi96@gmail.com>"> <span class="fn">Tamas Bunth</span></a>
</span></b>
<pre>Hi,
These are my observations:
- The bug is not always reproducible. It happens after around half of my
attempts for me.
- LibreOffice hangs after multiple concurrent calls of isc_dsql_prepare. The
problem is that Firebird lands in a deadlock.
- Those calls are initiated by separate threads started at
RelationLoader::run() [1]
- The threads use the very same connection, but separate statements.
According to this [2] and this [3] Firebird should be thread-safe in a manner
that multiple threads are allowed, if they are working on the same connection
object.
That means that it might be a bug of Firebird, and not ours. Although it would
be good to get rid of the problem. A workaround could be not to allow multiple
calls of OStatementCommonBase::prepareAndDescribeStatement related to the same
connection object.
[1] dbaccess/source/ui/relationdesign/RelationController.cxx
[2] <a href="https://firebirdsql.org/rlsnotesh/rnfb25-engine.html">https://firebirdsql.org/rlsnotesh/rnfb25-engine.html</a>
[3]
<a href="https://www.firebirdsql.org/file/documentation/reference_manuals/driver_manuals/odbc/html/fbodbc205-threading.html">https://www.firebirdsql.org/file/documentation/reference_manuals/driver_manuals/odbc/html/fbodbc205-threading.html</a></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>