Jeff Frost <jeff@pgexperts.com> writes:
>> On Mar 13, 2015, at 9:56 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> strace'ing psql while it exits might be informative.
> Here you go:
> ...
> rename("/var/lib/postgresql/.psql_history", "/var/lib/postgresql/.psql_history-") = -1 ENOENT (No such file or
directory)
> open("/var/lib/postgresql/.psql_history", O_WRONLY|O_CREAT|O_TRUNC, 0600) = 3
> write(3, "select 1;\n", 10) = 10
> close(3) = 0
> unlink("/var/lib/postgresql/.psql_history-") = -1 ENOENT (No such file or directory)
... WTF? That rename() and that unlink() are certainly not coming from
Postgres, and I do not see anything like that in the libedit sources
either. (I'm looking at the libedit-20141030-3.1 version that Fedora
is currently shipping.) That must be coming from some Ubuntu-specific
patch?
> open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
I'm guessing here, but I suspect these calls are coming from strerror()
looking for a translated version of "No such file or directory" --- ie,
at this point the damage is already done and we are trying to report
that we think we've failed.
Short answer seems to be that Ubuntu stuck in a patch that thinks nothing
of clobbering errno during a write_history() call.
regards, tom lane