Bug 92792 - Windows 64bit: SDBC driver error when attempting to connect to Thunderbird addressbook
Summary: Windows 64bit: SDBC driver error when attempting to connect to Thunderbird ad...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: filters and storage (show other bugs)
Version:
(earliest affected)
5.0.0.1 rc
Hardware: x86-64 (AMD64) Windows (All)
: medium normal
Assignee: DavidO
URL:
Whiteboard: win64only target:5.1.0 target:5.0.1
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-16 20:32 UTC by Robinson Tryon (qubit)
Modified: 2016-10-25 19:23 UTC (History)
8 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robinson Tryon (qubit) 2015-07-16 20:32:06 UTC
TESTING with LO 5.0.0.1 rc
on Win10 x64 (preview 10074)

REPRO STEPS:

- Install and start LibreOffice
- Install Thunderbird and populate the Thunderbird addressbook with at least a couple of dummy entries (Name + Email address)
- Go to File -> Wizards -> Address Data Source
- In the screen that open, chose the "Thunderbird/Icedove" option

EXPECTED:
The data source is selected, tables appear in the new screen (etc..)

RESULT:
Error: "The connection to the external data source could not be established. No SDBC driver was found for the URL 'sdbc:address:thunderbird'.


Same error on win10 x64 with
Version: 5.1.0.0.alpha1+ (x64)
Build ID: 5a61d7f049a81d6e747d9d097f364ae45f58697b
TinderBox: Win-x86_64@62-TDF, Branch:MASTER, Time: 2015-07-16_01:06:26
Locale: en-US (en_US)

And on win8.1 x64 with LO 5.0.0.1 rc.

(Originally filed as https://redmine.documentfoundation.org/issues/1326)
Comment 1 MM 2015-07-16 22:29:31 UTC
Looks a bit like bug 32948
But I can connect without a problem with v4.4.5.1 under windows 7 x64.
Comment 2 Florian Reisinger 2015-07-23 15:57:35 UTC
Tested on Windows 8.1 64 bit:

Repo
Version: 5.1.0.0.alpha1+ (x64)
Build-ID: 5a61d7f049a81d6e747d9d097f364ae45f58697b
TinderBox: Win-x86_64@62-TDF, Branch:MASTER, Time: 2015-07-16_01:06:26
Gebietsschema: de-AT (de_AT)

No repo:
 16:08 <Reisi007> Works: Version: 4.3.1.2
 16:08 <Reisi007> Build-ID: 958349dc3b25111dbca392fbc281a05559ef6848

5.0rc1 -> repo x64 no repo x86

On phone now. Tested @16th of July.
Unable to test more up to date versions ATM.
Comment 3 DavidO 2015-07-25 14:14:41 UTC
Only Windows 64 bit is affected, because only here we are using (first time on windows mork driver).

Looks like a mismatch in registered datasource name and one passed from the dialog

in connectivity/registry/mork/org/openoffice/Office/DataAccess/Drivers.xcu

<node oor:name="sdbc:address:thunderbird:" oor:op="replace">

in extensions/source/abpilot/datasourcehandling.cxx

return lcl_implCreateAndSetURL( m_pImpl->xORB, _rName, "sdbc:address:thunderbird" );

As the consequence, the driver is not matched in DriversConfig.cxx filter, in

OUString DriversConfig::getDriverFactoryName(const OUString& _sURL) const

in this comparison:

if ( sOldPattern.getLength() < aIter->first.getLength() && aWildCard.Matches(_sURL) )

That's because

aWildCard = "sdbc:address:thunderbird:"
_sURL = "sdbc:address:thunderbird"
Comment 4 DavidO 2015-07-25 19:27:08 UTC
Found the first bug: mork service wasn't registered on WNT platform ;-(

$ git diff postprocess/Rdb_services.mk
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index 46e0f31..75be08a 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -292,20 +292,11 @@ $(eval $(call gb_Rdb_add_components,services,\
        ) \
 ))

-ifeq ($(OS),WNT)
-
 ifneq ($(WITH_MOZAB4WIN),)
 $(eval $(call gb_Rdb_add_components,services,\
        connectivity/source/drivers/mozab/mozab \
 ))
 else
