bzr 1.6.1/win32: hard crash because wrong libapr.dll is loaded

Mark Hammond mhammond at skippinet.com.au
Wed Sep 10 02:11:29 BST 2008


> I wanted to report that the bzr-svn plugin from the 1.6.1 Windows
> installer has some path problems: The libapr dlls aren't loaded from
> the local Bazaar directory, but from the concurring SVN installation.
> Unfortunately, the two DLL versions aren't binary compatible, leading
> in my case to a NULL pointer access violation and an abrupt termination
> of the bzr.exe process.

Strangely, I can't reproduce this.  In my subversion directory, I have a
number of DLLs that are the same as bzr-svn uses, except for '-1' on the
end.  Eg, in the bzr-svn directory you will find files libapr.dll,
libapriconv.dll, libaprutil.dll, while by subversion directory has
libapr-1.dll, libapriconv-1.dll and libaprutil-1.dll.  The subversion
directory is on my PATH.

You seem to have a similar layout - lookng at your trace:

> ModLoad: 01180000 01251000   C:\Program
Files\Bazaar\plugins\svn\client.pyd

Here comes bzr-svn...

> ModLoad: 6eec0000 6eee1000   C:\Program
Files\Bazaar\plugins\svn\libapr.dll
> ModLoad: 01260000 01272000   C:\Program
Files\Bazaar\plugins\svn\intl3_svn.dll
> ModLoad: 13000000 130c4000   C:\Program
Files\Bazaar\plugins\svn\libdb44.dll
> ModLoad: 76080000 760e5000   C:\WINDOWS\system32\MSVCP60.dll
> ModLoad: 6ee60000 6ee89000   C:\Program
Files\Bazaar\plugins\svn\libaprutil.dll
> ModLoad: 6ee50000 6ee59000   C:\Program
Files\Bazaar\plugins\svn\libapriconv.dll
> ModLoad: 01280000 01389000   C:\Program
Files\Bazaar\plugins\svn\LIBEAY32.dll
> ModLoad: 01390000 013c2000   C:\Program
Files\Bazaar\plugins\svn\SSLEAY32.dll
> ModLoad: 013d0000 0146e000   C:\Program Files\Bazaar\plugins\svn\ra.pyd
> ModLoad: 01470000 014d0000   C:\Program Files\Bazaar\plugins\svn\repos.pyd
> ModLoad: 015d0000 01620000   C:\Program Files\Bazaar\plugins\svn\wc.pyd

So far, so good.  Note we have already loaded libaprutil.dll and
libapriconv.dll 

But here things start going off the rails...

> ModLoad: 6e060000 6e066000   C:\Program
Files\Subversion\iconv\windows-1252.so
> ModLoad: 01e20000 01e29000   C:\Program
Files\Subversion\bin\libapriconv-1.dll

We've started picking up stuff from subversion - and interestingly, we start
loading the alternate '-1' versions of the libraries, and this is where we
crash.

FWIW, this is the module load order I see as reported by Visual Studio:

'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\client.pyd', Binary was not
built with debug information.
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\libapr.dll'
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\intl3_svn.dll'
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\libdb44.dll', Binary was not
built with debug information.
'bzr.exe': Loaded 'C:\WINDOWS\system32\msvcp60.dll'
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\libaprutil.dll'
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\libapriconv.dll'
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\libeay32.dll', Binary was not
built with debug information.
'bzr.exe': Loaded 'C:\WINDOWS\system32\wsock32.dll'
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\ssleay32.dll', Binary was not
built with debug information.
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\ra.pyd', Binary was not built
with debug information.
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\repos.pyd', Binary was not
built with debug information.
'bzr.exe': Loaded 'C:\utils\Bazaar\plugins\svn\wc.pyd', Binary was not built
with debug information.
'bzr.exe': Loaded 'C:\utils\Bazaar\lib\_elementtree.pyd', Symbols loaded.
...

Note that I see no reference to 'windows-1252.so', even though I do have an
'iconv' dir under subversion with this .so file and many others.  Maybe this
is a clue?

Alternatively, maybe a play with the 'depends' tool will offer a clue as to
why your environment goes off searching for DLLs we aren't shipping?

Cheers,

Mark




More information about the bazaar mailing list