bzr 1.6.1/win32: hard crash because wrong libapr.dll is loaded
Kuno Meyer
kuno.meyer at gmx.ch
Wed Sep 10 08:05:23 BST 2008
Mark Hammond <mhammond <at> skippinet.com.au> writes:
>
> > 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.
>
That's correct. The DLLs deployed with SVN are loaded *in addition* to the DLLs
deployed with Bazaar. Therefore, the subject of my initial post is somewhat
misleading.
> 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...
>
[...]
>
> 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.
>
[...]
>
> 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?
This might be a clue indeed. I'm running a German version of Windows, as could
the reporter of bug 264733 (assumption based on its name). The messages from the
SVN command line interface are localized. The Win-1252 charset contains most of
the umlauts used in European languages
(<http://en.wikipedia.org/wiki/Windows-1252>).
Perhaps windows-1252.so is loaded dynamically in libapriconv.dll (which is the
only file containing the string "windows-1252"?
Perhaps we are just observing the consequence of not packaging windows-1252.so,
or of not forcing the SVN client library to run in english/neutral locale?
>
> 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?
I inspected several files (*.pyd, *.dll, *.so). No explicit reference to this
dll, but as stated above, it may be loaded dynamically from the libapriconv.dll.
Cheers
Kuno
More information about the bazaar
mailing list