Since the gbuildification of mysqlc and mysqlcppconn, the connector extension fails to build with the following switch : --with-libmysql-path="pathtomysqlconnectorClibrary" This makes building of the connector extension impossible on OSX. Already reported on developer mailing list on January 31st, 2013. FWIW, here's the error message I get when building : [build CPY] mysql-connector-ooo/description.xml cp: /Users/Shared/mysql-connector-c-6.0.2-osx10.5-x86-32bit//lib/ is a directory (not copied). make[1]: *** [/Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/ExtensionTarget/mysql-connector-ooo/root] Error 1 using the following switches : ./autogen.sh --with-max-jobs=4 --with-num-cpus=2 --disable-ccache --with-macosx-sdk=10.6 --enable-epm --with-epm=internal --disable-online-update --without-doxygen --with-system-openldap --with-system-openssl --enable-extra-gallery --enable-extra-template --enable-extra-sample --enable-ext-diagram --enable-ext-oooblogger --enable-ext-google-docs --enable-ext-nlpsolver --enable-ext-watch-window --enable-ext-wiki-publisher --enable-ext-mysql-connector --with-libmysql-path="/Users/Shared/mysql-connector-c-6.0.2-osx10.5-x86-32bit/"
Adding Norbert, Tor, and Lionel to CC
David Tardon committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=74a920c59ff7a68f5d42b3b9188ef8aeff28eda1 fdo#60907 export libmysql file name' The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Still not fixed after pull, make clean : [build CXX] mysqlc/source/mysqlc_services.cxx i686-apple-darwin10-g++-4.2.1: libmysql.16.dylib": No such file or directory [build CXX] mysqlc/source/mysqlc_connection.cxx i686-apple-darwin10-g++-4.2.1: libmysql.16.dylib": No such file or directory <command-line>: warning: missing terminating " character <command-line>: warning: missing terminating " character In file included from /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/UnpackedTarball/mysqlcppconn/cppconn/connection.h:32, from /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/UnpackedTarball/mysqlcppconn/cppconn/driver.h:28, from /Users/Shared/Repos/LO/core/mysqlc/source/mysqlc_connection.hxx:39, from /Users/Shared/Repos/LO/core/mysqlc/source/mysqlc_driver.hxx:30, from /Users/Shared/Repos/LO/core/mysqlc/source/mysqlc_services.cxx:20: /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/UnpackedTarball/mysqlcppconn/cppconn/warning.h:62: warning: unused parameter ‘e’ In file included from /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/UnpackedTarball/mysqlcppconn/cppconn/connection.h:32, from /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/UnpackedTarball/mysqlcppconn/cppconn/driver.h:28, from /Users/Shared/Repos/LO/core/mysqlc/source/mysqlc_connection.hxx:39, from /Users/Shared/Repos/LO/core/mysqlc/source/mysqlc_driver.hxx:30, from /Users/Shared/Repos/LO/core/mysqlc/source/mysqlc_driver.cxx:26: /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/UnpackedTarball/mysqlcppconn/cppconn/warning.h:62: warning: unused parameter ‘e’ make[1]: *** [/Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/CxxObject/mysqlc/source/mysqlc_services.o] Error 1 make[1]: *** Deleting file `/Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/CxxObject/mysqlc/source/mysqlc_services.o' make[1]: *** Waiting for unfinished jobs.... make[1]: *** [/Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/CxxObject/mysqlc/source/mysqlc_driver.o] Error 1 make[1]: *** Deleting file `/Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/CxxObject/mysqlc/source/mysqlc_driver.o' Re-opening Alex
(In reply to comment #3) > Still not fixed after pull, make clean : > > [build CXX] mysqlc/source/mysqlc_services.cxx > i686-apple-darwin10-g++-4.2.1: libmysql.16.dylib": No such file or directory This looks like a different issue... In your build, in file config_host.mk, please show us the line: export LIBMYSQL=SOMETHING
(In reply to comment #4) > This looks like a different issue... In your build, in file config_host.mk, > please show us the line: > > export LIBMYSQL=SOMETHING OK, in config_host.mk : export LIBMYSQL=libmysql.dylib export LIBMYSQL_PATH=/USers/Shared/mysql-connector-c-6.0.2-osx10.5-x86-32bit/ Alex
I think I fixed it, but cannot test. Please try again with: commit e5444ae3e099e1279b9b685b623c6e50bb8efd3b Author: Lionel Elie Mamane <lionel@mamane.lu> AuthorDate: Sun Feb 24 18:29:01 2013 +0100 Commit: Lionel Elie Mamane <lionel@mamane.lu> CommitDate: Sun Feb 24 18:30:16 2013 +0100 fdo#60907 no space in front of MYSQL_LIB Change-Id: If477ae65eb93d8eb944c345853c13ca0d1826762
Lionel Elie Mamane committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=e5444ae3e099e1279b9b685b623c6e50bb8efd3b fdo#60907 no space in front of MYSQL_LIB The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
that did the trick, thanks ! Alex
We mark as VERIFIED once bug fix has been verified :) Glad that Lionel could help you out
Re-opening because although the connector file is built and can be installed, it still doesn't work : When testing the connection during set up of the ODB connection parameters, I get a "Connection could not be established error". This error goes away if I continue with the setup nonetheless, but when I try to display the list of tables by clicking on the Table icon, the login screen appears again. Entering the login data again, or confirming the data already in the dialog do nothing, just make the dialog disappear, but the connection to the db does not occur. So we're still stuck here. The size of the connector is all wrong too, which probably explains why it doesn't work. The newly built connector is only 1.2Mb in size, whereas previous working connectors were always around 4Mb. Trying to upload a copy of the connector here as an attachment. Alex
Created attachment 75703 [details] LO mysql connector for OSX build from 25/02/2013
Looking at the contents of the connector : Archive: /Volumes/Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/ExtensionTarget/mysql-connector-ooo.oxt Length Date Time Name -------- ---- ---- ---- 0 02-25-13 08:32 META-INF/ 1389 02-25-13 08:32 META-INF/manifest.xml 314 02-25-13 08:27 components.rdb 255 02-21-13 15:22 description-en-US.txt 1739 02-25-13 08:32 description.xml 838 02-21-13 15:25 images/extension_32.png 2540336 02-21-13 15:22 libmysql.dylib 696796 02-21-13 15:40 libmysqlcppconn.dylib 563072 02-25-13 08:11 mysqlc.uno.dylib 0 02-25-13 08:32 registration/ 436392 02-25-13 08:32 registration/LICENSE 3561 02-21-13 15:25 registry/data/org/openoffice/Office/DataAccess/Drivers.xcu -------- ------- 4244692 12 files
Now compare that to an earlier one that works : Archive: /Users/alex/Desktop/mysql-connector-ooo.oxt Length Date Time Name -------- ---- ---- ---- 0 01-14-13 16:44 META-INF/ 1395 01-14-13 16:44 META-INF/manifest.xml 255 01-14-13 16:43 description-en-US.txt 1739 01-14-13 16:44 description.xml 0 01-14-13 16:44 images/ 838 01-14-13 16:44 images/extension_32.png 2540336 01-14-13 16:44 libmysql.16.dylib 763996 01-14-13 16:44 libmysqlcppconn.dylib 568172 01-15-13 10:22 mysqlc.uno.dylib 0 01-14-13 16:43 registration/ 442492 01-14-13 16:43 registration/LICENSE 0 01-14-13 16:44 registry/ 0 01-14-13 16:44 registry/data/ 0 01-14-13 16:44 registry/data/org/ 0 01-14-13 16:44 registry/data/org/openoffice/ 0 01-14-13 16:44 registry/data/org/openoffice/Office/ 0 01-14-13 16:44 registry/data/org/openoffice/Office/DataAccess/ 3561 01-14-13 16:44 registry/data/org/openoffice/Office/DataAccess/Drivers.xcu -------- ------- 4322784 18 files
(In reply to comment #13) > Now compare that to an earlier one that works : > Correction : this could be the AOO connector, which doesn't want to install in LO 3.5.7 or 3.6.5, haven't tried in LO4 or LO-dev yet. Alex
(In reply to comment #12) > Looking at the contents of the connector : > 2540336 02-21-13 15:22 libmysql.dylib Please try to rename that file to libmysql.16.dylib, and also any mention of it in META-INF/manifest.xml Does it work then?
Lionel Elie Mamane committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=a42649c6743a54498375903b4357c4c0545fbab8 fdo#60907 Use *one* variable for the MySQL library file The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
I might have fixed it. Let me know.
Well, it "builds", but still doesn't work. It is still only 1.5Mb, which is too small. With LibreOfficeDev : Version 4.1.0.0.alpha0+ (Build ID: 9cae1dc5311c09168fbe1f04bea3d4ee33a04bb) it causes a crash, trace enclosed, when attempting a login, after clicking on the Tables icon. Alex
Created attachment 75906 [details] crash trace when attempting to connect to mysql using native connector built with dev build
Created attachment 75907 [details] copy of mysql connector extension for OSX built on 03/03/2013
(In reply to comment #18) > it causes a crash, trace enclosed, when attempting a login, after clicking > on the Tables icon. I repeat my request of comment 15: Please try to rename that file to libmysql.16.dylib. Does it work then? Also, it would be nice to see that uncaught exception's embedded error message. From your build log, please tell me what argument of "-DMYSQL_LIB=what" is passed to gcc during compilation of mysqlc. Enable LibreOffice debug tracing for the mysqlc module. You should get a line like: clientlib=SOMETHING in the trace. What is the "SOMETHING"?
(In reply to comment #21) > (In reply to comment #18) > > > it causes a crash, trace enclosed, when attempting a login, after clicking > > on the Tables icon. > > I repeat my request of comment 15: > > Please try to rename that file to libmysql.16.dylib. > > Does it work then? Am away from machine til Wednesday now so will have to wait. > > Also, it would be nice to see that uncaught exception's embedded error > message. > Will have à poke around. > From your build log, please tell me what argument of "-DMYSQL_LIB=what" is > passed to gcc during compilation of mysqlc. Will look that up too. > > Enable LibreOffice debug tracing for the mysqlc module. You should get a > line like: > > clientlib=SOMETHING > > in the trace. What is the "SOMETHING"? Will have à look. Alex
(In reply to comment #21) > I repeat my request of comment 15: > > Please try to rename that file to libmysql.16.dylib. > > Does it work then? So I took the following steps : 1) physically removed the previously installed connector extension in LibreOfficeDev. 2) extracted the files from the OXT, renamed libmysql.dylib to libmysql.16.dylib. 3) rezipped the files into an OXT archive. 4)Started LibreOfficeDev, dragged and dropped the connector extension to the running LO, and then installed it via the extensions manager GUI. 5) Opened my usual "direct mysql connection" configured ODB file. 6) No difference whatsoever. Still get a crash, the trace of which looks identical to the previous one posted here. Alex
(In reply to comment #21) Tracing via gdb with the connector containing the renamed libmysql.16.dylib : libc++abi.dylib: terminate called throwing an exception Program received signal SIGABRT, Aborted. 0x969d1a6a in __pthread_kill () (gdb) bt #0 0x969d1a6a in __pthread_kill () #1 0x9806dacf in pthread_kill () #2 0x980a44f8 in abort () #3 0x98f5a80c in abort_message () #4 0x98f58275 in default_terminate () #5 0x98f582b5 in safe_handler_caller () #6 0x98f5831d in std::terminate () #7 0x98f59412 in __cxa_throw () #8 0x193c7b15 in sql::mysql::MySQL_Driver::MySQL_Driver () #9 0x193c7cee in sql::mysql::get_driver_instance_by_name () #10 0x193c813b in sql::mysql::get_driver_instance () #11 0x1932aee5 in connectivity::mysqlc::MysqlCDriver::impl_initCppConn_lck_throw () #12 0x1932bf4a in connectivity::mysqlc::MysqlCDriver::connect () #13 0x19256bbe in connectivity::mysql::ODriverDelegator::connect () #14 0x1902d7b4 in connectivity::OPoolCollection::getConnectionWithInfo () #15 0x1a061ad1 in dbaccess::ODatabaseSource::buildLowLevelConnection () #16 0x1a062a18 in dbaccess::ODatabaseSource::buildIsolatedConnection () #17 0x1a063290 in dbaccess::OSharedConnectionManager::getConnection () #18 0x1a063ca9 in dbaccess::ODatabaseSource::getConnection () #19 0x1a064270 in dbaccess::ODatabaseSource::connectWithCompletion () #20 0x1a064bd8 in dbaccess::ODatabaseSource::connectWithCompletion () #21 0x1ec8d2af in dbaui::ODatasourceConnector::connect () #22 0x1ec8e100 in dbaui::ODatasourceConnector::connect () #23 0x1eb9c4b5 in dbaui::OGenericUnoController::connect () #24 0x1eb266f1 in dbaui::OApplicationController::ensureConnection () #25 0x1eb17cd4 in dbaui::OApplicationController::onContainerSelect () #26 0x1eb44c03 in dbaui::OApplicationSwapWindow::onContainerSelected () #27 0x1eb44d57 in dbaui::OApplicationSwapWindow::OnContainerSelectHdl () #28 0x00c29ee2 in SvtIconChoiceCtrl::ClickIcon () #29 0x00c21fa8 in SvxIconChoiceCtrl_Impl::SelectEntry () #30 0x00c22a4c in SvxIconChoiceCtrl_Impl::SetCursor () #31 0x00c24b15 in SvxIconChoiceCtrl_Impl::MouseButtonDown () #32 0x00c290f4 in SvtIconChoiceCtrl::MouseButtonDown () #33 0x01a38b41 in ImplHandleMouseEvent () #34 0x01a39e79 in ImplWindowFrameProc () #35 0x01a95a99 in -[SalFrameView sendMouseEventToFrame:button:eventtype:] () #36 0x01a92b01 in -[SalFrameView mouseDown:] () #37 0x99613a21 in -[NSWindow sendEvent:] () #38 0x9960ea0f in -[NSApplication sendEvent:] () #39 0x01a8676f in -[VCL_NSApplication sendEvent:] () #40 0x01a4b0e2 in AquaSalInstance::Yield () #41 0x01717e04 in Application::Yield () #42 0x0171926c in Application::Execute () #43 0x00071d38 in desktop::Desktop::Main () #44 0x0171f552 in ImplSVMain () #45 0x01a49f01 in AquaSalInstance::handleAppDefinedEvent () #46 0x01a8683b in -[VCL_NSApplication sendEvent:] () #47 0x9952872c in -[NSApplication run] () #48 0x994cb6f6 in NSApplicationMain () #49 0x01a4aa17 in ImplSVMainHook () #50 0x0171f611 in SVMain () #51 0x000a0005 in soffice_main () #52 0x00001f4e in main ()
This is what can be seen in the Apple trace with regard to libc++abi.dylib : 3 libc++abi.dylib 0x98f5a80c abort_message + 151 4 libc++abi.dylib 0x98f58275 default_terminate() + 34 5 libc++abi.dylib 0x98f582b5 safe_handler_caller(void (*)()) + 13 6 libc++abi.dylib 0x98f5831d std::terminate() + 23 7 libc++abi.dylib 0x98f59412 __cxa_throw + 110 How can I investigate that further ? Alex
(In reply to comment #25) > How can I investigate that further ? Do you use --without-system-mysqlcppconn or --with-system-mysqlcppconn? - Break on sql::mysql::MySQL_Driver::MySQL_Driver - Show me what argument it is called with (the value of clientLib). - Break on the exception catch there, show me the caught exception. - step through the execution and observe the problem: You should end up in mysqlcppconn/driver/nativeapi/mysql_client_api.cpp, function getCApiHandle with some reasonable name argument, that is "/path/to/libmysql.dylib/in/libreoffice/install/libmysql.dylib"
Created attachment 76027 [details] callstack at time of crash Attached callstack at time of crash
(In reply to comment #26) > (In reply to comment #25) > > > How can I investigate that further ? > > Do you use --without-system-mysqlcppconn or --with-system-mysqlcppconn? > I don't use the system mysqlcppconn because if I do, the build looks for headers that aren't present (e.g. interface.h and others), causing the build to fail. > - Break on sql::mysql::MySQL_Driver::MySQL_Driver Tried setting a breakpoint with sql::mysql::MySQL_Driver::MySQL_Driver, but it bombs before gdb seems to be able to set it. Perhaps I am not waiting long enough, but gdb only then reacts (registering the bomb out) when I proceed to validate the id/pwd combo. I'm looking into the rest of your suggestions, but am a complete newb when it comes to gdb. I am also rebuilding LO and the connector with a build.log, as I didn't have one for the previous build. Alex
From the build.log : running ./configure with '--with-max-jobs=4' '--with-num-cpus=2' '--disable-ccache' '--with-macosx-sdk=10.6' '--enable-epm' '--with-epm=internal' '--disable-online-update' '--without-doxygen' '--with-system-openldap' '--with-system-openssl' '--enable-extra-gallery' '--enable-extra-template' '--enable-extra-sample' '--enable-ext-diagram' '--enable-ext-oooblogger' '--enable-ext-google-docs' '--enable-ext-nlpsolver' '--enable-ext-watch-window' '--enable-ext-wiki-publishe' '--enable-ext-mysql-connector' '--with-libmysql-path=/Users/Shared/mysql-connector-c-6.0.2-osx10.5-x86-32bit/' '--srcdir=/Users/Shared/Repos/LO/core' There is no trace of -DMYSQL_LIB, grepping for "MYSQL" returns nothing, and with "mysql" instead I see the following in the build.log : [build DEP] LNK:Library/libmysqllo.dylib Archive: /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/Zip/driver_mysql_en-US.zip [build CXX] connectivity/source/drivers/mysql/YDriver.cxx [build CXX] connectivity/source/drivers/mysql/YTables.cxx [build CXX] connectivity/source/drivers/mysql/YTable.cxx [build CXX] connectivity/source/drivers/mysql/YViews.cxx [build CXX] connectivity/source/drivers/mysql/YCatalog.cxx [build CXX] connectivity/source/drivers/mysql/YColumns.cxx [build CXX] connectivity/source/drivers/mysql/YUser.cxx [build CXX] connectivity/source/drivers/mysql/YUsers.cxx [build CXX] connectivity/source/drivers/mysql/Yservices.cxx [build LNK] Library/libmysqllo.dylib [build CMP] connectivity/source/drivers/mysql/mysql
(In reply to comment #29) > From the build.log : > > running ./configure with '--with-max-jobs=4' '--with-num-cpus=2' > '--disable-ccache' '--with-macosx-sdk=10.6' '--enable-epm' > '--with-epm=internal' '--disable-online-update' '--without-doxygen' > '--with-system-openldap' '--with-system-openssl' '--enable-extra-gallery' > '--enable-extra-template' '--enable-extra-sample' '--enable-ext-diagram' > '--enable-ext-oooblogger' '--enable-ext-google-docs' > '--enable-ext-nlpsolver' '--enable-ext-watch-window' > '--enable-ext-wiki-publishe' '--enable-ext-mysql-connector' > '--with-libmysql-path=/Users/Shared/mysql-connector-c-6.0.2-osx10.5-x86- > 32bit/' '--srcdir=/Users/Shared/Repos/LO/core' > Although this has nothing to do with the mysql connector, note that although there's a typo error in the wiki publisher extension switch above (which I've now corrected), despite that typo, I get no error message on the console from configure, so these error messages must be silently deleted or ignored on OSX...who knows what else might be ignored...sigh Alex
Created attachment 76104 [details] debug info of connection from dbaui::OApplicationController::ensureConnection(dbtools::SQLExceptionInfo*)
So, seeing as I wasn't having much luck getting the break to trigger, I tried something a bit different - I tried creating a new ODB file using the mysql native connector, and this is what I get in GDB when I test the connection to the DB : 2013-03-07 17:08:02.377 soffice[16510:f0b] [IMKInputSession deactivate] exception caught. IMKInputSession:<IMKInputSession: 0x1abb36b0> -- NSInvalidSendPortException : [NSMachPort sendBeforeDate:] destination port invalid 2013-03-07 17:08:02.380 soffice[16510:f0b] [IMKInputSession activate] exception caught. IMKInputSession: <IMKInputSession: 0x1abd2000> -- NSInvalidSendPortException : [NSMachPort sendBeforeDate:] destination port invalid and the GUI shows an error message : "A driver is not registered for the URL s" If I then save the file nonetheless as "New Database.odb", the ODB file is written to disk and then the login credentials dialog appears. I enter the pwd and get the following error : SQL Status: HY000 The connection to the external data source could not be established. No SDBC driver was found for the given URL. Under "Information" : A connection for the following URL was requested "s". If I then look in the database "connection properties" (right mouse button click in lower window frame of Base main window), I get a dialog which just shows a field with a blank URL entry, and not the usual mysql connection dialog. Is there some default fallback behaviour that switches dialogs if the proper driver can't be loaded for whatever reason ? In my trusty ODB file that I have always used, the parameters have also disappeared if I call up the "Connection Properties" via the context menu. If I force them manually back in and try to connect, I get an error message : The connection to the data source "IPGALORE_directmysql" could not be established. SQL Status: HY000 The connection to the external data source could not be established. No SDBC driver was found for the given URL. A connection for the following URL was requested "s127.0.0.1:3306/ipdatabase". So we still have that "s" character in the string, which shouldn't be there. Subsequently saving the changes, and attempting to access the connection properties once more via the context menu brings up the dreaded URL dialog, which has nothing in common with the usual connection dialog, in fact it looks far more like the JDBC connector dialog, but just contains the Datasource URL field and user authentication fields (this is the Interaction Handler dialog, I believe). All very strange. Alex
Note that in the above described scenario, the Connection Type info is not set. If I call up the connection type dialog via the context menu from the main base window, it appears as unset, instead of Mysql(native).
(In reply to comment #32) > > 2013-03-07 17:08:02.377 soffice[16510:f0b] [IMKInputSession deactivate] > exception caught. > IMKInputSession:<IMKInputSession: 0x1abb36b0> -- > NSInvalidSendPortException : [NSMachPort sendBeforeDate:] destination port > invalid > 2013-03-07 17:08:02.380 soffice[16510:f0b] [IMKInputSession activate] > exception caught. > IMKInputSession: <IMKInputSession: 0x1abd2000> -- > NSInvalidSendPortException : [NSMachPort sendBeforeDate:] destination port > invalid > The IMK stuff is from the Input Method Key interface, which is, from what I understand, mainly used for non Western language input, but my OSX configuration isn't set up as default for any Asian language input (optional Wubi Xing, Wubi Hua, and Pinyin entry only) Alex
(In reply to comment #34) > (In reply to comment #32) > > 2013-03-07 17:08:02.377 soffice[16510:f0b] [IMKInputSession deactivate] > > exception caught. > > IMKInputSession:<IMKInputSession: 0x1abb36b0> -- > > NSInvalidSendPortException : [NSMachPort sendBeforeDate:] destination port > > invalid > > 2013-03-07 17:08:02.380 soffice[16510:f0b] [IMKInputSession activate] > > exception caught. > > IMKInputSession: <IMKInputSession: 0x1abd2000> -- > > NSInvalidSendPortException : [NSMachPort sendBeforeDate:] destination port > > invalid If I'm reading the links correctly from the SDK Developer references, the methods referred to in IMKInputSession.h point to obsolete/legacy symbols (cf. legacy_symbols_file.txt in /Developer/Extras/LegacyAPISurvey/) that were previously used in the Human Interface tools Carbon framework ? So the crash I'm seeing has possibly nothing to do with the mysql connector driver at all, something in our code (the anonymous namespace authentication dialog handler perhaps) just happens to be the trigger for the exception ? Arrgghh. Alex
libc++abi.dylib: terminate called throwing an exception Program received signal SIGABRT, Aborted. 0x969d1a6a in __pthread_kill () (gdb) bt full #0 0x969d1a6a in __pthread_kill () No symbol table info available. #1 0x9806dacf in pthread_kill () No symbol table info available. #2 0x980a44f8 in abort () No symbol table info available. #3 0x98f5a80c in abort_message () No symbol table info available. #4 0x98f58275 in default_terminate () No symbol table info available. #5 0x98f582b5 in safe_handler_caller () No symbol table info available. #6 0x98f5831d in std::terminate () No symbol table info available. #7 0x98f59412 in __cxa_throw () No symbol table info available. #8 0x19240b15 in sql::mysql::MySQL_Driver::MySQL_Driver () No symbol table info available. #9 0x19240cee in sql::mysql::get_driver_instance_by_name () No symbol table info available. #10 0x1924113b in sql::mysql::get_driver_instance () No symbol table info available. #11 0x191a3ee5 in connectivity::mysqlc::MysqlCDriver::impl_initCppConn_lck_throw () No symbol table info available. #12 0x191a4f4a in connectivity::mysqlc::MysqlCDriver::connect () No symbol table info available. #13 0x09d47bbe in connectivity::mysql::ODriverDelegator::connect () No symbol table info available. #14 0x06e657b4 in connectivity::OPoolCollection::getConnectionWithInfo () No symbol table info available. #15 0x1d71ead1 in dbaccess::ODatabaseSource::buildLowLevelConnection () No symbol table info available. #16 0x1d71fa18 in dbaccess::ODatabaseSource::buildIsolatedConnection () No symbol table info available. #17 0x1d720290 in dbaccess::OSharedConnectionManager::getConnection () No symbol table info available. #18 0x1d720ca9 in dbaccess::ODatabaseSource::getConnection () No symbol table info available. #19 0x1d721270 in dbaccess::ODatabaseSource::connectWithCompletion () No symbol table info available. #20 0x1d721bd8 in dbaccess::ODatabaseSource::connectWithCompletion () No symbol table info available. #21 0x1e4742af in dbaui::ODatasourceConnector::connect () No symbol table info available. #22 0x1e475100 in dbaui::ODatasourceConnector::connect () No symbol table info available. #23 0x1e3834b5 in dbaui::OGenericUnoController::connect () No symbol table info available. #24 0x1e30d6f1 in dbaui::OApplicationController::ensureConnection () No symbol table info available. #25 0x1e2fecd4 in dbaui::OApplicationController::onContainerSelect () No symbol table info available. #26 0x1e32bc03 in dbaui::OApplicationSwapWindow::onContainerSelected () No symbol table info available. #27 0x1e32bd57 in dbaui::OApplicationSwapWindow::OnContainerSelectHdl () No symbol table info available. #28 0x00c29ee2 in SvtIconChoiceCtrl::ClickIcon () No symbol table info available. #29 0x00c21fa8 in SvxIconChoiceCtrl_Impl::SelectEntry () No symbol table info available. #30 0x00c22a4c in SvxIconChoiceCtrl_Impl::SetCursor () No symbol table info available. #31 0x00c24b15 in SvxIconChoiceCtrl_Impl::MouseButtonDown () No symbol table info available. #32 0x00c290f4 in SvtIconChoiceCtrl::MouseButtonDown () No symbol table info available. #33 0x01a38b41 in ImplHandleMouseEvent () No symbol table info available. #34 0x01a39e79 in ImplWindowFrameProc () No symbol table info available. #35 0x01a95a99 in -[SalFrameView sendMouseEventToFrame:button:eventtype:] () No symbol table info available. #36 0x01a92b01 in -[SalFrameView mouseDown:] () No symbol table info available. #37 0x99613a21 in -[NSWindow sendEvent:] () No symbol table info available. #38 0x9960ea0f in -[NSApplication sendEvent:] () No symbol table info available. #39 0x01a8676f in -[VCL_NSApplication sendEvent:] () No symbol table info available. #40 0x01a4ae15 in AquaSalInstance::Yield () No symbol table info available. #41 0x01717e04 in Application::Yield () No symbol table info available. #42 0x0171926c in Application::Execute () No symbol table info available. #43 0x00071d38 in desktop::Desktop::Main () No symbol table info available. #44 0x0171f552 in ImplSVMain () No symbol table info available. #45 0x01a49f01 in AquaSalInstance::handleAppDefinedEvent () No symbol table info available. #46 0x01a8683b in -[VCL_NSApplication sendEvent:] () No symbol table info available. #47 0x9952872c in -[NSApplication run] () No symbol table info available. #48 0x994cb6f6 in NSApplicationMain () No symbol table info available. #49 0x01a4aa17 in ImplSVMainHook () No symbol table info available. #50 0x0171f611 in SVMain () No symbol table info available. #51 0x000a0005 in soffice_main () No symbol table info available. #52 0x00001f4e in main () No symbol table info available. (gdb)
The connector is no longer building at all on OSX. The only changes I have made have been to make clean, pull, and restart the build. It looks like someone is working on MariaDB integration, and this has hosed the build for me again. I'm throwing in the towel.
Alex: don't throw the towel :) I replaced that mysql-client library with mariadb, the --with-mysql-path is not having any effect now. I tried to fix it on windows, where it somehow builds now, now I will have to fix the mac build, just my old G4 mac mini is very slow, so any help would be appreciated. Over weekend and this morning, there were some fixes that should clear some impossibility to get the connection, because the connector was trying to dlopen a wrong library. And since libmariadb is built as static library, I made it link it in directly.
Still crashing after rebuild with Fridrichs changes : +0x00 pushl %ebp +0x01 movl %esp, %ebp +0x03 subl $72, %esp +0x06 movl %ebx, -12(%ebp) +0x09 movl %esi, -8(%ebp) +0x0c movl %edi, -4(%ebp) +0x0f calll 0x5 +0x14 popl %ebx +0x15 movl 8(%ebp), %esi +0x18 leal 450092(%ebx), %eax +0x1e addl $8, %eax +0x21 movl %eax, (%esi) +0x23 movl $0, 4(%esi) +0x2a movl 12(%ebp), %eax +0x2d movl %eax, (%esp) +0x30 calll sql::mysql::NativeAPI::createNativeDriverWrapper(sql::SQLString const&) +0x35 movl 4(%esi), %edx +0x38 movl %eax, 4(%esi) +0x3b testl %edx, %edx +0x3d je sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x49 +0x3f movl (%edx), %eax +0x41 movl 4(%eax), %eax +0x44 movl %edx, (%esp) +0x47 calll *%eax +0x49 movl -12(%ebp), %ebx +0x4c movl -8(%ebp), %esi +0x4f movl -4(%ebp), %edi +0x52 leave +0x53 ret +0x54 movl %eax, %edi +0x56 decl %edx +0x57 je sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x7d +0x59 movl 4(%esi), %edx +0x5c testl %edx, %edx +0x5e je sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x6a +0x60 movl (%edx), %eax +0x62 movl 4(%eax), %eax +0x65 movl %edx, (%esp) +0x68 calll *%eax +0x6a movl 448100(%ebx), %eax +0x70 addl $8, %eax +0x73 movl %eax, (%esi) +0x75 movl %edi, (%esp) +0x78 calll DYLD-STUB$$_Unwind_Resume +0x7d movl %eax, (%esp) +0x80 calll DYLD-STUB$$__cxa_begin_catch +0x85 movl (%eax), %edx +0x87 movl 8(%edx), %edx +0x8a movl %eax, (%esp) +0x8d calll *%edx +0x8f leal -25(%ebp), %edx +0x92 movl %edx, 8(%esp) +0x96 movl %eax, 4(%esp) +0x9a leal -36(%ebp), %edi +0x9d movl %edi, (%esp) +0xa0 calll DYLD-STUB$$std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) +0xa5 movl $16, (%esp) +0xac calll DYLD-STUB$$__cxa_allocate_exception +0xb1 movl %eax, -44(%ebp) +0xb4 leal -26(%ebp), %eax +0xb7 movl %eax, 8(%esp) +0xbb leal 375132(%ebx), %eax +0xc1 movl %eax, 4(%esp) +0xc5 leal -40(%ebp), %eax +0xc8 movl %eax, -48(%ebp) +0xcb movl %eax, (%esp) +0xce calll DYLD-STUB$$std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) +0xd3 movl %edi, 4(%esp) +0xd7 movl -44(%ebp), %edx +0xda movl %edx, (%esp) +0xdd calll DYLD-STUB$$std::runtime_error::runtime_error(std::string const&) +0xe2 movl 448060(%ebx), %eax +0xe8 addl $8, %eax +0xeb movl -44(%ebp), %edx +0xee movl %eax, (%edx) +0xf0 movl %edx, %eax +0xf2 addl $8, %eax +0xf5 movl -48(%ebp), %edx +0xf8 movl %edx, 4(%esp) +0xfc movl %eax, (%esp) +0xff calll DYLD-STUB$$std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) +0x104 movl -44(%ebp), %eax +0x107 movl $0, 12(%eax) +0x10e movl -40(%ebp), %ecx +0x111 subl $12, %ecx +0x114 movl 448032(%ebx), %edi +0x11a cmpl %edi, %ecx +0x11c jne sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x184 +0x11e movl 448024(%ebx), %eax +0x124 addl $8, %eax +0x127 movl -44(%ebp), %edx +0x12a movl %eax, (%edx) +0x12c movl -36(%ebp), %ecx +0x12f subl $12, %ecx +0x132 cmpl %ecx, %edi +0x134 jne sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x163 +0x136 movl 463440(%ebx), %eax +0x13c movl %eax, 8(%esp) +0x140 movl 448056(%ebx), %eax +0x146 movl %eax, 4(%esp) +0x14a movl -44(%ebp), %eax +0x14d movl %eax, (%esp) +0x150 calll DYLD-STUB$$__cxa_throw +0x155 movl %eax, %edi +0x157 calll DYLD-STUB$$__cxa_end_catch +0x15c jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x59 +0x161 jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x155 +0x163 leal 8(%ecx), %edx +0x166 movl $4294967295, %eax +0x16b lock +0x16c xaddl %eax, (%edx) +0x16f testl %eax, %eax +0x171 jg sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x136 +0x173 leal -30(%ebp), %eax +0x176 movl %eax, 4(%esp) +0x17a movl %ecx, (%esp) +0x17d calll DYLD-STUB$$std::string::_Rep::_M_destroy(std::allocator<char> const&) +0x182 jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x136 +0x184 leal 8(%ecx), %edx +0x187 movl $4294967295, %eax +0x18c lock +0x18d xaddl %eax, (%edx) +0x190 testl %eax, %eax +0x192 jg sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x11e +0x194 leal -28(%ebp), %eax +0x197 movl %eax, 4(%esp) +0x19b movl %ecx, (%esp) +0x19e calll DYLD-STUB$$std::string::_Rep::_M_destroy(std::allocator<char> const&) +0x1a3 jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x11e +0x1a8 movl %eax, %edi +0x1aa movl -44(%ebp), %edx +0x1ad movl %edx, (%esp) +0x1b0 calll DYLD-STUB$$std::runtime_error::~runtime_error() +0x1b5 movl -40(%ebp), %ecx +0x1b8 subl $12, %ecx +0x1bb movl 448032(%ebx), %eax +0x1c1 movl %eax, -52(%ebp) +0x1c4 cmpl %eax, %ecx +0x1c6 jne sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x21b +0x1c8 movl -44(%ebp), %edx +0x1cb movl %edx, (%esp) +0x1ce calll DYLD-STUB$$__cxa_free_exception +0x1d3 movl -36(%ebp), %ecx +0x1d6 subl $12, %ecx +0x1d9 cmpl -52(%ebp), %ecx +0x1dc je sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x157 +0x1e2 leal 8(%ecx), %edx +0x1e5 movl $4294967295, %eax +0x1ea lock +0x1eb xaddl %eax, (%edx) +0x1ee testl %eax, %eax +0x1f0 jg sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x157 +0x1f6 leal -29(%ebp), %eax +0x1f9 movl %eax, 4(%esp) +0x1fd movl %ecx, (%esp) +0x200 calll DYLD-STUB$$std::string::_Rep::_M_destroy(std::allocator<char> const&) +0x205 jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x157 +0x20a movl %eax, %edi +0x20c jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x1b5 +0x20e movl %eax, %edi +0x210 movl 448032(%ebx), %eax +0x216 movl %eax, -52(%ebp) +0x219 jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x1c8 +0x21b leal 8(%ecx), %edx +0x21e movl $4294967295, %eax +0x223 lock +0x224 xaddl %eax, (%edx) +0x227 testl %eax, %eax +0x229 jg sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x1c8 +0x22b leal -27(%ebp), %eax +0x22e movl %eax, 4(%esp) +0x232 movl %ecx, (%esp) +0x235 calll DYLD-STUB$$std::string::_Rep::_M_destroy(std::allocator<char> const&) +0x23a jmp sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&)+0x1c8 +0x23c nopl (%eax)
With the new switch, the oxt file generayed is even smaller still. Copy of file attached.
Created attachment 76476 [details] connector build from 20130311
# Self % Calls # Calls Symbol Name 0 100 3 sql::mysql::MySQL_Driver::MySQL_Driver(sql::SQLString const&) 0 100 3 __gxx_exception_cleanup(_Unwind_Reason_Code, _Unwind_Exception*) 0 100 3 __cxa_bad_typeid 0 100 3 safe_handler_caller(void (*)()) 0 100 3 default_terminate() 0 100 3 abort_message 0 33,3 1 fwrite$UNIX2003 0 33,3 1 __sfvwrite 0 33,3 1 _swrite 1 33,3 1 __write_nocancel 0 33,3 1 vfprintf 0 33,3 1 vfprintf_l 0 33,3 1 __sflush 0 33,3 1 _swrite 1 33,3 1 __write_nocancel 0 33,3 1 fputc 0 33,3 1 __swbuf 0 33,3 1 __sflush 0 33,3 1 _swrite 1 33,3 1 __write_nocancel
OK, the internal libmariadb was built until now without thread support on *nix. I enabled the thread support now. Alex, if you help to make it link on Mac, it is possible that the issue will be solved, but not sure.
Created attachment 76860 [details] build failure of libmariadb on OSX
(In reply to comment #44) > Created attachment 76860 [details] > build failure of libmariadb on OSX Any chance to help to debug. I am having locally only mac mini ppc with 10.5 and the sdk I build against is the 10.4 sdk. There is no way for me to check errors with 10.6 :(
(In reply to comment #45) > (In reply to comment #44) > > Created attachment 76860 [details] > > build failure of libmariadb on OSX > > Any chance to help to debug. I am having locally only mac mini ppc with 10.5 > and the sdk I build against is the 10.4 sdk. There is no way for me to check > errors with 10.6 :( If you give me pointers on how to do that, coz I have absolutely no idea :-) even where to start. Make files are anathema to me. Alex
(In reply to comment #46) > If you give me pointers on how to do that, coz I have absolutely no idea :-) > even where to start. Make files are anathema to me. Already, it would be interesting what is the line 101 of /Developer/SDKs/MacOSX10.6.sdk/usr/include/signal.h so that we can understand the error better.
(In reply to comment #47) > > Already, it would be interesting what is the line 101 of > /Developer/SDKs/MacOSX10.6.sdk/usr/include/signal.h so that we can > understand the error better. 99 int sigprocmask(int, const sigset_t * __restrict, sigset_t * __restrict); 100 int sigrelse(int); 101 void (*sigset(int, void (*)(int)))(int); 102 int sigsuspend(const sigset_t *) __DARWIN_ALIAS_C(sigsuspend);
(In reply to comment #48) > 99 int sigprocmask(int, const sigset_t * __restrict, sigset_t * > __restrict); > 100 int sigrelse(int); > 101 void (*sigset(int, void (*)(int)))(int); > 102 int sigsuspend(const sigset_t *) __DARWIN_ALIAS_C(sigsuspend); OK, what would clearly help here is to have the mariadb-native-client-1.0.0 unpacked, patched and then built using cmake standalone on mac and send me the my_config.h file that the cmake build produces. I will clearly have to prepare serveral of them and copy them over like clucene build does.
Alex, can you try to replace the libmariadb/my_config.h in your build tree with the attached file and see whether it passes?
Created attachment 76873 [details] place this to libmariadb directory and try to "make libmariadb.all"
(In reply to comment #50) > Alex, can you try to replace the libmariadb/my_config.h in your build tree > with the attached file and see whether it passes? Still no good, see aatached output. Alex
Created attachment 76894 [details] build log
Hmmm, surely the unpack step overwrites the my_config.h file ?
(In reply to comment #54) > Hmmm, surely the unpack step overwrites the my_config.h file ? No, but the build seems to take that file from UnpackedTarball/mariadb/include/my_config.h instead. Alex
Copied my_config.h to the /workdir/unxmacxi.pro/UnpackedTarball/mariadb/include/ then ran make libmariadb.all make -j 2 -rs -f /Users/Shared/Repos/LO/core/Makefile.gbuild /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/Module/libmariadb /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/Module/check/libmariadb /Users/Shared/Repos/LO/core/workdir/unxmacxi.pro/Module/slowcheck/libmariadb [build DEP] LNK:StaticLibrary/libmariadblib.a Does this mean it has now built ? Alex
Continuing on with complete build, I see this in mysqlcppconn (attached log)
Created attachment 76895 [details] mysqlcppconn build log
(In reply to comment #56) > Copied my_config.h to the > /workdir/unxmacxi.pro/UnpackedTarball/mariadb/include/ Since the sources were already unpacked, it worked too. What I wanted is to put it in the source tree as libmariadb/my_config.h temporarily, because the unpack of the sources copies that onver. > Does this mean it has now built ? From the log, the libmariadb static library built. The warnings that you see are due to a recent addition of -Wundef flag in master. They are things that should be fixed in mariadb-native-client itself, but they don't bother us too much now. Now, I will have to come with a way to conditionalize the different my_config.h files per platform.
Hi Fridrich, Well the LO build completed successfully with that my_config.h file, with the connector extension being successfully integrated and functional ! Alex
Working build : Version 4.1.0.0.alpha0+ (Build ID: edf57013463eff6d3b40d8d5d933577f0e6cf8e)
In one of my server registered views, I get a buffer allocate error with a rbind data type when scrolling through the list of tables in the UI Table Browser, I will open a separate bug report for that, so there could be an incompatibility between the mysql code and the libmariadb code (since I never got this error with the mysql connector). It is unfortunate because it is probably my second most used element of my database - sigh. Ah well, another day, another problem to solve :-)) Alex
Hello, Alex, let me close this one as resolved, since we are now able to build it. You can gladly add me and Lionel to the other bug. We will work it out at the end :)
(In reply to comment #63) > Hello, Alex, let me close this one as resolved, since we are now able to > build it. You can gladly add me and Lionel to the other bug. We will work it > out at the end :) Sure Fridrich, but the changes haven't gone in to master yet, or have they ? Alex
(In reply to comment #63) > Hello, Alex, let me close this one as resolved, since we are now able to > build it. You can gladly add me and Lionel to the other bug. We will work it > out at the end :) And a big thank you from me from me for doing this :-)) Alex
(In reply to comment #64) > Sure Fridrich, but the changes haven't gone in to master yet, or have they ? Sure, they went in some hours ago, we have now a specific mac_my_config.h file that I crafted from cmake generated file on both ppc and intel. Then we have a linux_my_config.h file that works for both 32 and 64bit linux. They were generated on our release base-line. I hope that linux files will be working for many different Unix flavours, but if not, there is a way to generate them for the given platform and handle them similarly to what we do now in libmariadb/UnpackedTarball_mariadb.mk