EnterpriseDB / mongo_fdw

PostgreSQL foreign data wrapper for MongoDB
GNU Lesser General Public License v3.0
330 stars 70 forks source link

Server crash when using query parameter #160

Open pludov opened 2 years ago

pludov commented 2 years ago

I get consistent server crash when running a query from plpgsql with an inequality condition that refers to a variable. The crash happens exactly on the 6th execution of the request...

It does not occur if I change the inequality to an equality, or if I use a constant rather than a variable.

Versions:

Reproduction script:

CREATE FOREIGN TABLE test ( importeddate text )
    SERVER whatever
    OPTIONS (database 'test', collection 'test');

-- perform a query from with inequality and variable
create or replace procedure gogogo() as $$
declare val text;
begin
        val := 'ZZZ';
        perform from test where importeddate > val  ;
end
$$ LANGUAGE plpgsql;

-- Now do 6 call...
call crash(); call crash(); call crash(); call crash(); call crash(); call crash();
vaibhavdalvi93 commented 2 years ago

Thanks, @pludov for reporting an issue.

This issue is reproducible at my end as well. This is a bug and this is due to missed handling of Param node in case of comparison operator while preparing query filter.

You can apply attached patch to fix this issue.

We will try to commit these changes as soon as possible. Fix-crash-v1.txt