What is "return code" for WAL send command

Started by zhong ming wuover 15 years ago8 messagesgeneral
Jump to latest
#1zhong ming wu
mr.z.m.wu@gmail.com

Hello

I have a master PG 8.1.11 sending WAL files to a cold-standby using rsync

For some reason it failed recently with "return codes 32512" and I couldn't
find this num. as a valid rsync exit code

During the time that the error was going on I tried the rsync command
manually and didn't error

Can someone tell me what kind if error is 32512

Thanks

Mr. Wu

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: zhong ming wu (#1)
Re: What is "return code" for WAL send command

zhong ming wu <mr.z.m.wu@gmail.com> writes:

I have a master PG 8.1.11 sending WAL files to a cold-standby using rsync

For some reason it failed recently with "return codes 32512" and I couldn't
find this num. as a valid rsync exit code

During the time that the error was going on I tried the rsync command
manually and didn't error

Can someone tell me what kind if error is 32512

A more recent version of Postgres would break that down for you: it
means the subprocess exited with exit(127). A look in the shell
man page suggests this is a "command not found" failure. Maybe
there's something flaky about where you have rsync mounted?

regards, tom lane

#3zhong ming wu
mr.z.m.wu@gmail.com
In reply to: Tom Lane (#2)
Re: What is "return code" for WAL send command

On Sat, Oct 23, 2010 at 11:48 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

A more recent version of Postgres would break that down for you: it
means the subprocess exited with exit(127).  A look in the shell
man page suggests this is a "command not found" failure.  Maybe
there's something flaky about where you have rsync mounted?

                       regards, tom lane

Thanks for the reply.

postgres user has both rsync and ssh in its path but is it possible
that it is not using $PATH ?

One other thing is that just before the error the postgres was
restarted by other admin with rc.d/postgresql command
instead of pg_ctl which is what I normally use. Perhaps
rc.d/postgresql command does not work well with WAL sending command?

But just to be on the safe side I am changing postgresql.conf with
absolute path to rsync as WAL sending command.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: zhong ming wu (#3)
Re: What is "return code" for WAL send command

zhong ming wu <mr.z.m.wu@gmail.com> writes:

postgres user has both rsync and ssh in its path but is it possible
that it is not using $PATH ?

One other thing is that just before the error the postgres was
restarted by other admin with rc.d/postgresql command
instead of pg_ctl which is what I normally use. Perhaps
rc.d/postgresql command does not work well with WAL sending command?

I'd bet that the other way failed to start the postmaster with the
expected value of $PATH. Take a close look at the script and see
if it causes postgres' login environment to be installed or not
(ie, su -l not just su).

regards, tom lane

#5Fredric Fredricson
Fredric.Fredricson@bonetmail.com
In reply to: zhong ming wu (#1)
Re: What is "return code" for WAL send command

On 10/23/2010 02:01 PM, zhong ming wu wrote:

Hello

I have a master PG 8.1.11 sending WAL files to a cold-standby using rsync

For some reason it failed recently with "return codes 32512" and I
couldn't find this num. as a valid rsync exit code

During the time that the error was going on I tried the rsync command
manually and didn't error

I guess you have fallen into the common pitfall that cron does not read
bash ini files and does not set the $PATH variable. If you want your
scripts to be run by cron you must make them independent of $PATH and
other variables set by .bashrc etc.

My $.02.
/Fredric

Show quoted text

Can someone tell me what kind if error is 32512

Thanks

Mr. Wu

#6David W Noon
dwnoon@ntlworld.com
In reply to: Fredric Fredricson (#5)
Re: What is "return code" for WAL send command

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, 25 Oct 2010 09:49:02 +0200, Fredric Fredricson wrote abour Re:
[GENERAL] What is "return code" for WAL send command:

On 10/23/2010 02:01 PM, zhong ming wu wrote:

[snip]

For some reason it failed recently with "return codes 32512" and I
couldn't find this num. as a valid rsync exit code

During the time that the error was going on I tried the rsync
command manually and didn't error

I guess you have fallen into the common pitfall that cron does not
read bash ini files and does not set the $PATH variable. If you want
your scripts to be run by cron you must make them independent of $PATH
and other variables set by .bashrc etc.

One can also specify environment variables at the top of the crontab.
This overcomes the issue of cron jobs not reading /etc/profile and
other start-up scripts that are processed by a normal login shell. For
example, here is my personal crontab:

# Establish environment variables.
JAVA_HOME='/etc/java-config-2/current-system-vm'
PATH="/home/dwn/bin:/usr/local/bin:/bin:/usr/bin:/opt/bin:/etc/java-config-2/current-system-vm/bin:/etc/java-config-2/current-system-vm/jre/bin"
TMPDIR='/tmp'
HOME='/home/dwn'
SHELL='/bin/zsh'
LOGNAME='dwn'
LC_ALL='en_GB.UTF-8'
http_proxy='http://webproxy.local:8080&#39;
ftp_proxy='http://webproxy.local:8080&#39;
RSYNC_PROXY='webproxy.local:8080'
CC='gcc'
CXX='g++'

# Set our priority level.
!nice(4)

# Each morning run a scan of our home directory for backup files.
%daily 30 20 find "$HOME/" \( -name \*~ -o -iname \*.bak \) -print
- -delete

# Clean out the work directory for Lazarus.
%daily 18 05 cd "$HOME/Lazarus_projects/tmp/" && for fn in *(N); do rm
- -rf "$fn"; done

# Clean out the cache subdirectories under $HOME.
%daily 28 07 cache_clean.zsh

As you can see, it establishes all the most common environment variables
before any cron job starts.
- --
Regards,

Dave [RLU #314465]
======================================================================
dwnoon@ntlworld.com (David W Noon)
======================================================================
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)

iEYEARECAAYFAkzFZ7QACgkQRQ2Fs59Psv/JBwCeKRUID/cE4roMbduG2I345evk
hiwAn3ohd2+2FxkVEwkeVuV/Q6eJpixd
=w68f
-----END PGP SIGNATURE-----

#7Fredric Fredricson
Fredric.Fredricson@bonetmail.com
In reply to: David W Noon (#6)
Re: What is "return code" for WAL send command

On 10/25/2010 01:19 PM, David W Noon wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, 25 Oct 2010 09:49:02 +0200, Fredric Fredricson wrote abour Re:
[GENERAL] What is "return code" for WAL send command:

On 10/23/2010 02:01 PM, zhong ming wu wrote:

[snip]

For some reason it failed recently with "return codes 32512" and I
couldn't find this num. as a valid rsync exit code

During the time that the error was going on I tried the rsync
command manually and didn't error

I guess you have fallen into the common pitfall that cron does not
read bash ini files and does not set the $PATH variable. If you want
your scripts to be run by cron you must make them independent of $PATH
and other variables set by .bashrc etc.

One can also specify environment variables at the top of the crontab.
This overcomes the issue of cron jobs not reading /etc/profile and
other start-up scripts that are processed by a normal login shell. For
example, here is my personal crontab:

Ah, yes of course, It was a while ago I played with cron.
"man 5 crontab" is also a good command to know, or
"info crontab" if you prefer those modern inventions.

/Fredric

#8zhong ming wu
mr.z.m.wu@gmail.com
In reply to: Fredric Fredricson (#7)
Re: What is "return code" for WAL send command

On Mon, Oct 25, 2010 at 1:58 PM, Fredric Fredricson
<Fredric.Fredricson@bonetmail.com> wrote:

 On 10/25/2010 01:19 PM, David W Noon wrote:

Ah, yes of course, It was a while ago I played with cron.
"man 5 crontab" is also a good command to know, or
"info crontab" if you prefer those modern inventions.

This is nothing to do with cron since postgresql is started manually.

Also no mention is made of cron in my original post.