Summary: | Firebird: Enabling connection pooling for firebird:sdbc driver crashes Libo when creating connection to data engine | ||
---|---|---|---|
Product: | LibreOffice | Reporter: | Drew Jensen <drewjensen.inbox> |
Component: | Base | Assignee: | Mike Kaganski <mikekaganski> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | btomi96, lionel, xiscofauli |
Priority: | medium | Keywords: | haveBacktrace |
Version: | 5.4.7.2 release | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | target:7.3.0 target:7.2.2 inReleaseNotes:7.3 | ||
Crash report or crash signature: | Regression By: | ||
Bug Depends on: | |||
Bug Blocks: | 51780, 133092 | ||
Attachments: |
crash dmp file from Libo 5.4.7.2
Crash dmp file from Libo 6.1Beta1 bt with debug symbols bt from pthread_mutex_lock failed bt Windows (windbg) |
Description
Drew Jensen
2018-05-28 04:45:10 UTC
Created attachment 142322 [details]
crash dmp file from Libo 5.4.7.2
Created attachment 142323 [details]
Crash dmp file from Libo 6.1Beta1
Created attachment 142359 [details]
bt with debug symbols
On pc Debian x86-64 with master sources updated today, I could reproduce this.
BTW, I noticed this on console: warn:legacy.osl:3659:3659:svtools/source/uno/genericunodialog.cxx:288: OGenericUnoDialog::OnDialogDying: where does this come from? warn:sal.osl.mutex:3659:3659:sal/osl/unx/mutex.cxx:100: pthread_mutex_lock failed: Invalid argument Created attachment 142360 [details]
bt from pthread_mutex_lock failed
Dear Drew Jensen, To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year. There have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present. If you have time, please do the following: Test to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/ If the bug is present, please leave a comment that includes the information from Help - About LibreOffice. If the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice. Please DO NOT Update the version field Reply via email (please reply directly on the bug tracker) Set the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not appropriate in this case) If you want to do more to help you can test to see if your issue is a REGRESSION. To do so: 1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from http://downloadarchive.documentfoundation.org/libreoffice/old/ 2. Test your bug 3. Leave a comment with your results. 4a. If the bug was present with 3.3 - set version to 'inherited from OOo'; 4b. If the bug was not present in 3.3 - add 'regression' to keyword Feel free to come ask questions or to say hello in our QA chat: https://kiwiirc.com/nextclient/irc.freenode.net/#libreoffice-qa Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-UntouchedBug Confirmed bug still present with Version: 6.3.3.2 Build ID: a64200df03143b798afd1ec74a12ab50359878ed Threads CPU : 8; OS : Mac OS X 10.14.6; UI Render : par défaut; VCL: osx; Locale : fr-FR (fr_FR.UTF-8); Langue IHM : fr-FR Calc: threaded Created attachment 156333 [details]
bt Windows (windbg)
On Win10 with master sources updated today, I could still reproduce this.
weakref + mutex, I can't help here => uncc myself. No assertion failure mentioned, removing from Assert meta bug. In "normal" case, the XConnection (that gets passed to FirebirdDriver::getDataDefinitionByConnection) is created in OPoolCollection::getConnectionWithInfo using a simple call to xDriver->connect. Given that xDriver is connectivity::firebird::FirebirdDriver, the resulting object is connectivity::firebird::Connection. In pooling case, OPoolCollection::getConnectionWithInfo takes another branch, and creates the XConnection using a call to pConnectionPool->getConnectionWithInfo, and that ends up in connectivity::OPooledConnection::getConnection, which wraps "m_xRealConnection" (which is the connectivity::firebird::Connection, also obtained from FirebirdDriver) into a connectivity::OConnectionWeakWrapper. So back in FirebirdDriver::getDataDefinitionByConnection, rConnection (which, as described, may be of different actual classes) is unconditionally cast to connectivity::firebird::Connection. Hence the crash. Mike Kaganski committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/ccc6c846eb7f6d334d0ab2e6b50c188c434caa19 tdf#117842: use XUnoTunnel to get wrapped connection reliably It will be available in 7.3.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. Mike Kaganski committed a patch related to this issue. It has been pushed to "libreoffice-7-2": https://git.libreoffice.org/core/commit/19ac6869e129bf03737087eb32198026f9663894 tdf#117842: use XUnoTunnel to get wrapped connection reliably It will be available in 7.2.2. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. |