Re: [sqlsmith] Planner crash on foreign table join

Mark Dilger <hornschnorter@gmail.com>

From: Mark Dilger <hornschnorter@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Andrew Gierth <andrew@tao11.riddles.org.uk>, Andreas Seltenreich <seltenreich@gmx.de>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Simon Riggs <simon@2ndquadrant.com>
Date: 2017-04-09T02:02:08Z
Lists: pgsql-hackers
> On Apr 8, 2017, at 6:48 PM, Mark Dilger <hornschnorter@gmail.com> wrote:
> 
> 
>> On Apr 8, 2017, at 6:38 PM, Mark Dilger <hornschnorter@gmail.com> wrote:
>> 
>> 
>>> On Apr 8, 2017, at 5:13 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> 
>>> I wrote:
>>>> Robert Haas <robertmhaas@gmail.com> writes:
>>>>> On Sat, Apr 8, 2017 at 3:57 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>>>> I think it's pretty dubious to change this, honestly.  Just because it
>>>>> would have caught this one bug doesn't make it an especially valuable
>>>>> thing in general.  Bytes are still not free.
>>> 
>>>> What I think I might do is write a trial patch that turns Bitmapsets
>>>> into Nodes, and see if it catches any other existing bugs.  If it does
>>>> not, that would be good evidence for your position.
>>> 
>>> I made the attached quick-hack patch, and found that check-world
>>> passes just fine with it. 
>> 
>> Not so for me.  I get a failure almost immediately:
> 
> I recant.  Looks like I didn't get the patch applied quite right.  So sorry for the noise.

The regression tests now fail on a number of tests due to a server crash:

2017-04-08 18:55:19.826 PDT [90779] pg_regress/errors STATEMENT:  select infinite_recurse();
TRAP: FailedAssertion("!(((((const Node*)(a))->type) == T_Bitmapset))", File: "bitmapset.c", Line: 601)
2017-04-08 18:55:22.487 PDT [90242] LOG:  server process (PID 90785) was terminated by signal 6: Abort trap
2017-04-08 18:55:22.487 PDT [90242] DETAIL:  Failed process was running: explain (costs off)
    select * from onek2 where unique2 = 11 and stringu1 = 'ATAAAA';


This is very near where the original crash reported in this thread was crashing, probably only
different due to the extra lines of Assert that were added.  Am I missing some portion of the
fix that you are testing?  I have only applied the patch that Tom included in the previous email.

mark

Commits

  1. Improve castNode notation by introducing list-extraction-specific variants.

  2. Clean up bugs in clause_selectivity() cleanup.

  3. Add newly-symlinked files to "make clean" target.

  4. Reset API of clause_selectivity()