On 1/21/21 2:22 AM, Tom Lane wrote:
> Tomas Vondra <tomas.vondra@enterprisedb.com> writes:
>> I may be wrong, but the most likely explanation seems to be this is due
>> to the junk filter initialization, which simply moves past the end of
>> the mtstate->resultRelInfo array.
>
> resultRelInfo is certainly pointing at garbage at that point.
>
Yup. It's pretty amazing the x86 machines seem to be mostly OK with it.
>> It kinda seems the GetForeignModifyBatchSize call should happen before
>> that block. The attached patch fixes this for me (i.e. regression tests
>> pass with no valgrind reports.
>
>> Or did I get that wrong?
>
> Don't we need to initialize ri_BatchSize for *each* resultrelinfo,
> not merely the first one? That is, this new code needs to be
> somewhere inside a loop over the result rels.
>
Yeah, I think you're right. That's an embarrassing oversight :-(
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company