Hello,
I'm the maintainer of PostgreSQL on OpenBSD.
Today I tried the beta1 of PostgreSQL 11 on OpenBSD -current @amd64.
Without JIT, everything works fine.
When i enable JIT, regress tests fail with this error :
indexing ... FAILED (test process exited with exit code 2)
llvm-config --version gives me : 6.0.0
You will find in attachment the complete log of the failure (regressions.diff).
At the end, there is these 2 lines :
! WARNING: failed to resolve name __guard_local
! FATAL: fatal llvm error: Program used external function '__guard_local'
which could not be resolved!
Any ideas ?
Thanks.
Regards,
***
/usr/ports/pobj/postgresql-11beta1/postgresql-11beta1/src/test/regress/expected/indexing.out
Mon May 21 23:08:10 2018
---
/usr/ports/pobj/postgresql-11beta1/postgresql-11beta1/src/test/regress/results/indexing.out
Thu May 24 17:59:15 2018
***************
*** 1101,1339 ****
insert into fastpath select y.x, 'b' || (y.x/10)::text, 100 from (select
generate_series(1,10000) as x) y;
select md5(string_agg(a::text, b order by a, b asc)) from fastpath
where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! select md5(string_agg(a::text, b order by a desc, b desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 6167a852b3e0679886b84a5405b5b53d
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! dfcf2bd5e5fea8397d47b2fd14618d31
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! -- now create a multi-column index with both column asc
! create index fpindex2 on fastpath(a, b);
! truncate fastpath;
! insert into fastpath select y.x, 'b' || (y.x/10)::text, 100 from (select
generate_series(1,10000) as x) y;
! -- again, vacuum here either forces index-only scans or creates fuzziness
! vacuum fastpath;
! select md5(string_agg(a::text, b order by a, b asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! select md5(string_agg(a::text, b order by a desc, b desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 6167a852b3e0679886b84a5405b5b53d
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! dfcf2bd5e5fea8397d47b2fd14618d31
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! -- same queries with a different kind of index now. the final result must not
! -- change irrespective of what kind of index we have.
! drop index fpindex2;
! create index fpindex3 on fastpath(a desc, b asc);
! truncate fastpath;
! insert into fastpath select y.x, 'b' || (y.x/10)::text, 100 from (select
generate_series(1,10000) as x) y;
! vacuum fastpath;
! select md5(string_agg(a::text, b order by a, b asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! select md5(string_agg(a::text, b order by a desc, b desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 6167a852b3e0679886b84a5405b5b53d
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! dfcf2bd5e5fea8397d47b2fd14618d31
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! -- repeat again
! drop index fpindex3;
! create index fpindex4 on fastpath(a asc, b desc);
! truncate fastpath;
! insert into fastpath select y.x, 'b' || (y.x/10)::text, 100 from (select
generate_series(1,10000) as x) y;
! vacuum fastpath;
! select md5(string_agg(a::text, b order by a, b asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! select md5(string_agg(a::text, b order by a desc, b desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 6167a852b3e0679886b84a5405b5b53d
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! dfcf2bd5e5fea8397d47b2fd14618d31
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! -- and again, this time indexing by (b, a). Note that column "b" has
non-unique
! -- values.
! drop index fpindex4;
! create index fpindex5 on fastpath(b asc, a desc);
! truncate fastpath;
! insert into fastpath select y.x, 'b' || (y.x/10)::text, 100 from (select
generate_series(1,10000) as x) y;
! vacuum fastpath;
! select md5(string_agg(a::text, b order by a, b asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! select md5(string_agg(a::text, b order by a desc, b desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 6167a852b3e0679886b84a5405b5b53d
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! dfcf2bd5e5fea8397d47b2fd14618d31
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! -- one last time
! drop index fpindex5;
! create index fpindex6 on fastpath(b desc, a desc);
! truncate fastpath;
! insert into fastpath select y.x, 'b' || (y.x/10)::text, 100 from (select
generate_series(1,10000) as x) y;
! vacuum fastpath;
! select md5(string_agg(a::text, b order by a, b asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! select md5(string_agg(a::text, b order by a desc, b desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 6167a852b3e0679886b84a5405b5b53d
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a desc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! dfcf2bd5e5fea8397d47b2fd14618d31
! (1 row)
!
! select md5(string_agg(a::text, b order by b, a asc)) from fastpath
! where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! md5
! ----------------------------------
! 2ca216010a558a52d7df12f76dfc77ab
! (1 row)
!
! drop table fastpath;
! -- intentionally leave some objects around
! create table idxpart (a int) partition by range (a);
! create table idxpart1 partition of idxpart for values from (0) to (100);
! create table idxpart2 partition of idxpart for values from (100) to (1000)
! partition by range (a);
! create table idxpart21 partition of idxpart2 for values from (100) to (200);
! create table idxpart22 partition of idxpart2 for values from (200) to (300);
! create index on idxpart22 (a);
! create index on only idxpart2 (a);
! alter index idxpart2_a_idx attach partition idxpart22_a_idx;
! create index on idxpart (a);
! create table idxpart_another (a int, b int, primary key (a, b)) partition by
range (a);
! create table idxpart_another_1 partition of idxpart_another for values from
(0) to (100);
! -- Test that covering partitioned indexes work in various cases
! create table covidxpart (a int, b int) partition by list (a);
! create unique index on covidxpart (a) include (b);
! create table covidxpart1 partition of covidxpart for values in (1);
! create table covidxpart2 partition of covidxpart for values in (2);
! insert into covidxpart values (1, 1);
! insert into covidxpart values (1, 1);
! ERROR: duplicate key value violates unique constraint "covidxpart1_a_b_idx"
! DETAIL: Key (a)=(1) already exists.
! create table covidxpart3 (b int, c int, a int);
! alter table covidxpart3 drop c;
! alter table covidxpart attach partition covidxpart3 for values in (3);
! insert into covidxpart values (3, 1);
! insert into covidxpart values (3, 1);
! ERROR: duplicate key value violates unique constraint "covidxpart3_a_b_idx"
! DETAIL: Key (a)=(3) already exists.
! create table covidxpart4 (b int, a int);
! create unique index on covidxpart4 (a) include (b);
! create unique index on covidxpart4 (a);
! alter table covidxpart attach partition covidxpart4 for values in (4);
! insert into covidxpart values (4, 1);
! insert into covidxpart values (4, 1);
! ERROR: duplicate key value violates unique constraint "covidxpart4_a_b_idx"
! DETAIL: Key (a)=(4) already exists.
--- 1101,1109 ----
insert into fastpath select y.x, 'b' || (y.x/10)::text, 100 from (select
generate_series(1,10000) as x) y;
select md5(string_agg(a::text, b order by a, b asc)) from fastpath
where a >= 1000 and a < 2000 and b > 'b1' and b < 'b3';
! WARNING: failed to resolve name __guard_local
! FATAL: fatal llvm error: Program used external function '__guard_local'
which could not be resolved!
! server closed the connection unexpectedly
! This probably means the server terminated abnormally
! before or while processing the request.
! connection to server was lost
======================================================================