https://bugs.documentfoundation.org/show_bug.cgi?id=157288
Julien Nabet <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Keywords|bibisectRequest | Assignee|[email protected] |[email protected] |desktop.org | CC| |[email protected] --- Comment #13 from Julien Nabet <[email protected]> --- My previous logs on gdb were wrong because I had a symbols pb, I had to add "add-auto-load-safe-path" instruction in ~/.gdbinit Anyway I debugged this part in ODriverDelegator::getDataDefinitionByConnection from connectivity/source/drivers/hsqldb/HDriver.cxx: 473 TWeakPairVector::iterator i = std::find_if(m_aConnections.begin(), m_aConnections.end(), 474 [&connection](const TWeakPairVector::value_type& rConnection) { 475 return rConnection.second.second.first.get() == connection.get(); }); see https://opengrok.libreoffice.org/xref/core/connectivity/source/drivers/hsqldb/HDriver.cxx?r=0193b284#473) when entering in the comparison part, LO enters include/com/sun/star/uno/Reference.hxx:424 421 // only the query to XInterface must return the same pointer if they belong to same objects 422 Reference< XInterface > x1( _pInterface, UNO_QUERY ); 423 Reference< XInterface > x2( pInterface, UNO_QUERY ); 424 return (x1._pInterface == x2._pInterface); on gdb I go this: (gdb) p x1 $1 = uno::Reference to (connectivity::hsqldb::OHsqlConnection *) 0x55ee6a6f9490 (gdb) p x2 $2 = uno::Reference to ((anonymous namespace)::ProxyRoot *) 0x55ee69fe6ed0 so finally got: (gdb) p (x1._pInterface == x2._pInterface) $3 = false with the patch https://gerrit.libreoffice.org/c/core/+/157178, I got: (gdb) p x1 $1 = uno::Reference to (connectivity::hsqldb::OHsqlConnection *) 0x55b51683b430 (gdb) p x2 $2 = uno::Reference to (connectivity::hsqldb::OHsqlConnection *) 0x55b51683b430 About the change in ProxyRoot::queryAggregation from stoc/source/proxy_factory/proxyfac.cxx, first called is: #0 (anonymous namespace)::ProxyRoot::queryAggregation(com::sun::star::uno::Type const&) (this=0x55b5181d7ea0, rType=invalid uno::Type) at stoc/source/proxy_factory/proxyfac.cxx:295 #1 0x00007ffb4412c0fc in non-virtual thunk to (anonymous namespace)::ProxyRoot::queryAggregation(com::sun::star::uno::Type const&) () at stoc/source/proxy_factory/proxyfac.cxx:345 #2 0x00007ffb4d5bd190 in connectivity::OConnectionWrapper::queryInterface(com::sun::star::uno::Type const&) (this=0x55b518621248, _rType=invalid uno::Type) at connectivity/source/commontools/ConnectionWrapper.cxx:142 #3 0x00007ffb22633d97 in connectivity::hsqldb::OHsqlConnection::queryInterface(com::sun::star::uno::Type const&) (this=0x55b5186211e0, _rType=invalid uno::Type) at connectivity/source/drivers/hsqldb/HConnection.cxx:103 #4 0x00007ffb22633e6c in non-virtual thunk to connectivity::hsqldb::OHsqlConnection::queryInterface(com::sun::star::uno::Type const&) () at /home/julien/lo/libreoffice/instdir/program/../program/libhsqldb.so #5 0x00007ffb22627e89 in com::sun::star::uno::BaseReference::iquery(com::sun::star::uno::XInterface*, com::sun::star::uno::Type const&) (pInterface=0x55b518621200, rType=invalid uno::Type) at include/com/sun/star/uno/Reference.hxx:59 #6 0x00007ffb2263da39 in com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection>::iquery(com::sun::star::uno::XInterface*) (pInterface=0x55b518621200) at include/com/sun/star/uno/Reference.hxx:74 #7 0x00007ffb2264b7bc in com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection>::set(com::sun::star::uno::BaseReference const&, com::sun::star::uno::UnoReference_Query) (this=0x7ffe0dda46b8, rRef=...) at include/com/sun/star/uno/Reference.hxx:285 #8 0x00007ffb226411b1 in connectivity::hsqldb::ODriverDelegator::connect(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x55b51691b2a0, url="sdbc:embedded:hsqldb", info=uno::Sequence of length 5 = {...}) at connectivity/source/drivers/hsqldb/HDriver.cxx:386 so during the connection but also several times after. -- You are receiving this mail because: You are the assignee for the bug.
