@@ -29,7 +29,8 @@ It can be done by done by typing configure, make and make install.
29291. Download the Cygwin32 IPC Package by Ludovic LANGE
3030 http://www.multione.capgemini.fr:80/tools/pack_ipc/current.tar.gz
31312. Untar the package and follow the readme instructions.
32- 3. Apply the patch from the file.
32+ 3. Apply the patch pgsql/src/win32/ipc.patch to the CygWin32 sources
33+ before compiling CygWin32.
33344. I tested 1.03.
34355. I used the \cygwin-b20\h-i568-cygwin32\i586-cygwin32\lib and
3536\cygwin-b20\h-i568-cygwin32\i586-cygwin32\include\sys instead of the
@@ -78,169 +79,3 @@ environment variable to 'localhost' or supply the hostname on the
7879command line.
7980
8081Joost
81-
82-
83- ---------------------------------------------------------------------------
84-
85- FIX FOR POSTGRESQL FREEZING ON NT MACHINES - EVERYONE SHOULD APPLY THIS PATCH
86-
87-
88- From: "Hiroshi Inoue" <Inoue@tpf.co.jp>
89- To: "Horak Daniel" <horak@mmp.plzen-city.cz>, "'Tom Lane'" <tgl@sss.pgh.pa.us>
90- Cc: <pgsql-hackers@postgreSQL.org>
91- Subject: RE: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
92- Date: Wed, 18 Aug 1999 08:45:28 +0900
93- Message-ID: <000301bee90a$95d40f00$2801007e@cadzone.tpf.co.jp>
94- MIME-Version: 1.0
95- Content-Type: text/plain;
96- charset="iso-8859-1"
97- Content-Transfer-Encoding: 7bit
98- X-Priority: 3 (Normal)
99- X-MSMail-Priority: Normal
100- X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0
101- X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
102- In-reply-to: <2E7F82FAC1FCD2118E1500A024B3BF907DED3F@exchange.mmp.plzen-city.cz>
103- Importance: Normal
104- Sender: owner-pgsql-hackers@postgreSQL.org
105- Precedence: bulk
106- Status: RO
107-
108- > -----Original Message-----
109- > From: owner-pgsql-hackers@postgreSQL.org
110- > [mailto:owner-pgsql-hackers@postgreSQL.org]On Behalf Of Horak Daniel
111- > Sent: Tuesday, August 17, 1999 9:06 PM
112- > To: 'Tom Lane'
113- > Cc: 'pgsql-hackers@postgreSQL.org'
114- > Subject: RE: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
115-
116- Yutaka Tanida [yutaka@marin.or.jp] and I have examined IPC
117- library.
118-
119- We found that postmaster doesn't call exec() after fork() since v6.4.
120-
121- The value of static/extern variables which cygipc library holds may
122- be different from their initial values when postmaster fork()s child
123- backend processes.
124-
125- I made the following patch for cygipc library on trial.
126- This patch was effective for Yutaka's test case.
127-
128- Regards.
129-
130- Hiroshi Inoue
131- Inoue@tpf.co.jp
132-
133- *** sem.c.origTue Dec 01 00:16:25 1998
134- --- sem.cTue Aug 17 13:22:06 1999
135- ***************
136- *** 58,63 ****
137- --- 58,78 ----
138- static int GFirstSem = 0;/*PCPC*/
139- static int GFdSem ;/*PCPC*/
140-
141- + static pid_tGProcessId = 0;
142- +
143- + static voidinit_globals(void)
144- + {
145- + pid_t pid;
146- +
147- + if (pid=getpid(), pid != GProcessId)
148- + {
149- + GFirstSem = 0;
150- + used_sems = used_semids = max_semid = 0;
151- + sem_seq = 0;
152- + GProcessId = pid;
153- + }
154- + }
155- +
156- /************************************************************************/
157- /* Demande d'acces a la zone partagee de gestion des semaphores*/
158- /************************************************************************/
159- ***************
160- *** 77,82 ****
161- --- 92,98 ----
162- {
163- int LRet ;
164-
165- + init_globals();
166- if( GFirstSem == 0 )
167- {
168- if( IsGSemSemExist() )
169- *** shm.c.origTue Dec 01 01:04:57 1998
170- --- shm.cTue Aug 17 13:22:27 1999
171- ***************
172- *** 59,64 ****
173- --- 59,81 ----
174- static int GFirstShm = 0;/*PCPC*/
175- static int GFdShm ;/*PCPC*/
176-
177- + /*****************************************/
178- + /*Initialization of static variables */
179- + /*****************************************/
180- + static pid_t GProcessId = 0;
181- + static void init_globals(void)
182- + {
183- + pid_t pid;
184- +
185- + if (pid=getpid(), pid != GProcessId)
186- + {
187- + GFirstShm = 0;
188- + shm_rss = shm_swp = max_shmid = 0;
189- + shm_seq = 0;
190- + GProcessId = pid;
191- + }
192- + }
193- +
194- /************************************************************************/
195- /* Demande d'acces a la zone partagee de gestion des shm*/
196- /************************************************************************/
197- ***************
198- *** 82,87 ****
199- --- 99,105 ----
200- {
201- int LRet ;
202-
203- + init_globals();
204- if( GFirstShm == 0 )
205- {
206- if( IsGSemShmExist() )
207- *** msg.c.origTue Dec 01 00:16:09 1998
208- --- msg.cTue Aug 17 13:20:04 1999
209- ***************
210- *** 57,62 ****
211- --- 57,77 ----
212- static int GFirstMsg = 0;/*PCPC*/
213- static int GFdMsg ;/*PCPC*/
214-
215- + /*****************************************/
216- + /*Initialization of static variables */
217- + /*****************************************/
218- + static pid_t GProcessId = 0;
219- + static void init_globals(void)
220- + {
221- + pid_t pid;
222- +
223- + if (pid=getpid(), pid != GProcessId)
224- + {
225- + GFirstMsg = 0;
226- + msgbytes = msghdrs = msg_seq = used_queues = max_msqid = 0;
227- + GProcessId = pid;
228- + }
229- + }
230- /************************************************************************/
231- /* Demande d'acces a la zone partagee de gestion des semaphores*/
232- /************************************************************************/
233- ***************
234- *** 79,84 ****
235- --- 94,100 ----
236- {
237- int LRet ;
238-
239- + init_globals();
240- if( GFirstMsg == 0 )
241- {
242- if( IsGSemMsgExist() )
243-
244-
245-
246-