Skip to content

Commit c67286c

Browse files
committed
Update README.NT with patch.
1 parent 550a416 commit c67286c

File tree

1 file changed

+169
-0
lines changed

1 file changed

+169
-0
lines changed

doc/README.NT

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ It can be done by done by typing configure, make and make install.
2121
1. Download the Cygwin32 IPC Package by Ludovic LANGE
2222
http://www.multione.capgemini.fr:80/tools/pack_ipc/current.tar.gz
2323
2. Untar the package and follow the readme instructions.
24+
2a. Apply the patch from src/win32/ipc.patch
2425
3. I tested 1.03.
2526
4. I used the \cygwin-b20\h-i568-cygwin32\i586-cygwin32\lib and
2627
\cygwin-b20\h-i568-cygwin32\i586-cygwin32\include\sys instead of the
@@ -62,3 +63,171 @@ unix domain sockets, which don't work on NT. Start the postmaster with
6263
environment variable to 'localhost' or supply the hostname on the
6364
command line.
6465

66+
Also, the cygnus-bindir has to be placed in the path before the
67+
NT-directories, because the sort.exe has to be take for cygnus, not
68+
NT.
69+
70+
---------------------------------------------------------------------------
71+
72+
FIX FOR POSTGRESQL FREEZING ON NT MACHINES
73+
74+
75+
From: "Hiroshi Inoue" <Inoue@tpf.co.jp>
76+
To: "Horak Daniel" <horak@mmp.plzen-city.cz>, "'Tom Lane'" <tgl@sss.pgh.pa.us>
77+
Cc: <pgsql-hackers@postgreSQL.org>
78+
Subject: RE: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
79+
Date: Wed, 18 Aug 1999 08:45:28 +0900
80+
Message-ID: <000301bee90a$95d40f00$2801007e@cadzone.tpf.co.jp>
81+
MIME-Version: 1.0
82+
Content-Type: text/plain;
83+
charset="iso-8859-1"
84+
Content-Transfer-Encoding: 7bit
85+
X-Priority: 3 (Normal)
86+
X-MSMail-Priority: Normal
87+
X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0
88+
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
89+
In-reply-to: <2E7F82FAC1FCD2118E1500A024B3BF907DED3F@exchange.mmp.plzen-city.cz>
90+
Importance: Normal
91+
Sender: owner-pgsql-hackers@postgreSQL.org
92+
Precedence: bulk
93+
Status: RO
94+
95+
> -----Original Message-----
96+
> From: owner-pgsql-hackers@postgreSQL.org
97+
> [mailto:owner-pgsql-hackers@postgreSQL.org]On Behalf Of Horak Daniel
98+
> Sent: Tuesday, August 17, 1999 9:06 PM
99+
> To: 'Tom Lane'
100+
> Cc: 'pgsql-hackers@postgreSQL.org'
101+
> Subject: RE: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
102+
103+
Yutaka Tanida [yutaka@marin.or.jp] and I have examined IPC
104+
library.
105+
106+
We found that postmaster doesn't call exec() after fork() since v6.4.
107+
108+
The value of static/extern variables which cygipc library holds may
109+
be different from their initial values when postmaster fork()s child
110+
backend processes.
111+
112+
I made the following patch for cygipc library on trial.
113+
This patch was effective for Yutaka's test case.
114+
115+
Regards.
116+
117+
Hiroshi Inoue
118+
Inoue@tpf.co.jp
119+
120+
*** sem.c.orig Tue Dec 01 00:16:25 1998
121+
--- sem.c Tue Aug 17 13:22:06 1999
122+
***************
123+
*** 58,63 ****
124+
--- 58,78 ----
125+
static int GFirstSem = 0; /*PCPC*/
126+
static int GFdSem ; /*PCPC*/
127+
128+
+ static pid_t GProcessId = 0;
129+
+
130+
+ static void init_globals(void)
131+
+ {
132+
+ pid_t pid;
133+
+
134+
+ if (pid=getpid(), pid != GProcessId)
135+
+ {
136+
+ GFirstSem = 0;
137+
+ used_sems = used_semids = max_semid = 0;
138+
+ sem_seq = 0;
139+
+ GProcessId = pid;
140+
+ }
141+
+ }
142+
+
143+
/************************************************************************/
144+
/* Demande d'acces a la zone partagee de gestion des semaphores */
145+
/************************************************************************/
146+
***************
147+
*** 77,82 ****
148+
--- 92,98 ----
149+
{
150+
int LRet ;
151+
152+
+ init_globals();
153+
if( GFirstSem == 0 )
154+
{
155+
if( IsGSemSemExist() )
156+
*** shm.c.orig Tue Dec 01 01:04:57 1998
157+
--- shm.c Tue Aug 17 13:22:27 1999
158+
***************
159+
*** 59,64 ****
160+
--- 59,81 ----
161+
static int GFirstShm = 0; /*PCPC*/
162+
static int GFdShm ; /*PCPC*/
163+
164+
+ /*****************************************/
165+
+ /* Initialization of static variables */
166+
+ /*****************************************/
167+
+ static pid_t GProcessId = 0;
168+
+ static void init_globals(void)
169+
+ {
170+
+ pid_t pid;
171+
+
172+
+ if (pid=getpid(), pid != GProcessId)
173+
+ {
174+
+ GFirstShm = 0;
175+
+ shm_rss = shm_swp = max_shmid = 0;
176+
+ shm_seq = 0;
177+
+ GProcessId = pid;
178+
+ }
179+
+ }
180+
+
181+
/************************************************************************/
182+
/* Demande d'acces a la zone partagee de gestion des shm */
183+
/************************************************************************/
184+
***************
185+
*** 82,87 ****
186+
--- 99,105 ----
187+
{
188+
int LRet ;
189+
190+
+ init_globals();
191+
if( GFirstShm == 0 )
192+
{
193+
if( IsGSemShmExist() )
194+
*** msg.c.orig Tue Dec 01 00:16:09 1998
195+
--- msg.c Tue Aug 17 13:20:04 1999
196+
***************
197+
*** 57,62 ****
198+
--- 57,77 ----
199+
static int GFirstMsg = 0; /*PCPC*/
200+
static int GFdMsg ; /*PCPC*/
201+
202+
+ /*****************************************/
203+
+ /* Initialization of static variables */
204+
+ /*****************************************/
205+
+ static pid_t GProcessId = 0;
206+
+ static void init_globals(void)
207+
+ {
208+
+ pid_t pid;
209+
+
210+
+ if (pid=getpid(), pid != GProcessId)
211+
+ {
212+
+ GFirstMsg = 0;
213+
+ msgbytes = msghdrs = msg_seq = used_queues = max_msqid = 0;
214+
+ GProcessId = pid;
215+
+ }
216+
+ }
217+
/************************************************************************/
218+
/* Demande d'acces a la zone partagee de gestion des semaphores */
219+
/************************************************************************/
220+
***************
221+
*** 79,84 ****
222+
--- 94,100 ----
223+
{
224+
int LRet ;
225+
226+
+ init_globals();
227+
if( GFirstMsg == 0 )
228+
{
229+
if( IsGSemMsgExist() )
230+
231+
232+
233+

0 commit comments

Comments
 (0)