pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
JIT 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