BUG #17786: Assert on indxpath.c - Mailing list pgsql-bugs
From | PG Bug reporting form |
---|---|
Subject | BUG #17786: Assert on indxpath.c |
Date | |
Msg-id | 17786-f1ea7fbdab97daec@postgresql.org Whole thread Raw |
Responses |
Re: BUG #17786: Assert on indxpath.c
|
List | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 17786 Logged by: Robins Tharakan Email address: tharakan@gmail.com PostgreSQL version: 15.2 Operating system: Ubuntu 20.04 Description: This reproducible assert() seems to have surfaced after commit 8538519db1. Tested on: f8ba1bf4e4@master TRAP: failed Assert("outer_rel->rows > 0"), File: "indxpath.c", Line: 1909, PID: 3247224 SQL === create table t(); SELECT FROM t AS sample_1 INNER JOIN (pg_catalog.pg_user AS ref_1 RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL) ON ref_2.conname = ref_1.passwd OR (SELECT calls FROM pg_catalog.pg_stat_xact_user_functions) <= 52 Checking (f8ba1bf4e4~35) - 9f452feeeb - Crash Checking (f8ba1bf4e4~36) - 8538519db1 - Crash Checking (f8ba1bf4e4~37) - 5840c20272 - Success Checking (f8ba1bf4e4~38) - faff8f8e47 - Success === Backtrace - PID 3247224 - f8ba1bf4e4@master === Core was generated by `postgres: f8ba1bf4e4@master@sqith: ubuntu t 127.0.0.1(57768) SELECT '. Program terminated with signal SIGABRT, Aborted. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007f0b57bc6859 in __GI_abort () at abort.c:79 #2 0x0000555ec56d3ff3 in ExceptionalCondition (conditionName=0x555ec5887ff0 "outer_rel->rows > 0", fileName=0x555ec5887f2c "indxpath.c", lineNumber=1909) at assert.c:66 #3 0x0000555ec538a67a in get_loop_count (root=0x555ec5f72680, cur_relid=3, outer_relids=0x555ec5f93960) at indxpath.c:1909 #4 0x0000555ec5388b5e in build_index_paths (root=0x555ec5f72680, rel=0x555ec5f8f648, index=0x555ec5f8ca90, clauses=0x7fffeea57480, useful_predicate=false, scantype=ST_BITMAPSCAN, skip_nonnative_saop=0x0, skip_lower_saop=0x0) at indxpath.c:957 #5 0x0000555ec5389261 in build_paths_for_OR (root=0x555ec5f72680, rel=0x555ec5f8f648, clauses=0x555ec5f93f00, other_clauses=0x555ec5f935e0) at indxpath.c:1208 #6 0x0000555ec53894cb in generate_bitmap_or_paths (root=0x555ec5f72680, rel=0x555ec5f8f648, clauses=0x555ec5f93af0, other_clauses=0x0) at indxpath.c:1288 #7 0x0000555ec538793d in create_index_paths (root=0x555ec5f72680, rel=0x555ec5f8f648) at indxpath.c:325 #8 0x0000555ec536ef89 in set_plain_rel_pathlist (root=0x555ec5f72680, rel=0x555ec5f8f648, rte=0x555ec5f4a118) at allpaths.c:768 #9 0x0000555ec536eaf6 in set_rel_pathlist (root=0x555ec5f72680, rel=0x555ec5f8f648, rti=3, rte=0x555ec5f4a118) at allpaths.c:484 #10 0x0000555ec536e73c in set_base_rel_pathlists (root=0x555ec5f72680) at allpaths.c:336 #11 0x0000555ec536e470 in make_one_rel (root=0x555ec5f72680, joinlist=0x555ec5f92510) at allpaths.c:206 #12 0x0000555ec53ae8f6 in query_planner (root=0x555ec5f72680, qp_callback=0x555ec53b5121 <standard_qp_callback>, qp_extra=0x7fffeea57d70) at planmain.c:278 #13 0x0000555ec53b1368 in grouping_planner (root=0x555ec5f72680, tuple_fraction=0) at planner.c:1496 #14 0x0000555ec53b0a17 in subquery_planner (glob=0x555ec5f71ee0, parse=0x555ec5e2cf58, parent_root=0x0, hasRecursion=false, tuple_fraction=0) at planner.c:1065 #15 0x0000555ec53aefcf in standard_planner (parse=0x555ec5e2cf58, query_string=0x555ec5e2b508 "SELECT\nFROM t AS sample_1\n INNER JOIN (pg_catalog.pg_user AS ref_1\n", ' ' <repeats 17 times>, "RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL)\n ON ref_2.conname = ref_1.passwd\n OR (SELECT"..., cursorOptions=2048, boundParams=0x0) at planner.c:411 #16 0x00007f0b54bb408b in pgss_planner (parse=0x555ec5e2cf58, query_string=0x555ec5e2b508 "SELECT\nFROM t AS sample_1\n INNER JOIN (pg_catalog.pg_user AS ref_1\n", ' ' <repeats 17 times>, "RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL)\n ON ref_2.conname = ref_1.passwd\n OR (SELECT"..., cursorOptions=2048, boundParams=0x0) at pg_stat_statements.c:954 #17 0x0000555ec53aece0 in planner (parse=0x555ec5e2cf58, query_string=0x555ec5e2b508 "SELECT\nFROM t AS sample_1\n INNER JOIN (pg_catalog.pg_user AS ref_1\n", ' ' <repeats 17 times>, "RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL)\n ON ref_2.conname = ref_1.passwd\n OR (SELECT"..., cursorOptions=2048, boundParams=0x0) at planner.c:279 #18 0x0000555ec54f41de in pg_plan_query (querytree=0x555ec5e2cf58, query_string=0x555ec5e2b508 "SELECT\nFROM t AS sample_1\n INNER JOIN (pg_catalog.pg_user AS ref_1\n", ' ' <repeats 17 times>, "RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL)\n ON ref_2.conname = ref_1.passwd\n OR (SELECT"..., cursorOptions=2048, boundParams=0x0) at postgres.c:870 #19 0x0000555ec54f4336 in pg_plan_queries (querytrees=0x555ec5f6ea18, query_string=0x555ec5e2b508 "SELECT\nFROM t AS sample_1\n INNER JOIN (pg_catalog.pg_user AS ref_1\n", ' ' <repeats 17 times>, "RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL)\n ON ref_2.conname = ref_1.passwd\n OR (SELECT"..., cursorOptions=2048, boundParams=0x0) at postgres.c:962 #20 0x0000555ec54f4719 in exec_simple_query (query_string=0x555ec5e2b508 "SELECT\nFROM t AS sample_1\n INNER JOIN (pg_catalog.pg_user AS ref_1\n", ' ' <repeats 17 times>, "RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL)\n ON ref_2.conname = ref_1.passwd\n OR (SELECT"...) at postgres.c:1156 #21 0x0000555ec54f95cf in PostgresMain (dbname=0x555ec5e6b9c8 "t", username=0x555ec5e26478 "ubuntu") at postgres.c:4565 #22 0x0000555ec5421dd6 in BackendRun (port=0x555ec5e67290) at postmaster.c:4461 #23 0x0000555ec54216a9 in BackendStartup (port=0x555ec5e67290) at postmaster.c:4189 #24 0x0000555ec541dad8 in ServerLoop () at postmaster.c:1779 #25 0x0000555ec541d3ad in PostmasterMain (argc=3, argv=0x555ec5e243d0) at postmaster.c:1463 #26 0x0000555ec52d05eb in main (argc=3, argv=0x555ec5e243d0) at main.c:200 === Backtrace FULL - PID 3247224 - f8ba1bf4e4@master === #2 0x0000555ec56d3ff3 in ExceptionalCondition (conditionName=0x555ec5887ff0 "outer_rel->rows > 0", fileName=0x555ec5887f2c "indxpath.c", lineNumber=1909) at assert.c:66 No locals. #3 0x0000555ec538a67a in get_loop_count (root=0x555ec5f72680, cur_relid=3, outer_relids=0x555ec5f93960) at indxpath.c:1909 outer_rel = 0x555ec5f90458 rowcount = 1 result = 1 outer_relid = 8 #4 0x0000555ec5388b5e in build_index_paths (root=0x555ec5f72680, rel=0x555ec5f8f648, index=0x555ec5f8ca90, clauses=0x7fffeea57480, useful_predicate=false, scantype=ST_BITMAPSCAN, skip_nonnative_saop=0x0, skip_lower_saop=0x0) at indxpath.c:957 result = 0x0 ipath = 0x555ec538abc6 <match_clauses_to_index+93> index_clauses = 0x555ec5f940f0 outer_relids = 0x555ec5f93960 loop_count = 6.0264680463413734e-312 orderbyclauses = 0x555ec5f72680 orderbyclausecols = 0x0 index_pathkeys = 0x7fffeea573f0 useful_pathkeys = 0x0 found_lower_saop_clause = false pathkeys_possibly_useful = 40 index_is_ordered = 249 index_only_scan = 197 indexcol = 2 #5 0x0000555ec5389261 in build_paths_for_OR (root=0x555ec5f72680, rel=0x555ec5f8f648, clauses=0x555ec5f93f00, other_clauses=0x555ec5f935e0) at indxpath.c:1208 index = 0x555ec5f8ca90 clauseset = {nonempty = true, indexclauses = {0x555ec5f940c0, 0x0 <repeats 31 times>}} indexpaths = 0x555ec5f93ef0 useful_predicate = false lc__state = {l = 0x555ec5f8fea0, i = 1} result = 0x0 all_clauses = 0x0 lc = 0x555ec5f90390 #6 0x0000555ec53894cb in generate_bitmap_or_paths (root=0x555ec5f72680, rel=0x555ec5f8f648, clauses=0x555ec5f93af0, other_clauses=0x0) at indxpath.c:1288 ri = 0x555ec5f925b0 orargs = 0x555ec5f93f00 orarg = 0x555ec5f925b0 indlist = 0x7fffeea57640 j__state = {l = 0x555ec5f92740, i = 0} rinfo = 0x555ec5f928b0 pathlist = 0x0 bitmapqual = 0x555ec5f72680 j = 0x555ec5f92720 lc__state = {l = 0x555ec5f93af0, i = 0} result = 0x0 all_clauses = 0x555ec5f935e0 lc = 0x555ec5f93ed0 #7 0x0000555ec538793d in create_index_paths (root=0x555ec5f72680, rel=0x555ec5f8f648) at indxpath.c:325 indexpaths = 0x0 bitindexpaths = 0x555ec5f93e20 bitjoinpaths = 0x0 joinorclauses = 0x555ec5f93af0 rclauseset = {nonempty = false, indexclauses = {0x0 <repeats 32 times>}} jclauseset = {nonempty = false, indexclauses = {0x0 <repeats 32 times>}} eclauseset = {nonempty = false, indexclauses = {0x0 <repeats 32 times>}} lc = 0x0 #8 0x0000555ec536ef89 in set_plain_rel_pathlist (root=0x555ec5f72680, rel=0x555ec5f8f648, rte=0x555ec5f4a118) at allpaths.c:768 required_outer = 0x0 #9 0x0000555ec536eaf6 in set_rel_pathlist (root=0x555ec5f72680, rel=0x555ec5f8f648, rti=3, rte=0x555ec5f4a118) at allpaths.c:484 __func__ = "set_rel_pathlist" #10 0x0000555ec536e73c in set_base_rel_pathlists (root=0x555ec5f72680) at allpaths.c:336 rel = 0x555ec5f8f648 rti = 3 #11 0x0000555ec536e470 in make_one_rel (root=0x555ec5f72680, joinlist=0x555ec5f92510) at allpaths.c:206 rel = 0x0 rti = 10 total_pages = 17 #12 0x0000555ec53ae8f6 in query_planner (root=0x555ec5f72680, qp_callback=0x555ec53b5121 <standard_qp_callback>, qp_extra=0x7fffeea57d70) at planmain.c:278 parse = 0x555ec5e2cf58 joinlist = 0x555ec5f92510 final_rel = 0x7fffeea57c20 __func__ = "query_planner" #13 0x0000555ec53b1368 in grouping_planner (root=0x555ec5f72680, tuple_fraction=0) at planner.c:1496 sort_input_targets = 0x0 sort_input_target_parallel_safe = 238 grouping_target = 0x1c5f8e798 scanjoin_target = 0x555ec5f72190 activeWindows = 0x0 qp_extra = {activeWindows = 0x0, gset_data = 0x0} sort_input_targets_contain_srfs = 0x0 have_grouping = false wflists = 0x0 gset_data = 0x0 sort_input_target = 0x100000001 grouping_targets = 0x555e00000000 grouping_target_parallel_safe = 255 scanjoin_targets = 0x555ec5f8e6e8 scanjoin_target_parallel_safe = 127 grouping_targets_contain_srfs = 0x7fffeea57d80 scanjoin_targets_contain_srfs = 0x0 scanjoin_target_same_exprs = false parse = 0x555ec5e2cf58 offset_est = 0 count_est = 0 limit_tuples = -1 have_postponed_srfs = false final_target = 0x7fffeea57cb0 final_targets = 0x555ec5f722d0 final_targets_contain_srfs = 0x555ec5f72680 final_target_parallel_safe = 165 current_rel = 0x555ec52f53ed <new_list+75> final_rel = 0x555ec5f72190 extra = {limit_needed = false, limit_tuples = 0, count_est = 0, offset_est = 0} lc = 0x7fffeea57cd0 __func__ = "grouping_planner" #14 0x0000555ec53b0a17 in subquery_planner (glob=0x555ec5f71ee0, parse=0x555ec5e2cf58, parent_root=0x0, hasRecursion=false, tuple_fraction=0) at planner.c:1065 root = 0x555ec5f72680 newWithCheckOptions = 0x0 newHaving = 0x0 hasOuterJoins = true hasResultRTEs = false final_rel = 0x555ec5e2cf58 l = 0x0 #15 0x0000555ec53aefcf in standard_planner (parse=0x555ec5e2cf58, query_string=0x555ec5e2b508 "SELECT\nFROM t AS sample_1\n INNER JOIN (pg_catalog.pg_user AS ref_1\n", ' ' <repeats 17 times>, "RIGHT JOIN pg_catalog.pg_conversion AS ref_2 ON NULL)\n ON ref_2.conname = ref_1.passwd\n OR (SELECT"..., cursorOptions=2048, boundParams=0x0) at planner.c:411 result = 0x0 glob = 0x555ec5f71ee0 tuple_fraction = 0 root = 0x555ec5f6ea18 final_rel = 0x8 best_path = 0x0 top_plan = 0x0 lp = 0x4d430000 lr = 0x555ec5f6ea18 Thanks to SQLSmith / SQLReduce for the find. - Robins Tharakan Amazon Web Services
pgsql-bugs by date: