Re: Heads Up: cirrus-ci is shutting down June 1st

From: Tatsuo Ishii <ishii(at)postgresql(dot)org>
To: byavuz81(at)gmail(dot)com, andres(at)anarazel(dot)de, jacob(dot)champion(at)enterprisedb(dot)com, peter(at)eisentraut(dot)org, postgres(at)jeltef(dot)nl, thomas(dot)munro(at)gmail(dot)com, zsolt(dot)parragi(at)percona(dot)com
Cc: assam258(at)gmail(dot)com, matheusssilv97(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Heads Up: cirrus-ci is shutting down June 1st
Date: 2026-06-22 10:23:19
Message-ID: 20260622.192319.148395607405547262.ishii@postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Thank you for working on CFbot.

I would like to share a possible issue with Ci jobs found by Henson
and Matheus, particulary Linux Meson (64-bit).

Andres reported that while testing RPR patches, cfbot was failing, with crashes inside JIT.
https://www.postgresql.org/message-id/p7r5bekdbl2zcazid7agvfo2nfnq5bim2a5jkckqygld32n325%40fctfp6ou6qnb

Henson and Matheus analyzed the issue and came to the conclusion that
the crash is triggered by particular cflags passed to bitcode
generation, not the RPR patch itself.

In fact Henson succeeded in reproducing the crash with a trivial SQL like:
SELECT 1 AS result;
https://www.postgresql.org/message-id/CAAAe_zDtwoL8KaC_cpK4rU9jCrLxtGJ%3DTwLogdfH1PeE3_GT9Q%40mail.gmail.com

To fix the issue, can you please evaluate Matheus's patch?

His patch looks good to me. I pushed Henson's regression test
addition to my GitHub PostgreSQL fork and confirmed Ci failed. Then I
pushed Matheus's patch and confirmed all Ci jobs succeeded.

https://www.postgresql.org/message-id/CAAAe_zDtwoL8KaC_cpK4rU9jCrLxtGJ%3DTwLogdfH1PeE3_GT9Q%40mail.gmail.com
(v2-0002-meson-strip-sanitizer.patch)

The patch looks good to me.
For your convenience, I include the patch in-line.
---- v2-0002-meson-strip-sanitizer.patch ----
From b0311982e0ff06470d31c54b5d4822fd3c5e19d4 Mon Sep 17 00:00:00 2001
From: Henson Choi <assam258(at)gmail(dot)com>
Date: Fri, 12 Jun 2026 09:15:10 +0900
Subject: [PATCH v2 2/3] Exclude sanitizer flags from LLVM JIT bitcode
generation

The meson build passes c_args verbatim to the clang command that emits
the JIT bitcode. Under -fsanitize=address the instrumentation ends up
in the bitcode and breaks the JIT: any JIT-compiled query crashes the
backend with SIGILL. The autoconf build is unaffected, as it builds
BITCODE_CFLAGS from a whitelist that never includes CFLAGS.

Filter sanitizer flags out of c_args during bitcode generation.

Author: Matheus Alcantara <matheusssilv97(at)gmail(dot)com>
Reviewer: Henson Choi <assam258(at)gmail(dot)com>
---
src/backend/jit/llvm/meson.build | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/backend/jit/llvm/meson.build b/src/backend/jit/llvm/meson.build
index 7df8453ad6f..1ebee3bdcaf 100644
--- a/src/backend/jit/llvm/meson.build
+++ b/src/backend/jit/llvm/meson.build
@@ -61,7 +61,23 @@ endif

# XXX: Need to determine proper version of the function cflags for clang
bitcode_cflags = ['-fno-strict-aliasing', '-fwrapv']
-bitcode_cflags += get_option('c_args')
+
+# Sanitizer instrumentation in the JIT bitcode corrupts the JIT code
+# generator: JIT-compiled queries crash with SIGILL. Strip sanitizer flags
+# from c_args during bitcode generation, and warn when we do, since the
+# JIT-compiled code then runs without sanitizer coverage.
+bitcode_sanitize_stripped = false
+foreach cflag : get_option('c_args')
+ if cflag.contains('sanitize')
+ bitcode_sanitize_stripped = true
+foreach cflag : get_option('c_args')
+ if cflag.contains('sanitize')
+ bitcode_sanitize_stripped = true
+ else
+ bitcode_cflags += cflag
+ endif
+endforeach
+if bitcode_sanitize_stripped
+ warning('stripping sanitizer flags from LLVM JIT bitcode; JIT-compiled code will not be instrumented')
+endif
+
bitcode_cflags += cppflags

# XXX: Worth improving on the logic to find directories here
--
2.47.3
---- v2-0002-meson-strip-sanitizer.patch ----

Regards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tender Wang 2026-06-22 10:42:47 Re: Remove inner joins based on foreign keys
Previous Message Dean Rasheed 2026-06-22 10:13:39 Re: Allow ON CONFLICT DO UPDATE to return EXCLUDED values