pg.ddx.io pgsql-bugs@postgresql.org mailing list archive
help / color / mirror / Atom feedJIT crash introduced by 6185c9737c with LLVM 14
8+ messages / 5 participants
[nested] [flat]
* JIT crash introduced by 6185c9737c with LLVM 14
@ 2024-06-14 04:25 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
0 siblings, 1 reply; 8+ messages in thread
From: Jeff Davis @ 2024-06-14 04:25 UTC (permalink / raw)
To: pgsql-bugs; +Cc: Amit Langote <amitlan@postgresql.org>
The following query causes a crash on an optimized build using LLVM 14:
create table t(i int);
set jit_above_cost=0;
select count(*) from t;
I bisected the crash to 6185c9737c.
Regards,
Jeff Davis
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: JIT crash introduced by 6185c9737c with LLVM 14
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
@ 2024-06-14 05:57 ` Amit Langote <amitlangote09@gmail.com>
2024-06-17 09:32 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
0 siblings, 1 reply; 8+ messages in thread
From: Amit Langote @ 2024-06-14 05:57 UTC (permalink / raw)
To: Jeff Davis <jeff@j-davis.com>; +Cc: pgsql-bugs@postgresql.org, Amit Langote <amitlan@postgresql.org>
Hi Jeff,
On Fri, Jun 14, 2024 at 1:25 PM Jeff Davis <jeff@j-davis.com> wrot>
> The following query causes a crash on an optimized build using LLVM 14:
>
> create table t(i int);
> set jit_above_cost=0;
> select count(*) from t;
>
> I bisected the crash to 6185c9737c.
Thanks for the report. Will look into it.
--
Thanks, Amit Langote
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: JIT crash introduced by 6185c9737c with LLVM 14
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
@ 2024-06-17 09:32 ` Amit Langote <amitlangote09@gmail.com>
2024-06-18 06:11 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
0 siblings, 1 reply; 8+ messages in thread
From: Amit Langote @ 2024-06-17 09:32 UTC (permalink / raw)
To: Jeff Davis <jeff@j-davis.com>; +Cc: pgsql-bugs@postgresql.org, Amit Langote <amitlan@postgresql.org>
Hi Jeff,
On Fri, Jun 14, 2024 at 2:57 PM Amit Langote <amitlangote09@gmail.com> wrote:
> On Fri, Jun 14, 2024 at 1:25 PM Jeff Davis <jeff@j-davis.com> wrot>
> > The following query causes a crash on an optimized build using LLVM 14:
> >
> > create table t(i int);
> > set jit_above_cost=0;
> > select count(*) from t;
> >
> > I bisected the crash to 6185c9737c.
>
> Thanks for the report. Will look into it.
Would you please share more details about the crash (llvm build
attributes, etc.) as I'm unable to reproduce this crash with
libLLVM-14.so that I built from sources that I got at [1]. No luck
even after building with -DLLVM_ENABLE_ASSERTIONS=ON. I'm building PG
HEAD with --buildtype=release.
--
Thanks, Amit Langote
[1] https://github.com/llvm/llvm-project/releases/tag/llvmorg-14.0.6
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: JIT crash introduced by 6185c9737c with LLVM 14
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-17 09:32 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
@ 2024-06-18 06:11 ` Amit Langote <amitlangote09@gmail.com>
2024-06-18 15:20 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <pgsql@j-davis.com>
0 siblings, 1 reply; 8+ messages in thread
From: Amit Langote @ 2024-06-18 06:11 UTC (permalink / raw)
To: Jeff Davis <jeff@j-davis.com>; +Cc: pgsql-bugs@postgresql.org, Amit Langote <amitlan@postgresql.org>
Hi,
On Mon, Jun 17, 2024 at 6:32 PM Amit Langote <amitlangote09@gmail.com> wrote:
> Hi Jeff,
>
> On Fri, Jun 14, 2024 at 2:57 PM Amit Langote <amitlangote09@gmail.com> wrote:
> > On Fri, Jun 14, 2024 at 1:25 PM Jeff Davis <jeff@j-davis.com> wrot>
> > > The following query causes a crash on an optimized build using LLVM 14:
> > >
> > > create table t(i int);
> > > set jit_above_cost=0;
> > > select count(*) from t;
> > >
> > > I bisected the crash to 6185c9737c.
> >
> > Thanks for the report. Will look into it.
>
> Would you please share more details about the crash (llvm build
> attributes, etc.) as I'm unable to reproduce this crash with
> libLLVM-14.so that I built from sources that I got at [1]. No luck
> even after building with -DLLVM_ENABLE_ASSERTIONS=ON. I'm building PG
> HEAD with --buildtype=release.
Also, could you please check if the crash still occurs after applying
the attached patch which removes the changes that 6185c9737c made to
files under src/backend/jit?
(My colleague David Rowley offered to test it on a raspberrypi and on
a x86_64 machine with libLLVM-14.so, but sees no crash using those
steps.)
--
Thanks, Amit Langote
Attachments:
v1-0001-SQL-JSON-Remove-src-backend-jit-changes-for-testi.patch (application/octet-stream, 4.5K) download
From 9a9390fe591929b3b8cb07ff6abc8eb672877a33 Mon Sep 17 00:00:00 2001
From: Amit Langote <amitlan@postgresql.org>
Date: Tue, 18 Jun 2024 14:09:38 +0900
Subject: [PATCH v1] SQL/JSON: Remove src/backend/jit changes for testing
---
src/backend/jit/llvm/llvmjit_expr.c | 108 ---------------------------
src/backend/jit/llvm/llvmjit_types.c | 3 -
2 files changed, 111 deletions(-)
diff --git a/src/backend/jit/llvm/llvmjit_expr.c b/src/backend/jit/llvm/llvmjit_expr.c
index 9e0efd2668..2a7d84f046 100644
--- a/src/backend/jit/llvm/llvmjit_expr.c
+++ b/src/backend/jit/llvm/llvmjit_expr.c
@@ -1930,114 +1930,6 @@ llvm_compile_expr(ExprState *state)
LLVMBuildBr(b, opblocks[opno + 1]);
break;
- case EEOP_JSONEXPR_PATH:
- {
- JsonExprState *jsestate = op->d.jsonexpr.jsestate;
- LLVMValueRef v_ret;
-
- /*
- * Call ExecEvalJsonExprPath(). It returns the address of
- * the step to perform next.
- */
- v_ret = build_EvalXFunc(b, mod, "ExecEvalJsonExprPath",
- v_state, op, v_econtext);
-
- /*
- * Build a switch to map the return value (v_ret above),
- * which is a runtime value of the step address to perform
- * next, to either jump_empty, jump_error,
- * jump_eval_coercion, or jump_end.
- */
- if (jsestate->jump_empty >= 0 ||
- jsestate->jump_error >= 0 ||
- jsestate->jump_eval_coercion >= 0)
- {
- LLVMValueRef v_jump_empty;
- LLVMValueRef v_jump_error;
- LLVMValueRef v_jump_coercion;
- LLVMValueRef v_switch;
- LLVMBasicBlockRef b_done,
- b_empty,
- b_error,
- b_coercion;
-
- b_empty =
- l_bb_before_v(opblocks[opno + 1],
- "op.%d.jsonexpr_empty", opno);
- b_error =
- l_bb_before_v(opblocks[opno + 1],
- "op.%d.jsonexpr_error", opno);
- b_coercion =
- l_bb_before_v(opblocks[opno + 1],
- "op.%d.jsonexpr_coercion", opno);
- b_done =
- l_bb_before_v(opblocks[opno + 1],
- "op.%d.jsonexpr_done", opno);
-
- v_switch = LLVMBuildSwitch(b,
- v_ret,
- b_done,
- 3);
- /* Returned jsestate->jump_empty? */
- if (jsestate->jump_empty >= 0)
- {
- v_jump_empty = l_int32_const(lc, jsestate->jump_empty);
- LLVMAddCase(v_switch, v_jump_empty, b_empty);
- }
- /* ON EMPTY code */
- LLVMPositionBuilderAtEnd(b, b_empty);
- if (jsestate->jump_empty >= 0)
- LLVMBuildBr(b, opblocks[jsestate->jump_empty]);
- else
- LLVMBuildUnreachable(b);
-
- /* Returned jsestate->jump_error? */
- if (jsestate->jump_error >= 0)
- {
- v_jump_error = l_int32_const(lc, jsestate->jump_error);
- LLVMAddCase(v_switch, v_jump_error, b_error);
- }
- /* ON ERROR code */
- LLVMPositionBuilderAtEnd(b, b_error);
- if (jsestate->jump_error >= 0)
- LLVMBuildBr(b, opblocks[jsestate->jump_error]);
- else
- LLVMBuildUnreachable(b);
-
- /* Returned jsestate->jump_eval_coercion? */
- if (jsestate->jump_eval_coercion >= 0)
- {
- v_jump_coercion = l_int32_const(lc, jsestate->jump_eval_coercion);
- LLVMAddCase(v_switch, v_jump_coercion, b_coercion);
- }
- /* coercion_expr code */
- LLVMPositionBuilderAtEnd(b, b_coercion);
- if (jsestate->jump_eval_coercion >= 0)
- LLVMBuildBr(b, opblocks[jsestate->jump_eval_coercion]);
- else
- LLVMBuildUnreachable(b);
-
- LLVMPositionBuilderAtEnd(b, b_done);
- }
-
- LLVMBuildBr(b, opblocks[jsestate->jump_end]);
- break;
- }
-
- case EEOP_JSONEXPR_COERCION:
- build_EvalXFunc(b, mod, "ExecEvalJsonCoercion",
- v_state, op, v_econtext);
-
- LLVMBuildBr(b, opblocks[opno + 1]);
- break;
-
- case EEOP_JSONEXPR_COERCION_FINISH:
- build_EvalXFunc(b, mod, "ExecEvalJsonCoercionFinish",
- v_state, op);
-
- LLVMBuildBr(b, opblocks[opno + 1]);
- break;
-
case EEOP_AGGREF:
{
LLVMValueRef v_aggno;
diff --git a/src/backend/jit/llvm/llvmjit_types.c b/src/backend/jit/llvm/llvmjit_types.c
index f93c383fd5..7d7aeee1f2 100644
--- a/src/backend/jit/llvm/llvmjit_types.c
+++ b/src/backend/jit/llvm/llvmjit_types.c
@@ -173,9 +173,6 @@ void *referenced_functions[] =
ExecEvalXmlExpr,
ExecEvalJsonConstructor,
ExecEvalJsonIsPredicate,
- ExecEvalJsonCoercion,
- ExecEvalJsonCoercionFinish,
- ExecEvalJsonExprPath,
MakeExpandedObjectReadOnlyInternal,
slot_getmissingattrs,
slot_getsomeattrs_int,
--
2.43.0
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: JIT crash introduced by 6185c9737c with LLVM 14
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-17 09:32 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-18 06:11 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
@ 2024-06-18 15:20 ` Jeff Davis <pgsql@j-davis.com>
2024-06-18 23:03 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Thomas Munro <thomas.munro@gmail.com>
0 siblings, 1 reply; 8+ messages in thread
From: Jeff Davis @ 2024-06-18 15:20 UTC (permalink / raw)
To: Amit Langote <amitlangote09@gmail.com>; +Cc: pgsql-bugs@postgresql.org, Amit Langote <amitlan@postgresql.org>
On Tue, 2024-06-18 at 15:11 +0900, Amit Langote wrote:
> Also, could you please check if the crash still occurs after applying
> the attached patch which removes the changes that 6185c9737c made to
> files under src/backend/jit?
>
> (My colleague David Rowley offered to test it on a raspberrypi and on
> a x86_64 machine with libLLVM-14.so, but sees no crash using those
> steps.)
My testcase was wrong because I was installing into the same
destination directory each time when bisecting (that shortcut normally
works but can cause problems with LLVM changes). When I install into a
fresh directory, it works.
There may (or may not) have been some bug in my original larger case,
but I'll have to re-investigate, and in any case I don't think your
commit was a problem.
Regards,
Jeff Davis
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: JIT crash introduced by 6185c9737c with LLVM 14
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-17 09:32 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-18 06:11 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-18 15:20 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <pgsql@j-davis.com>
@ 2024-06-18 23:03 ` Thomas Munro <thomas.munro@gmail.com>
2024-06-18 23:52 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Michael Paquier <michael@paquier.xyz>
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Munro @ 2024-06-18 23:03 UTC (permalink / raw)
To: Jeff Davis <pgsql@j-davis.com>; +Cc: Amit Langote <amitlangote09@gmail.com>; pgsql-bugs@postgresql.org, Amit Langote <amitlan@postgresql.org>
On Wed, Jun 19, 2024 at 3:20 AM Jeff Davis <pgsql@j-davis.com> wrote:
> There may (or may not) have been some bug in my original larger case,
> but I'll have to re-investigate, and in any case I don't think your
> commit was a problem.
There are some unresolved reports of crashes on ARM CPUs using LLVM 14
in particular. What is your CPU?
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: JIT crash introduced by 6185c9737c with LLVM 14
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-17 09:32 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-18 06:11 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-18 15:20 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <pgsql@j-davis.com>
2024-06-18 23:03 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Thomas Munro <thomas.munro@gmail.com>
@ 2024-06-18 23:52 ` Michael Paquier <michael@paquier.xyz>
2024-06-19 00:09 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
0 siblings, 1 reply; 8+ messages in thread
From: Michael Paquier @ 2024-06-18 23:52 UTC (permalink / raw)
To: Thomas Munro <thomas.munro@gmail.com>; +Cc: Jeff Davis <pgsql@j-davis.com>; Amit Langote <amitlangote09@gmail.com>; pgsql-bugs@postgresql.org, Amit Langote <amitlan@postgresql.org>
On Wed, Jun 19, 2024 at 11:03:11AM +1200, Thomas Munro wrote:
> On Wed, Jun 19, 2024 at 3:20 AM Jeff Davis <pgsql@j-davis.com> wrote:
>> There may (or may not) have been some bug in my original larger case,
>> but I'll have to re-investigate, and in any case I don't think your
>> commit was a problem.
Okay, for now I have removed Amit's name as owner of this open item.
> There are some unresolved reports of crashes on ARM CPUs using LLVM 14
> in particular. What is your CPU?
But it looks like we still have something new to v17 in this case, so
the item it still around, pending more investigation.
--
Michael
Attachments:
signature.asc (application/pgp-signature, 832B) download
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: JIT crash introduced by 6185c9737c with LLVM 14
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-17 09:32 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-18 06:11 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Amit Langote <amitlangote09@gmail.com>
2024-06-18 15:20 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <pgsql@j-davis.com>
2024-06-18 23:03 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Thomas Munro <thomas.munro@gmail.com>
2024-06-18 23:52 ` Re: JIT crash introduced by 6185c9737c with LLVM 14 Michael Paquier <michael@paquier.xyz>
@ 2024-06-19 00:09 ` Amit Langote <amitlangote09@gmail.com>
0 siblings, 0 replies; 8+ messages in thread
From: Amit Langote @ 2024-06-19 00:09 UTC (permalink / raw)
To: Michael Paquier <michael@paquier.xyz>; +Cc: Thomas Munro <thomas.munro@gmail.com>; Jeff Davis <pgsql@j-davis.com>; pgsql-bugs@postgresql.org, Amit Langote <amitlan@postgresql.org>
On Wed, Jun 19, 2024 at 8:52 AM Michael Paquier <michael@paquier.xyz> wrote:
> On Wed, Jun 19, 2024 at 11:03:11AM +1200, Thomas Munro wrote:
> > On Wed, Jun 19, 2024 at 3:20 AM Jeff Davis <pgsql@j-davis.com> wrote:
> >> There may (or may not) have been some bug in my original larger case,
> >> but I'll have to re-investigate, and in any case I don't think your
> >> commit was a problem.
Ok, thanks.
> Okay, for now I have removed Amit's name as owner of this open item.
>
> > There are some unresolved reports of crashes on ARM CPUs using LLVM 14
> > in particular. What is your CPU?
>
> But it looks like we still have something new to v17 in this case, so
> the item it still around, pending more investigation.
+1. I was about to mark it as resolved, but this makes sense.
--
Thanks, Amit Langote
^ permalink raw reply [nested|flat] 8+ messages in thread
end of thread, other threads:[~2024-06-19 00:09 UTC | newest]
Thread overview: 8+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-06-14 04:25 JIT crash introduced by 6185c9737c with LLVM 14 Jeff Davis <jeff@j-davis.com>
2024-06-14 05:57 ` Amit Langote <amitlangote09@gmail.com>
2024-06-17 09:32 ` Amit Langote <amitlangote09@gmail.com>
2024-06-18 06:11 ` Amit Langote <amitlangote09@gmail.com>
2024-06-18 15:20 ` Jeff Davis <pgsql@j-davis.com>
2024-06-18 23:03 ` Thomas Munro <thomas.munro@gmail.com>
2024-06-18 23:52 ` Michael Paquier <michael@paquier.xyz>
2024-06-19 00:09 ` Amit Langote <amitlangote09@gmail.com>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox