Re: BUG #14287: psql_history gets wiped out

From: Rick Otten <rotten(at)windfish(dot)net>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #14287: psql_history gets wiped out
Date: 2016-08-12 15:13:58
Message-ID: 96ddfae45fe23b4eb77564c0a04f2eeb@www.windfish.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Wouldn't it be better to write the commands to the history file as you
go instead of at the end of the session?

At most you would only need to close the file pointer when you tear down
instead of having to flush the command history (which may be hundreds of
queries).

On 2016-08-12 10:50, Tom Lane wrote:

> Rick Otten <rotten(at)windfish(dot)net> writes:
>
>> And here is what the last few lines of the strace look like when I close the (ssh terminal) window:
>
>> --- SIGHUP {si_signo=SIGHUP, si_code=SI_USER, si_pid=95075, si_uid=5432} --- +++ killed by SIGHUP +++
>
> So the issue seems to be that psql is getting killed by SIGHUP before
> it can write the history file (in this example), or in the midst of
> writing the history file (in your problem cases), depending on timing.
>
> The weird thing here is that psql is able to see EOF on stdin and
> begin taking actions in response to that before SIGHUP arrives.
> I'm not sure if that's expected or not. That seems like a deliberately
> created race condition, which is seldom a good idea.
>
> Anyway it seems like your behavioral change must boil down to a timing
> change in either the kernel or sshd. There's nothing in psql that changed
> in this area, and probably not in libedit either.
>
> We could maybe try to prevent this by blocking signals while writing the
> history file, but I'm not exactly convinced that would be a good idea.
> It's probably be better to pester kernel & sshd people about whether
> they changed anything here.
>
> regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2016-08-12 15:30:52 Re: BUG #14287: psql_history gets wiped out
Previous Message Tom Lane 2016-08-12 14:50:01 Re: BUG #14287: psql_history gets wiped out