Re: psql -c tends to core dump if interrupted - Mailing list pgsql-bugs

From Tom Lane
Subject Re: psql -c tends to core dump if interrupted
Date
Msg-id 12352.985293673@sss.pgh.pa.us
Whole thread Raw
In response to psql -c tends to core dump if interrupted  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
I said:
> In current sources, try the following:
> while true; do
> psql -c "checkpoint" yourdb
> done

> (any SQL command will do, it needn't be a checkpoint)

> Press control-C while it's cycling.  A fair fraction of the time
> I get a SEGV coredump from psql.

Ah, I think I see the problem: if SIGINT is received before cancelConn
has been set, handle_sigint will do siglongjmp(main_loop_jmp, 1) ...
and the longjmp buffer is never set up in this control path.

Seems like there needs to be a main_loop_jmp_ready flag to prevent
an attempted siglongjmp before the buffer is set.  Or perhaps don't
establish the signal handler until main_loop_jmp is valid?

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: psql -c tends to core dump if interrupted
Next
From: Tom Lane
Date:
Subject: Re: psql core dump on login