Re: BUG #1815: ECPGdebug causes crash on Windows XP

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Michael Meskes <meskes(at)postgresql(dot)org>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #1815: ECPGdebug causes crash on Windows XP
Date: 2005-09-25 03:09:41
Message-ID: 200509250309.j8P39fH05181@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


Ah, I have found the cause of the crash, and added documentation about
the cause:

On Win32, if the <application>ecpg</> libraries and application are
compiled with different flags, this function call will crash the
application because the internal representation of the <literal>FILE</>
pointers differ.

While such a mismatch is a problem on all platforms, it is more common
on Win32 where the FILE structure changes for debug, for example.

---------------------------------------------------------------------------

Michael Meskes wrote:
> On Mon, Aug 15, 2005 at 07:39:42PM +0800, William ZHANG wrote:
> > Yes. It is reproducible. But it works well in MinGW.
> > Is there sth. wrong with the import library lib\ms\libecpg.lib or
> > lib\libecpg.dll?
> >
> > "Joshua Masiko" <joshua_masiko(at)yahoo(dot)com>
> > wrote:20050813145453(dot)48119(dot)qmail(at)web33903(dot)mail(dot)mud(dot)yahoo(dot)com(dot)(dot)(dot)
> > >
> > > ntdll.dll!7c918fea()
> > > ntdll.dll!7c9106eb()
> > > ntdll.dll!7c90104b()
> > > msvcrt.dll!77c3b90d()
> > > msvcrt.dll!77c420e7()
> > > libecpg.dll!6d0c7471()
> > >> ecpgtest.exe!main(int argc=1, char * *
> > > argv=0x003c0d10) Line 5 + 0xc C
> > > ecpgtest.exe!mainCRTStartup() Line 206 + 0x19 C
> > > kernel32.dll!7c816d4f()
> > > kernel32.dll!7c8399f3()
> > >
> > >
> > > The offending line in ecpgtest.pgc is
> > >
> > > ECPGdebug(1,stderr);
> > >
> > > I get the same result even if I use a file handle
> > > obtained by using fopen
>
> Could someone with access to a Windows system have a look at this? I do
> not have one atm. In particular I'd like to know whether it makes a
> difference if your compiled ecpg with threading enabled or not. After
> all without threading the function called does not much, just changing
> two variables and logging the change.
>
> Michael
> --
> Michael Meskes
> Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
> ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes(at)jabber(dot)org
> Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Kappler 2005-09-26 02:49:11 BUG #1907: problem with function return as integer[]
Previous Message T.J. Ferraro 2005-09-24 18:43:16 Re: HELP