-$(eval $(call gb_Rdb_add_components,services,\
-       connectivity/source/drivers/mozab/bootstrap/mozbootstrap \
-))
-endif
-
-else
-
 ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
 $(eval $(call gb_Rdb_add_components,services,\
        connectivity/source/drivers/mork/mork \
@@ -313,7 +304,7 @@ $(eval $(call gb_Rdb_add_components,services,\
 ))
 endif # DESKTOP

-endif # WNT
+endif # WITH_MOZAB4WIN

 endif # DBCONNECTIVITY

Second bug: profile cannot be found, investigating why...

Workaround for now is to define the profile directory manually:

  $ export MOZILLA_THUNDERBIRD_PROFILE_ROOT=C:/Users/david/AppData/Roaming/Thunderbird

Worked for me. With this address book source can be defined: [1].
However, when trying to open Thundebird in Base, it crashes when
admin dialog is closing: [2].

I have 10 day old tree here: [3]. Will pull and try again later.

* [1] http://imgur.com/PizkClD
* [2] http://paste.openstack.org/show/405730
* [3] 880e3af2b502ca4f5a1f34ad9d98b9a26dc091ed
Comment 5 DavidO 2015-07-25 19:54:51 UTC
So, profile problem is fixed as well: it doesn't hurt to treat windows as windows OS and not as UNIX:

diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
index 0abfad7..1ea558c 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
@@ -47,7 +47,7 @@ namespace
         ::osl::Security   aSecurity;
         OUString   aConfigPath;

-    #if defined(XP_WIN) || defined(MACOSX)
+    #if defined(WNT) || defined(MACOSX)
         aSecurity.getConfigDir( aConfigPath );
     #else
         //This is to find the dir under which .mozilla/.thunderbird is created.
@@ -69,7 +69,7 @@ namespace
     // DO NOT CHANGE THE ORDER; ADD ONLY TO THE END
     static const char* DefaultProductDir[NB_PRODUCTS][NB_CANDIDATES] =
     {
-    #if defined(XP_WIN)
+    #if defined(WNT)
         { "Mozilla/SeaMonkey/", NULL, NULL, NULL },
         { "Mozilla/Firefox/", NULL, NULL, NULL },
         { "Thunderbird/", "Mozilla/Thunderbird/", NULL, NULL }
Comment 6 DavidO 2015-07-26 07:50:47 UTC
Upload the patches for master and 5-0 branch:

* https://gerrit.libreoffice.org/17349
* https://gerrit.libreoffice.org/17350
Comment 7 DavidO 2015-07-26 08:55:00 UTC
Crash report in my previous comment can be ignored. I cannot reproduce it on most recent master build yna more: [1]. I also had boost 1.59 change in the tree, but not sure if it contributed to the problem: [2].

* [1] 33a21d37f376abaaabdaceaa09160cab962038fc
* [2] https://gerrit.libreoffice.org/17056
Comment 8 Commit Notification 2015-07-26 17:04:31 UTC
David Ostrovsky committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=9f291dcccba2c7d7f6ebbf214aab111c787c6b46

tdf#92792: Register mork driver on windows 64bit and make it work

It will be available in 5.1.0.

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.
Comment 9 Commit Notification 2015-07-26 17:07:48 UTC
David Ostrovsky committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c2d73ecf305213672b35ee73e58e9db0fadccbc5&h=libreoffice-5-0

tdf#92792: Register mork driver on windows 64bit and make it work

It will be available in 5.0.1.

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.
Comment 10 DavidO 2015-07-27 05:52:55 UTC
Just realized, that the crash I was mentioning in my previous comment was fixed by Michael in: [1].

* [1] http://cgit.freedesktop.org/libreoffice/core/commit/?id=46e1e1292ac801598e1f43657a1320c45ef8776d&h=libreoffice-5-0-0
Comment 11 Robinson Tryon (qubit) 2015-08-20 07:55:11 UTC
Retesting on Win10 x64 (VM) with LO Version: 5.0.1.1 (x64)

(In reply to Robinson Tryon (qubit) from comment #0)
> REPRO STEPS:
> - Install and start LibreOffice
> - Install Thunderbird and populate the Thunderbird addressbook with at least
> a couple of dummy entries (Name + Email address)
> - Go to File -> Wizards -> Address Data Source
> - In the screen that open, chose the "Thunderbird/Icedove" option

Then click "Next", and select the 'AddressBook' entry to install.

Verify that the dummy entries exist by pressing 'F4' and reviewing what's displayed.

> 
> EXPECTED:
> The data source is selected, tables appear in the new screen (etc..)

This seems to be fixed; everything's working as expected in 5.0.1.1.
Status -> RESOLVED FIXED