Re: Bug plperl.c
От | Mark Murawski |
---|---|
Тема | Re: Bug plperl.c |
Дата | |
Msg-id | bcfaa4e4-6699-8c8b-0201-37889ff3b1e8@intellasoft.net обсуждение исходный текст |
Ответ на | Re: Bug plperl.c (Mark Murawski <markm-lists@intellasoft.net>) |
Ответы |
Re: Bug plperl.c
|
Список | pgsql-bugs |
Hi Tom Here you go: CREATE OR REPLACE FUNCTION public.foo() RETURNS text LANGUAGE plperlu AS $function$ use warnings; use strict; use lib '/tmp'; use foo; my @a; my @a; $function$ --- /tmp/foo.pm --- package foo; use Data::Dumper; $SIG{'__WARN__'} = sub { my $pid = main::spi_exec_query('SELECT pg_backend_pid()')->{rows}; main::elog(main::NOTICE, 'Warning:' . Dumper(\@_)); main::elog(main::NOTICE, 'foo: ' . $pid); }; 1; On 2/22/22 15:06, Mark Murawski wrote: > Hi Tom, > > Wow that was fast! > > Upon further testing, my path isn't a full fix... there's other parts > of the flow that needs current_call_data > > > I trimmed down my example from the guts of a complex application. > Sorry I didn't re-test with the trimmed example. But the use-case is > very much the same... it has to do with running spi_exec_query during > parse time. > > I'll work on redoing the example to reproduce the crash. > > > > On 2/22/22 14:48, Tom Lane wrote: >> Mark Murawski <markm-lists@intellasoft.net> writes: >>> Affects Versions: 12 (and probably all others) >>> Steps to Reproduce: >>> - Run a query during plperl validation -- ie: inside a warn handler >>> 2022-02-22 12:17:04 EST - - - - 12950 - - 0 - LOG: server process >>> (PID 19702) was terminated by signal 11: Segmentation fault >> I couldn't reproduce this, either in HEAD or 12.10. However, maybe >> there's something faulty about your example, because in my hands it >> doesn't seem that plperl_spi_exec is reached at all. >> >> If we do need to do something here, my inclination would be to >> reject execution of any SPI operations during validation. That's >> not a case that's supposed to have any side-effects. >> >> regards, tom lane >
В списке pgsql-bugs по дате отправления: