Subject: [Fwd: [[email-masked]: Re: src/timezone/pgtz __imp__my_exec_path]]
From: Corinna Vinschen <[email-masked]>
To: [email-masked]
Date: Thu, 9 Dec 2004 17:55:21 +0100

[Catching up on some older mail]

> ----- Forwarded message from Reini Urban -----
> From: Reini Urban 
> To: pgsql-hackers
> Cc: cygwin, pgsql-cygwin
> Subject: Re: src/timezone/pgtz __imp__my_exec_path
> Date: Sat, 27 Nov 2004 13:09:24 +0100
> 
> postgresql-cygwin is working fine. See the testfarm.
> Just cygwin itself, cygserver - the IPC daemon - has problems.
> 
> On msgctl(IPC_INFO) the internal msg buffer struct msqid_ds *buf is 
> allocated at a non-writable area, IsBadWritePtr() fails. I suspect it's 
> a new gcc-3.4 feature, but haven't found the problem yet. gcc-3.3 fails 
> also. (these don't have dwarf-2 support yet, just sjlj. cygwin itself is 
> c++ and uses exceptions heavily.)
> [...]
> ----- End forwarded message -----

I'm sorry, but is there a way to expand this a bit, possibly with a
testcase?  Calling msgctl(IPC_INFO) does not involve any creation
of a new datastructure inside of cygserver.  The buf parameter to
msgctl must be allocated by the application.  What happens is that
cygwin copies only the buf pointer value to cygserver and cygserver
in turn copies it's own datastructure (created on cygserver start)
over to the application's buf address, using a Windows function
(WriteProcessMemory).  From the above description it's not clear to
me how the fault could be in cygserver since it has nothing to do with
the creation of the buf memory in the application.  And how do you think
gcc is involved in that?  I don't know how the buf memory is created
in postgres so a short discussion could be enlightening perhaps.

Corinna

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/