[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 Julien Nabet changed: What|Removed |Added CC||lio...@mamane.lu, ||serval2...@yahoo.fr --- Comment #9 from Julien Nabet --- Lionel: thought you might be interested in the Grongo2's analysis about this crash (above all at comment 3) -- You are receiving this mail because: You are the assignee for the bug.___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 Beluga changed: What|Removed |Added Status|UNCONFIRMED |NEEDINFO CC||todven...@suomi24.fi Ever confirmed|0 |1 --- Comment #6 from Beluga --- Could you try with these instructions: https://wiki.documentfoundation.org/How_to_get_a_backtrace_with_WinDbg Maybe try with the latest version 5.1.1 will be released this week. You can install the release candidate right now separately with this tool: https://wiki.documentfoundation.org/SI-GUI Set to NEEDINFO. Change back to UNCONFIRMED after further testing. -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 --- Comment #7 from gron...@yahoo.com --- Created attachment 123181 --> https://bugs.documentfoundation.org/attachment.cgi?id=123181&action=edit callstack of crash with 5.1.1.1 testing -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 gron...@yahoo.com changed: What|Removed |Added Status|NEEDINFO|UNCONFIRMED Ever confirmed|1 |0 --- Comment #8 from gron...@yahoo.com --- The bug is still present in 5.1.1.1, I've attached a callstack as requested. Error callstack and probable cause is unchanged from my first bug report. As you can see, in comment #3 is outlined a possibile fix, but I don't know enough of the LO codebase to know if the code knowingly ignores SQLGetData return values as a workaround for another buggy driver or not. Perhaps the best solution would be checking SQLGetData return values, but at least pcbValue should be cleared between calls. -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 Beluga changed: What|Removed |Added Keywords||haveBacktrace Severity|normal |major -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 --- Comment #1 from gron...@yahoo.com --- works also with MS odbc driver for oracle -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 raal changed: What|Removed |Added CC||r...@post.cz --- Comment #2 from raal --- Hello, where can I download Oracle ODBC driver? -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 --- Comment #3 from gron...@yahoo.com --- Is downloadable from oracle site (you need to register). It's in the "oracle client" package. I've done a bit more debugging, however, and the problem seems due to a combination of driver bug and incorrect LO handling of SQLGetData. Oracle ODBC driver < 11.2.0.1.0 has a bug (Bug 6801797), returning wrong length in SQLGetData last parameter (read as pcbValue by LO). This bug is amplificated by LO incorrect behavior. OTools::getStringValue tries to read a column with more than 2048 bytes by iterating over SQLGetData, but uses only pcbValue to detect when stopping, instead of looking also at the function return value. Further, it iterates even with fixed-length column, while ODBC allows iterating only over variable lenght columns (eg VARCHAR). Calling multiple times SQLGetData on a fixed lenght columns results in the driver doing nothing but returning SQL_NO_DATA for calls after the first. When opening the filter/sort dialog for the first time, LO apparently asks the driver about supported data types, thus getting CHAR data and triggering the bug. AFAIK the sequence is 1. first call to SQLGetData. Buggy oracle driver returns 2048 in pcbValue 2. LO thinks the column has more than 2048 bytes and tries to read another chunk - this time the call to SQLGetData returns SQL_NO_DATA and does nothing, but pcbValue still contains 2048 from previous result 3. LO ignores the return value and looking only at pcbValue copies another 2048 bytes (of garbage) in the result buffer, then tries to read another chunk repeat steps 2 and 3 until crash So a workaround would be resetting pcbValue to zero just before calling SQLGetData. Something like while ((pcbValue == SQL_NO_TOTAL ) || (pcbValue >= nMaxLen) ) { pcbValue = 0; <--- insert 0 here OTools::ThrowException(_pConnection, (*(T3SQLGetData)_pConnection->getOdbcFunction(ODBC3SQLGetData))( _aStatementHandle, (SQLUSMALLINT)columnIndex, SQL_C_CHAR, &aCharArray, nMaxLen, &pcbValue), A better fix should be check SQLGetData return value and act accordingly, but perhaps LO does things this way as a workaround to other driver bugs ? -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 --- Comment #4 from Alex Thurgood --- Is this a duplicate of bug 87370 ? -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
[Libreoffice-bugs] [Bug 90520] base crashes with oracle odbc driver when sorting/filtering
https://bugs.documentfoundation.org/show_bug.cgi?id=90520 --- Comment #5 from gron...@yahoo.com --- (In reply to Alex Thurgood from comment #4) > Is this a duplicate of bug 87370 ? No, I think not. Bug 87370 involves the jdbc driver instead of odbc and the callstack seems different, involving connectivity::ORowSetValue::operator= instead of connectivity::odbc::OTools::getStringValue -- You are receiving this mail because: You are the assignee for the bug. ___ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs