exit status 26

Started by Dan Moschukover 25 years ago12 messagesgeneral
Jump to latest
#1Dan Moschuk
dan@freebsd.org

Can someone tell me what a postmaster process exiting with status = 26
means? FWIW, I'm doing a COPY table FROM stdin with about 14 million
records to trigger this.

Thanks,
-Dan
--
Man is a rational animal who always loses his temper when he is called
upon to act in accordance with the dictates of reason.
-- Oscar Wilde

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dan Moschuk (#1)
Re: exit status 26

Dan Moschuk <dan@freebsd.org> writes:

Can someone tell me what a postmaster process exiting with status = 26
means? FWIW, I'm doing a COPY table FROM stdin with about 14 million
records to trigger this.

That means it got a signal 26. Since you didn't mention what platform
you are on, I'm not going to guess what signal that actually is on
your Unix. How about you look in /usr/include/signal.h and/or
/usr/include/sys/signal.h and tell us?

regards, tom lane

#3Dan Moschuk
dan@freebsd.org
In reply to: Tom Lane (#2)
Re: exit status 26

| > Can someone tell me what a postmaster process exiting with status = 26
| > means? FWIW, I'm doing a COPY table FROM stdin with about 14 million
| > records to trigger this.
|
| That means it got a signal 26. Since you didn't mention what platform
| you are on, I'm not going to guess what signal that actually is on
| your Unix. How about you look in /usr/include/signal.h and/or
| /usr/include/sys/signal.h and tell us?

Oh, sorry, for some reason I thought status = exit code.

Signal 26 on FreeBSD is SIGVTARLM.

--
Man is a rational animal who always loses his temper when he is called
upon to act in accordance with the dictates of reason.
-- Oscar Wilde

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dan Moschuk (#3)
Re: exit status 26

Dan Moschuk <dan@freebsd.org> writes:

| > Can someone tell me what a postmaster process exiting with status = 26
| > means? FWIW, I'm doing a COPY table FROM stdin with about 14 million
| > records to trigger this.
|
| That means it got a signal 26.

Oh, sorry, for some reason I thought status = exit code.

Postgres doesn't use exit codes higher than 2, so I'm supposing that the
reported code must be a signal code.

Signal 26 on FreeBSD is SIGVTARLM.

We don't ever set a virtual timer alarm, either. Is it possible that
you are running the postmaster with a ulimit-style limit on total
process runtime?

regards, tom lane

#5Dan Moschuk
dan@freebsd.org
In reply to: Tom Lane (#4)
Re: exit status 26

| > Signal 26 on FreeBSD is SIGVTARLM.
|
| We don't ever set a virtual timer alarm, either. Is it possible that
| you are running the postmaster with a ulimit-style limit on total
| process runtime?

No, I've tested this and postmaster is being started in an unlimited
enviornment.

The code that delivers the actual signal looks like this:

if (CLKF_USERMODE(frame) &&
timevalisset(&pstats->p_timer[ITIMER_VIRTUAL].it_value) &&
itimerdecr(&pstats->p_timer[ITIMER_VIRTUAL], tick) == 0)
psignal(p, SIGVTALRM);

So it is getting a virtual timer from somewhere. A grep of the backend
directory revealed no setitimer() occurances, so I can confirm that it
isn't postmaster doing it. And if the shells environment is unlimited,
which doesn't leave very many culprits left. :/

--
Man is a rational animal who always loses his temper when he is called
upon to act in accordance with the dictates of reason.
-- Oscar Wilde

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dan Moschuk (#5)
Re: exit status 26

Dan Moschuk <dan@freebsd.org> writes:

So it is getting a virtual timer from somewhere. A grep of the backend
directory revealed no setitimer() occurances, so I can confirm that it
isn't postmaster doing it. And if the shells environment is unlimited,
which doesn't leave very many culprits left. :/

Yes. It would be good to question my assumption that the exit code
is a signal --- I can't see what else it could be, but can you run
the backend with a breakpoint set at exit(), and get a backtrace?

regards, tom lane

#7Dan Moschuk
dan@freebsd.org
In reply to: Tom Lane (#6)
Re: exit status 26

| > So it is getting a virtual timer from somewhere. A grep of the backend
| > directory revealed no setitimer() occurances, so I can confirm that it
| > isn't postmaster doing it. And if the shells environment is unlimited,
| > which doesn't leave very many culprits left. :/
|
| Yes. It would be good to question my assumption that the exit code
| is a signal --- I can't see what else it could be, but can you run
| the backend with a breakpoint set at exit(), and get a backtrace?

Unfortunately, after upgrading the machine to 4.2-RELEASE, I cannot reproduce
this problem any longer. :/

If anyone has a 4.1-RELEASE machine kicking around, I'd love to be able
to try and track this down further.

-Dan
--
Man is a rational animal who always loses his temper when he is called
upon to act in accordance with the dictates of reason.
-- Oscar Wilde

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dan Moschuk (#7)
FreeBSDers paying attention? (was Re: exit status 26)

Dan Moschuk <dan@freebsd.org> writes:

| > So it is getting a virtual timer from somewhere. A grep of the backend
| > directory revealed no setitimer() occurances, so I can confirm that it
| > isn't postmaster doing it. And if the shells environment is unlimited,
| > which doesn't leave very many culprits left. :/
|
| Yes. It would be good to question my assumption that the exit code
| is a signal --- I can't see what else it could be, but can you run
| the backend with a breakpoint set at exit(), and get a backtrace?

Unfortunately, after upgrading the machine to 4.2-RELEASE, I cannot reproduce
this problem any longer. :/

If anyone has a 4.1-RELEASE machine kicking around, I'd love to be able
to try and track this down further.

I know we've got plenty of FreeBSD people on this list; surely someone
can lend you an account on a 4.1 machine. I changed the Subject: line
just to get the right peoples' attention ...

regards, tom lane

#9Jim Mercer
jim@reptiles.org
In reply to: Tom Lane (#8)
Re: FreeBSDers paying attention? (was Re: exit status 26)

On Fri, Jan 12, 2001 at 03:49:36PM -0500, Tom Lane wrote:

If anyone has a 4.1-RELEASE machine kicking around, I'd love to be able
to try and track this down further.

I know we've got plenty of FreeBSD people on this list; surely someone
can lend you an account on a 4.1 machine. I changed the Subject: line
just to get the right peoples' attention ...

i have a 4.1-STABLE circa Sep-12-2000

--
[ Jim Mercer jim@pneumonoultramicroscopicsilicovolcanoconiosis.ca ]
[ Reptilian Research -- Longer Life through Colder Blood ]
[ aka jim@reptiles.org +1 416 410-5633 ]

#10Alfred Perlstein
bright@wintelcom.net
In reply to: Tom Lane (#8)
Re: FreeBSDers paying attention? (was Re: exit status 26)

* Tom Lane <tgl@sss.pgh.pa.us> [010112 12:54] wrote:

Dan Moschuk <dan@freebsd.org> writes:

| > So it is getting a virtual timer from somewhere. A grep of the backend
| > directory revealed no setitimer() occurances, so I can confirm that it
| > isn't postmaster doing it. And if the shells environment is unlimited,
| > which doesn't leave very many culprits left. :/
|
| Yes. It would be good to question my assumption that the exit code
| is a signal --- I can't see what else it could be, but can you run
| the backend with a breakpoint set at exit(), and get a backtrace?

Unfortunately, after upgrading the machine to 4.2-RELEASE, I cannot reproduce
this problem any longer. :/

If anyone has a 4.1-RELEASE machine kicking around, I'd love to be able
to try and track this down further.

I know we've got plenty of FreeBSD people on this list; surely someone
can lend you an account on a 4.1 machine. I changed the Subject: line
just to get the right peoples' attention ...

If the bug seems to be in FreeBSD 4.1 and fixed in 4.2 I don't see
the point of you trying to track down a bad interaction between the
host OS and Postgresql for an older release.

--
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."

#11Dan Moschuk
dan@freebsd.org
In reply to: Alfred Perlstein (#10)
Re: FreeBSDers paying attention? (was Re: exit status 26)

| > I know we've got plenty of FreeBSD people on this list; surely someone
| > can lend you an account on a 4.1 machine. I changed the Subject: line
| > just to get the right peoples' attention ...
|
| If the bug seems to be in FreeBSD 4.1 and fixed in 4.2 I don't see
| the point of you trying to track down a bad interaction between the
| host OS and Postgresql for an older release.

Because I'd like to verify that it was in fact a bug with 4.1 and not
something else.

--
Man is a rational animal who always loses his temper when he is called
upon to act in accordance with the dictates of reason.
-- Oscar Wilde

#12Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dan Moschuk (#11)
Re: FreeBSDers paying attention? (was Re: exit status 26)

Dan Moschuk <dan@freebsd.org> writes:

| If the bug seems to be in FreeBSD 4.1 and fixed in 4.2 I don't see
| the point of you trying to track down a bad interaction between the
| host OS and Postgresql for an older release.

Because I'd like to verify that it was in fact a bug with 4.1 and not
something else.

Even if it is a since-fixed 4.1 bug, there are doubtless still people
out there running 4.1, to say nothing of other *BSD and less-closely-
related Unixen that may have the same or similar bug. If Dan can
isolate the problem and identify a reasonable workaround, we should
probably put the workaround into Postgres.

regards, tom lane