From: Stefan Kaltenbrunner on
Tom Lane wrote:
> Stefan Kaltenbrunner <stefan(a)kaltenbrunner.cc> writes:
>> did that and it seems the problem is in the loop that does:
>
>> foreach my $row (@$data)
>> {
>
>> # To construct fmgroids.h and fmgrtab.c, we need to inspect some
>> # of the individual data fields. Just splitting on whitespace
>
> Huh. It's weird that I don't see a leak in either 5.8.7 or 5.10.1,
> which are the two closest perl versions I have handy here. I think
> this may be a platform-specific Perl bug. Still, it would be nice
> to work around it if we can.

yeah it is probably some strange platform specific issue - however with
some help from the IRC channel I came up with the following patch that
considerable reduces the memory bloat (but still needs ~55MB max) and
allows the build to succeed.


>
> I'm not nearly good enough in Perl to be sure about the semantics
> of this loop. Is it possible that it's changing the global contents
> of the @$data structure, rather than just hacking a local copy of
> each row before pushing some values into @fmgr?

hmm it is leaking a constant amount of 240kbyte per loop iteration with
the original code but yeah very weird issue...


Stefan
From: Stefan Kaltenbrunner on
Tom Lane wrote:
> Stefan Kaltenbrunner <stefan(a)kaltenbrunner.cc> writes:
>> yeah it is probably some strange platform specific issue - however with
>> some help from the IRC channel I came up with the following patch that
>> considerable reduces the memory bloat (but still needs ~55MB max) and
>> allows the build to succeed.
>
> What about Alvaro's idea of adding
>
> $row = undef;
>
> at the bottom of the loop? That seems marginally less ugly...

not sure I want to argue about the ugliness of perl but that has the
same effect as my patch so either way would do to get spoonbill green again.

Stefan

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers