Re: casting operand to proper type in BlockIdGetBlockNumber
Zhihong Yu <zyu@yugabyte.com>
From: Zhihong Yu <zyu@yugabyte.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2022-03-03T16:34:33Z
Lists: pgsql-hackers
On Thu, Mar 3, 2022 at 8:24 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Zhihong Yu <zyu@yugabyte.com> writes: > > On Thu, Mar 3, 2022 at 7:44 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > >> Zhihong Yu <zyu@yugabyte.com> writes: > >>> In test output, I saw: > >>> src/backend/utils/adt/tid.c:112:16: runtime error: left shift of 65535 > by > >>> 16 places cannot be represented in type 'int' > > > Jenkins build is alma8-clang12-asan > > Oh, I misread this as a compile-time warning, but it must be from ASAN. > Was the test case one of your own, or just our normal regression tests? > > (I think the code is indeed incorrect, but I'm wondering why this hasn't > been reported before. It's been like that for a long time.) > > regards, tom lane > Hi, The Jenkins test is ported from contrib/postgres_fdw/sql/postgres_fdw.sql - so theoretically PG would see the same error for clang12 on Alma. Here were a few lines prior to the sanitizer complaint: ts1|pid123867|:30045 2022-03-02 01:47:57.098 UTC [124161] STATEMENT: CREATE TRIGGER trig_row_before ts1|pid123867|:30045 BEFORE INSERT OR UPDATE OR DELETE ON rem1 ts1|pid123867|:30045 FOR EACH ROW EXECUTE PROCEDURE trigger_data(23,'skidoo'); ts1|pid123867|:30045 2022-03-02 01:47:57.106 UTC [124161] ERROR: function trigger_data() does not exist ts1|pid123867|:30045 2022-03-02 01:47:57.106 UTC [124161] STATEMENT: CREATE TRIGGER trig_row_after ts1|pid123867|:30045 AFTER INSERT OR UPDATE OR DELETE ON rem1 ts1|pid123867|:30045 FOR EACH ROW EXECUTE PROCEDURE trigger_data(23,'skidoo'); I think the ASAN build on Alma is able to detect errors such as this. Cheers
Commits
-
Tighten overflow checks in tidin().
- f7ea240aa749 15.0 landed
-
Remove some pointless code in block.h.
- 8134fe4ad80a 15.0 landed
-
Fix bogus casting in BlockIdGetBlockNumber().
- 18c04d157456 10.21 landed
- 566e1c04df52 11.16 landed
- 4b0696b36e5a 12.11 landed
- 97031f440485 13.7 landed
- 5c9d17e94c5c 14.3 landed
- 0fbdfaf79d0b 15.0 landed
-
Clean up assorted failures under clang's -fsanitize=undefined checks.
- f727b6ea8f3b 12.11 landed
- f2087e26ebf1 11.16 landed
- cfbe87bd6f64 10.21 landed
- b0bc196e52e6 14.3 landed
- 46ab07ffda9d 15.0 landed
- 1a027e6b7bdf 13.7 landed