Re: BUG #17781: Assert in setrefs.c - Mailing list pgsql-bugs
From | Robins Tharakan |
---|---|
Subject | Re: BUG #17781: Assert in setrefs.c |
Date | |
Msg-id | CAEP4nAx9C5gXNBfEA0JBfz7B+5f1Bawt-RWQWyhev-wdps8BZA@mail.gmail.com Whole thread Raw |
In response to | Re: BUG #17781: Assert in setrefs.c (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: BUG #17781: Assert in setrefs.c
|
List | pgsql-bugs |
This assert() is still reproducible (as of 40d0b2d415@master) although intermittent when trying to reach manually, in that I could reduce to a simpler crash but after a while the crashes stop (maybe it's just lack of coffee). Owing to this, this time I only provide table-data instead of a simplified repro. What I can confirm is that the test setup easily steps on this every few minutes, so I'd say this still needs attention. TRAP: failed Assert("varattno <= 0 || (nrm_match == NRM_SUBSET ? bms_is_subset(var->varnullingrels, vinfo->varnullingrels) : nrm_match == NRM_SUPERSET ? bms_is_subset(vinfo->varnullingrels, var->varnullingrels) : bms_equal(vinfo->varnullingrels, var->varnullingrels))"), File: "setrefs.c", Line: 2792, PID: 2005079 2023-02-10 00:28:34.886 UTC [1798150] LOG: server process (PID 2005079) was terminated by signal 6: Aborted 2023-02-10 00:28:34.886 UTC [1798150] DETAIL: Failed process was running: SELECT FROM (SELECT NULL AS c1 LIMIT ALL) AS subq_2 RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2 LEFT JOIN (SELECT LIMIT ALL) AS subq_3 ON ref_3.name !~ subq_2.c1 RIGHT JOIN testxmlschema.test3 AS sample_2 ON ref_3.boolean = sample_2.c1 postgres=# select int2 is null, int8 is null, boolean is null, count(*) from caster group by 1,2,3; ?column? | ?column? | ?column? | count ----------+----------+----------+------- t | t | t | 80 (1 row) postgres=# \d testxmlschema.test3 Table "testxmlschema.test3" Column | Type | Collation | Nullable | Default --------+-------------------+-----------+----------+--------- c1 | boolean | | | c2 | testboolxmldomain | | | c3 | date | | | c4 | testdatexmldomain | | | postgres=# table testxmlschema.test3 ; c1 | c2 | c3 | c4 ----+----+------------+------------ t | t | 2013-02-21 | 2013-02-21 (1 row) === Backtrace - PID 2005079 - 40d0b2d415@master === Core was generated by `postgres: 40d0b2d415@master@sqith: ubuntu postgres 127.0.0.1(39074) 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 0x00007fbd65b54859 in __GI_abort () at abort.c:79 #2 0x000055da10f04d9d in ExceptionalCondition ( conditionName=0x55da110bcde8 "varattno <= 0 || (nrm_match == NRM_SUBSET ? bms_is_subset(var->varnullingrels, vinfo->varnullingrels) : nrm_match == NRM_SUPERSET ? bms_is_subset(vinfo->varnullingrels, var->varnullingrels) : bms_equa"..., fileName=0x55da110bc90f "setrefs.c", lineNumber=2792) at assert.c:66 #3 0x000055da10bf3d35 in search_indexed_tlist_for_var (var=0x55da123a4178, itlist=0x55da123adeb0, newvarno=-2, rtoffset=0, nrm_match=NRM_EQUAL) at setrefs.c:2792 #4 0x000055da10bf419e in fix_join_expr_mutator (node=0x55da123a4178, context=0x7ffe3bd446a0) at setrefs.c:3016 #5 0x000055da10b30d6e in expression_tree_mutator_impl (node=0x55da123a3e78, mutator=0x55da10bf4129 <fix_join_expr_mutator>, context=0x7ffe3bd446a0) at nodeFuncs.c:3137 #6 0x000055da10bf44ad in fix_join_expr_mutator (node=0x55da123a3e78, context=0x7ffe3bd446a0) at setrefs.c:3104 #7 0x000055da10b2fbd9 in expression_tree_mutator_impl (node=0x55da123a40b8, mutator=0x55da10bf4129 <fix_join_expr_mutator>, context=0x7ffe3bd446a0) at nodeFuncs.c:2771 #8 0x000055da10bf44ad in fix_join_expr_mutator (node=0x55da123a40b8, context=0x7ffe3bd446a0) at setrefs.c:3104 #9 0x000055da10b30d6e in expression_tree_mutator_impl (node=0x55da123ad820, mutator=0x55da10bf4129 <fix_join_expr_mutator>, context=0x7ffe3bd446a0) at nodeFuncs.c:3137 #10 0x000055da10bf44ad in fix_join_expr_mutator (node=0x55da123ad820, context=0x7ffe3bd446a0) at setrefs.c:3104 #11 0x000055da10bf4113 in fix_join_expr (root=0x55da123949f0, clauses=0x55da123ad820, outer_itlist=0x55da123adeb0, inner_itlist=0x55da123ae080, acceptable_rel=0, rtoffset=0, nrm_match=NRM_EQUAL, num_exec=2) at setrefs.c:2999 #12 0x000055da10bf2ee3 in set_join_references (root=0x55da123949f0, join=0x55da123ad850, rtoffset=0) at setrefs.c:2260 #13 0x000055da10beff6b in set_plan_refs (root=0x55da123949f0, plan=0x55da123ad850, rtoffset=0) at setrefs.c:870 #14 0x000055da10beea91 in set_plan_references (root=0x55da123949f0, plan=0x55da123ad850) at setrefs.c:354 #15 0x000055da10be043f in standard_planner (parse=0x55da1229de28, query_string=0x55da1226a508 "SELECT\nFROM (SELECT NULL AS c1\n LIMIT ALL) AS subq_2\n RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2\n LEFT JOIN (SELECT\n", ' ' <repeats 16 times>, "LIMIT ALL) AS subq_3 ON ref_3.name !~"..., cursorOptions=2048, boundParams=0x0) at planner.c:504 #16 0x00007fbd62b4208b in pgss_planner (parse=0x55da1229de28, query_string=0x55da1226a508 "SELECT\nFROM (SELECT NULL AS c1\n LIMIT ALL) AS subq_2\n RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2\n LEFT JOIN (SELECT\n", ' ' <repeats 16 times>, "LIMIT ALL) AS subq_3 ON ref_3.name !~"..., cursorOptions=2048, boundParams=0x0) at pg_stat_statements.c:954 #17 0x000055da10bdfce0 in planner (parse=0x55da1229de28, query_string=0x55da1226a508 "SELECT\nFROM (SELECT NULL AS c1\n LIMIT ALL) AS subq_2\n RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2\n LEFT JOIN (SELECT\n", ' ' <repeats 16 times>, "LIMIT ALL) AS subq_3 ON ref_3.name !~"..., cursorOptions=2048, boundParams=0x0) at planner.c:279 #18 0x000055da10d24f88 in pg_plan_query (querytree=0x55da1229de28, query_string=0x55da1226a508 "SELECT\nFROM (SELECT NULL AS c1\n LIMIT ALL) AS subq_2\n RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2\n LEFT JOIN (SELECT\n", ' ' <repeats 16 times>, "LIMIT ALL) AS subq_3 ON ref_3.name !~"..., cursorOptions=2048, boundParams=0x0) at postgres.c:870 #19 0x000055da10d250e0 in pg_plan_queries (querytrees=0x55da123949c0, query_string=0x55da1226a508 "SELECT\nFROM (SELECT NULL AS c1\n LIMIT ALL) AS subq_2\n RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2\n LEFT JOIN (SELECT\n", ' ' <repeats 16 times>, "LIMIT ALL) AS subq_3 ON ref_3.name !~"..., cursorOptions=2048, boundParams=0x0) at postgres.c:962 #20 0x000055da10d254c3 in exec_simple_query ( query_string=0x55da1226a508 "SELECT\nFROM (SELECT NULL AS c1\n LIMIT ALL) AS subq_2\n RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2\n LEFT JOIN (SELECT\n", ' ' <repeats 16 times>, "LIMIT ALL) AS subq_3 ON ref_3.name !~"...) at postgres.c:1156 #21 0x000055da10d2a379 in PostgresMain (dbname=0x55da122aa2e8 "postgres", username=0x55da12265478 "ubuntu") at postgres.c:4565 #22 0x000055da10c52dd6 in BackendRun (port=0x55da122a72b0) at postmaster.c:4461 #23 0x000055da10c526a9 in BackendStartup (port=0x55da122a72b0) at postmaster.c:4189 #24 0x000055da10c4ead8 in ServerLoop () at postmaster.c:1779 #25 0x000055da10c4e3ad in PostmasterMain (argc=3, argv=0x55da122633d0) at postmaster.c:1463 #26 0x000055da10b015eb in main (argc=3, argv=0x55da122633d0) at main.c:200 === Backtrace FULL - PID 2005079 - 40d0b2d415@master === #2 0x000055da10f04d9d in ExceptionalCondition ( conditionName=0x55da110bcde8 "varattno <= 0 || (nrm_match == NRM_SUBSET ? bms_is_subset(var->varnullingrels, vinfo->varnullingrels) : nrm_match == NRM_SUPERSET ? bms_is_subset(vinfo->varnullingrels, var->varnullingrels) : bms_equa"..., fileName=0x55da110bc90f "setrefs.c", lineNumber=2792) at assert.c:66 No locals. #3 0x000055da10bf3d35 in search_indexed_tlist_for_var (var=0x55da123a4178, itlist=0x55da123adeb0, newvarno=-2, rtoffset=0, nrm_match=NRM_EQUAL) at setrefs.c:2792 newvar = 0x55da123ae140 varno = 1 varattno = 1 vinfo = 0x55da123aded0 i = 0 #4 0x000055da10bf419e in fix_join_expr_mutator (node=0x55da123a4178, context=0x7ffe3bd446a0) at setrefs.c:3016 var = 0x55da123a4178 newvar = 0x55da10b2690d <lappend+133> __func__ = "fix_join_expr_mutator" #5 0x000055da10b30d6e in expression_tree_mutator_impl (node=0x55da123a3e78, mutator=0x55da10bf4129 <fix_join_expr_mutator>, context=0x7ffe3bd446a0) at nodeFuncs.c:3137 temp__state = {l = 0x55da123a3e78, i = 1} resultlist = 0x55da123adc10 temp = 0x55da123a41d0 __func__ = "expression_tree_mutator_impl" #6 0x000055da10bf44ad in fix_join_expr_mutator (node=0x55da123a3e78, context=0x7ffe3bd446a0) at setrefs.c:3104 newvar = 0x0 __func__ = "fix_join_expr_mutator" #7 0x000055da10b2fbd9 in expression_tree_mutator_impl (node=0x55da123a40b8, mutator=0x55da10bf4129 <fix_join_expr_mutator>, context=0x7ffe3bd446a0) at nodeFuncs.c:2771 expr = 0x55da123a40b8 newnode = 0x55da123ae0a0 __func__ = "expression_tree_mutator_impl" #8 0x000055da10bf44ad in fix_join_expr_mutator (node=0x55da123a40b8, context=0x7ffe3bd446a0) at setrefs.c:3104 newvar = 0xe0e36faee4a53e00 __func__ = "fix_join_expr_mutator" #9 0x000055da10b30d6e in expression_tree_mutator_impl (node=0x55da123ad820, mutator=0x55da10bf4129 <fix_join_expr_mutator>, context=0x7ffe3bd446a0) at nodeFuncs.c:3137 temp__state = {l = 0x55da123ad820, i = 0} resultlist = 0x0 temp = 0x55da123ad838 __func__ = "expression_tree_mutator_impl" #10 0x000055da10bf44ad in fix_join_expr_mutator (node=0x55da123ad820, context=0x7ffe3bd446a0) at setrefs.c:3104 newvar = 0x55da123ae080 __func__ = "fix_join_expr_mutator" #11 0x000055da10bf4113 in fix_join_expr (root=0x55da123949f0, clauses=0x55da123ad820, outer_itlist=0x55da123adeb0, inner_itlist=0x55da123ae080, acceptable_rel=0, rtoffset=0, nrm_match=NRM_EQUAL, num_exec=2) at setrefs.c:2999 context = {root = 0x55da123949f0, outer_itlist = 0x55da123adeb0, inner_itlist = 0x55da123ae080, acceptable_rel = 0, rtoffset = 0, nrm_match = NRM_EQUAL, num_exec = 2} #12 0x000055da10bf2ee3 in set_join_references (root=0x55da123949f0, join=0x55da123ad850, rtoffset=0) at setrefs.c:2260 outer_plan = 0x55da123ad670 inner_plan = 0x55da123ad790 outer_itlist = 0x55da123adeb0 inner_itlist = 0x55da123ae080 __func__ = "set_join_references" #13 0x000055da10beff6b in set_plan_refs (root=0x55da123949f0, plan=0x55da123ad850, rtoffset=0) at setrefs.c:870 l = 0x55da1226a3f0 __func__ = "set_plan_refs" #14 0x000055da10beea91 in set_plan_references (root=0x55da123949f0, plan=0x55da123ad850) at setrefs.c:354 result = 0x55da10bcbe95 <create_plan_recurse+134> glob = 0x55da1226c2d8 rtoffset = 0 lc = 0x0 #15 0x000055da10be043f in standard_planner (parse=0x55da1229de28, query_string=0x55da1226a508 "SELECT\nFROM (SELECT NULL AS c1\n LIMIT ALL) AS subq_2\n RIGHT JOIN public.caster AS ref_3 ON ref_3.int8 > ref_3.int2\n LEFT JOIN (SELECT\n", ' ' <repeats 16 times>, "LIMIT ALL) AS subq_3 ON ref_3.name !~"..., cursorOptions=2048, boundParams=0x0) at planner.c:504 result = 0x55da10ee048d <SearchCatCacheInternal+607> glob = 0x55da1226c2d8 tuple_fraction = 0 root = 0x55da123949f0 final_rel = 0x55da123ab050 best_path = 0x55da123aaba0 top_plan = 0x55da123ad850 lp = 0x0 lr = 0x0 - Robins Tharakan Amazon Web Services
pgsql-bugs by date: