Re: BUG #6233: pg_dump hangs with Access Violation C0000005 - Mailing list pgsql-bugs

From Craig Ringer
Subject Re: BUG #6233: pg_dump hangs with Access Violation C0000005
Date
Msg-id 4E8EE26D.4010503@ringerc.id.au
Whole thread Raw
In response to Re: BUG #6233: pg_dump hangs with Access Violation C0000005  ("Pavel Holec" <holec@email.cz>)
List pgsql-bugs
On 10/07/2011 06:51 PM, Pavel Holec wrote:
>
> -----Original Message-----
> From: Craig Ringer [mailto:ringerc@ringerc.id.au]
> Sent: Thursday, October 06, 2011 2:05 AM
> To: Pavel Holec
> Cc: 'Tom Lane'; 'Alvaro Herrera'; 'Pg Bugs'
> Subject: Re: [BUGS] BUG #6233: pg_dump hangs with Access Violation C0000005
>
> On 10/05/2011 09:37 PM, Pavel Holec wrote:
>
>> Yes, this is the problem. libpq.dll I have built in VC6. With original
>> I had problem with msvcr80.dll and WinSxS because my end client app is
>> also from
>> VC6 and I can't prepare redist msvcr for end user. Can you advice me
>> how to do it?
>
>>> It would've been nice if you'd mentioned that ;-)
>
>>> Running a msvcrt.dll libpq with a msvcr80.dll pg_dump should work,
> though; Windows programs are expected to cope with insane things like mixing
> multiple C runtimes. It sounds like there's a bug where pg_dump doesn't use
> the libpq memory management functions and instead does a direct free();
> changing those crash sites you found to use PQfreemem should solve>>  the
> problem. Try it and see.
>
>>> Advise you how to do what?
>
>>> By the way, you should be able to use a regular libpq compiled against
> msvcr80.dll with your VC6 client app so long as the client app uses
> PQfreemem to release memory allocated by libpq.
>
>>> --
>>> Craig Ringer
>
>
> PQfreemem is what I've been thinking about - great.
>
> With SxS I see problem if customer have a clear new installation of WinXP
> and no msvcrt80.dll. I'm not be able to ship this dll with installaton of my
> client - when I use for example Inno setup.

Why not? Just invoke the redist installer from innosetup like you would
any other subprogram.

> Isn't possible to have redistribute package with proper version msvcrt80.dll
> accord with your binaries on the wb site?

The installer does exactly that. The .zip is for expert users; it's
assumed they'll be using it as part of an installer or other automated
setup and are going to want control over installation of the runtime.

Anyway, AFAIK you can't distribute the bare .DLL, you can only
distribute Microsoft's installer for the runtime and run it as part of
your install process. The .zip doesn't have an install process to run it
from.

Just bundle the appropriate MSVC runtime redist with your installer. You
can download the redists from Microsoft.

--
Craig Ringer

pgsql-bugs by date:

Previous
From: "Pavel Holec"
Date:
Subject: Re: BUG #6233: pg_dump hangs with Access Violation C0000005
Next
From: "Murilo Lobato"
Date:
Subject: BUG #6244: Ordering Problem