Re: Bug plperl.c
От | Mark Murawski |
---|---|
Тема | Re: Bug plperl.c |
Дата | |
Msg-id | 73ce9f5a-c11d-2626-199b-8b9dde1d432e@intellasoft.net обсуждение исходный текст |
Ответ на | Re: Bug plperl.c (Mark Murawski <markm-lists@intellasoft.net>) |
Ответы |
Re: Bug plperl.c
|
Список | pgsql-bugs |
HI Tom, Were you able to reproduce using the updated example? Thanks. On 2/22/22 15:27, Mark Murawski wrote: > 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 по дате отправления: