Re: postmaster.pid

Started by Dave Pageabout 22 years ago6 messagespatches
Jump to latest
#1Dave Page
dpage@pgadmin.org

-----Original Message-----
From: Magnus Hagander [mailto:mha@sollentuna.net]
Sent: 25 August 2004 14:59
To: Tom Lane
Cc: Dave Page; pgsql-hackers-win32@postgresql.org
Subject: RE: [pgsql-hackers-win32] postmaster.pid

Ok, if you say so :-) I had the general impression we wanted
that. But then let's go with the
send-signal-0-down-the-pipe-and-ignore-it-in-the-backend. :-)

Here's the massive 1 byte change required to do just that :-)

Regards, Dave.

===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v
retrieving revision 1.2
diff -u -r1.2 kill.c
--- kill.c	24 Jun 2004 18:53:48 -0000	1.2
+++ kill.c	26 Aug 2004 14:07:49 -0000
@@ -26,7 +26,7 @@
 	BYTE		sigRet = 0;
 	DWORD		bytes;
-	if (sig >= PG_SIGNAL_COUNT || sig <= 0)
+	if (sig >= PG_SIGNAL_COUNT || sig < 0)
 	{
 		errno = EINVAL;
 		return -1;
#2Andrew Dunstan
andrew@dunslane.net
In reply to: Dave Page (#1)
Re: [PATCHES] postmaster.pid

Should we (if only for the sake of completeness) make the converse
one-byte change in port/win32/signal.c?

It says:

void
pg_queue_signal(int signum)
{
if (signum >= PG_SIGNAL_COUNT || signum < 0)
return;
...

ISTM we should not ever queue any event for signal 0.

cheers

andrew

Dave Page wrote:

Show quoted text

-----Original Message-----
From: Magnus Hagander [mailto:mha@sollentuna.net]
Sent: 25 August 2004 14:59
To: Tom Lane
Cc: Dave Page; pgsql-hackers-win32@postgresql.org
Subject: RE: [pgsql-hackers-win32] postmaster.pid

Ok, if you say so :-) I had the general impression we wanted
that. But then let's go with the
send-signal-0-down-the-pipe-and-ignore-it-in-the-backend. :-)

Here's the massive 1 byte change required to do just that :-)

Regards, Dave.

===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v
retrieving revision 1.2
diff -u -r1.2 kill.c
--- kill.c	24 Jun 2004 18:53:48 -0000	1.2
+++ kill.c	26 Aug 2004 14:07:49 -0000
@@ -26,7 +26,7 @@
BYTE		sigRet = 0;
DWORD		bytes;
-	if (sig >= PG_SIGNAL_COUNT || sig <= 0)
+	if (sig >= PG_SIGNAL_COUNT || sig < 0)
{
errno = EINVAL;
return -1;

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

#3Dave Page
dpage@pgadmin.org
In reply to: Andrew Dunstan (#2)
Re: [PATCHES] postmaster.pid

-----Original Message-----
From: Andrew Dunstan [mailto:andrew@dunslane.net]
Sent: 26 August 2004 15:43
To: Dave Page
Cc: Magnus Hagander; Tom Lane;
pgsql-hackers-win32@postgresql.org; PostgreSQL-patches
Subject: Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid

Should we (if only for the sake of completeness) make the
converse one-byte change in port/win32/signal.c?

It says:

void
pg_queue_signal(int signum)
{
if (signum >= PG_SIGNAL_COUNT || signum < 0)
return;
...

ISTM we should not ever queue any event for signal 0.

That was my original intention, however Magnus thought it best just to
let it be queued and subsequently ignored by the backend - thinking
about it 15 minutes later I can't for the life of me think why that's
any better...

Regards, Dave.

Index: backend/port/win32/signal.c
===================================================================
RCS file:
/projects/cvsroot/pgsql-server/src/backend/port/win32/signal.c,v
retrieving revision 1.4
diff -u -r1.4 signal.c
--- backend/port/win32/signal.c	24 Jun 2004 21:02:42 -0000	1.4
+++ backend/port/win32/signal.c	26 Aug 2004 14:58:25 -0000
@@ -162,7 +162,7 @@
 void
 pg_queue_signal(int signum)
 {
-	if (signum >= PG_SIGNAL_COUNT || signum < 0)
+	if (signum >= PG_SIGNAL_COUNT || signum <= 0)
 		return;
 	EnterCriticalSection(&pg_signal_crit_sec);
Index: port/kill.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v
retrieving revision 1.2
diff -u -r1.2 kill.c
--- port/kill.c	24 Jun 2004 18:53:48 -0000	1.2
+++ port/kill.c	26 Aug 2004 14:58:28 -0000
@@ -26,7 +26,7 @@
 	BYTE		sigRet = 0;
 	DWORD		bytes;
-	if (sig >= PG_SIGNAL_COUNT || sig <= 0)
+	if (sig >= PG_SIGNAL_COUNT || sig < 0)
 	{
 		errno = EINVAL;
 		return -1;
#4Magnus Hagander
magnus@hagander.net
In reply to: Dave Page (#3)
Re: [PATCHES] postmaster.pid

Shouldn't be necessary. We can do it, but it makes no real difference
:-) It just ends up queued, but since there is no signal #0, it will
never get dispatched.

But it certainly wouldn't break things to do it either :-)

//Magnus

Show quoted text

Should we (if only for the sake of completeness) make the
converse one-byte change in port/win32/signal.c?

It says:

void
pg_queue_signal(int signum)
{
if (signum >= PG_SIGNAL_COUNT || signum < 0)
return;
...

ISTM we should not ever queue any event for signal 0.

cheers

andrew

Dave Page wrote:

-----Original Message-----
From: Magnus Hagander [mailto:mha@sollentuna.net]
Sent: 25 August 2004 14:59
To: Tom Lane
Cc: Dave Page; pgsql-hackers-win32@postgresql.org
Subject: RE: [pgsql-hackers-win32] postmaster.pid

Ok, if you say so :-) I had the general impression we

wanted that. But

then let's go with the
send-signal-0-down-the-pipe-and-ignore-it-in-the-backend. :-)

Here's the massive 1 byte change required to do just that :-)

Regards, Dave.

===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v
retrieving revision 1.2
diff -u -r1.2 kill.c
--- kill.c	24 Jun 2004 18:53:48 -0000	1.2
+++ kill.c	26 Aug 2004 14:07:49 -0000
@@ -26,7 +26,7 @@
BYTE		sigRet = 0;
DWORD		bytes;
-	if (sig >= PG_SIGNAL_COUNT || sig <= 0)
+	if (sig >= PG_SIGNAL_COUNT || sig < 0)
{
errno = EINVAL;
return -1;

---------------------------(end of
broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to
majordomo@postgresql.org)

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dave Page (#3)
Re: [PATCHES] postmaster.pid

"Dave Page" <dpage@vale-housing.co.uk> writes:

ISTM we should not ever queue any event for signal 0.

That was my original intention, however Magnus thought it best just to
let it be queued and subsequently ignored by the backend - thinking
about it 15 minutes later I can't for the life of me think why that's
any better...

Are there any error cases that we would miss detecting if it didn't go
that far?

regards, tom lane

#6Dave Page
dpage@pgadmin.org
In reply to: Tom Lane (#5)
Re: [PATCHES] postmaster.pid

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: 26 August 2004 16:24
To: Dave Page
Cc: Andrew Dunstan; Magnus Hagander;
pgsql-hackers-win32@postgresql.org; PostgreSQL-patches
Subject: Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid

"Dave Page" <dpage@vale-housing.co.uk> writes:

ISTM we should not ever queue any event for signal 0.

That was my original intention, however Magnus thought it

best just to

let it be queued and subsequently ignored by the backend - thinking
about it 15 minutes later I can't for the life of me think

why that's

any better...

Are there any error cases that we would miss detecting if it
didn't go that far?

None that I can think of. If we managed to open the pipe and get the
zero back, then we've proved the process is there and is postgres.

Regards Dave.