inheritance_planner() bug in 9.1
The attached SQL causes a crash in 9.1. It appears to be caused by:
d1001a78ce612a16ea622b558f5fc2b68c45ab4c
The patch tries to copy all of the important data out of the child
context before it's reset; but it doesn't get everything. For instance,
grouping_planner() allocates subroot.glob->paramlist, and uses it in
subsequent iterations; but that isn't copied before the context is
reset. It looks like there are other things that need copying as well,
but it wasn't immediately clear to me what the best fix is.
Regards,
Jeff Davis
Attachments:
crash2.sqltext/x-sql; charset=ISO-8859-1; name=crash2.sqlDownload
Jeff Davis <pgsql@j-davis.com> writes:
The attached SQL causes a crash in 9.1. It appears to be caused by:
d1001a78ce612a16ea622b558f5fc2b68c45ab4c
The patch tries to copy all of the important data out of the child
context before it's reset; but it doesn't get everything. For instance,
grouping_planner() allocates subroot.glob->paramlist, and uses it in
subsequent iterations; but that isn't copied before the context is
reset. It looks like there are other things that need copying as well,
but it wasn't immediately clear to me what the best fix is.
Ugh. Maybe the best fix is to back that out. I too am now unsure which
substructures of PlannerGlobal are at risk, and I don't really think
that hack was worth taking any risk of destabilizing the system for.
regards, tom lane