Re: Tom Lane 2017-08-13 <[email protected]>
> I suspect you could work around this with
>
> bool isCompleteQuery = (context <= PROCESS_UTILITY_QUERY);
> - bool needCleanup;
> + volatile bool needCleanup;
> bool commandCollected = false;
>
> If that fixes it, it's definitely a compiler bug. That function does
> not change needCleanup after the sigsetjmp call, so per POSIX it
> should not have to label the variable volatile. This is far from
> being the first such bug we've seen though.
In the meantime, gcc-7 is at version 7.2.0-1, so I gave 9.6 on
mips64el a new try. It's still failing at initdb time, and indeed
adding "volatile" makes initdb proceed, but then the rest of the
testsuite fails in various ways:
DETAIL: Failed process was running: CREATE TABLE enumtest_child (parent
rainbow REFERENCES enumtest_parent);
DETAIL: Failed process was running: create table trigtest2 (i int references
trigtest(i) on delete cascade);
DETAIL: Failed process was running: CREATE TABLE trunc_b (a int REFERENCES
truncate_a);
DETAIL: Failed process was running: CREATE SCHEMA evttrig
CREATE TABLE one (col_a SERIAL PRIMARY KEY, col_b text DEFAULT
'forty two')
CREATE INDEX one_idx ON one (col_b)
CREATE TABLE two (col_c INTEGER CHECK (col_c > 0) REFERENCES
one DEFAULT 42);
Hopefully the compiler gets fixed soonish on mips64el...
Thanks for the analysis,
Christoph
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers