pgsql: Work around perl bug in SvPVutf8().

Started by Andrew Dunstanabout 14 years ago4 messages
#1Andrew Dunstan
andrew@dunslane.net

Work around perl bug in SvPVutf8().

Certain things like typeglobs or readonly things like $^V cause
perl's SvPVutf8() to die nastily and crash the backend. To avoid
that bug we make a copy of the object, which will subsequently be
garbage collected.

Back patched to 9.1 where we first started using SvPVutf8().

Per -hackers discussion. Original problem reported by David Wheeler.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/2abefd9a92f3c02ad4f6030ac1578bbf314db368

Modified Files
--------------
src/pl/plperl/plperl_helpers.h | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)

#2Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#1)
Re: [COMMITTERS] pgsql: Work around perl bug in SvPVutf8().

On 01/05/2012 12:05 PM, Andrew Dunstan wrote:

Work around perl bug in SvPVutf8().

Certain things like typeglobs or readonly things like $^V cause
perl's SvPVutf8() to die nastily and crash the backend. To avoid
that bug we make a copy of the object, which will subsequently be
garbage collected.

Back patched to 9.1 where we first started using SvPVutf8().

Per -hackers discussion. Original problem reported by David Wheeler.

Ugh. This broke the regression tests. I'll get it fixed.

cheers

andrew

#3Alvaro Herrera
alvherre@commandprompt.com
In reply to: Andrew Dunstan (#2)
Re: [COMMITTERS] pgsql: Work around perl bug in SvPVutf8().

Excerpts from Andrew Dunstan's message of jue ene 05 19:06:54 -0300 2012:

On 01/05/2012 12:05 PM, Andrew Dunstan wrote:

Work around perl bug in SvPVutf8().

Certain things like typeglobs or readonly things like $^V cause
perl's SvPVutf8() to die nastily and crash the backend. To avoid
that bug we make a copy of the object, which will subsequently be
garbage collected.

Back patched to 9.1 where we first started using SvPVutf8().

Per -hackers discussion. Original problem reported by David Wheeler.

Ugh. This broke the regression tests. I'll get it fixed.

Yeah, notice that it's causing crashes, not just different results.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

#4Andrew Dunstan
andrew@dunslane.net
In reply to: Alvaro Herrera (#3)
Re: [COMMITTERS] pgsql: Work around perl bug in SvPVutf8().

On 01/05/2012 05:30 PM, Alvaro Herrera wrote:

Excerpts from Andrew Dunstan's message of jue ene 05 19:06:54 -0300 2012:

On 01/05/2012 12:05 PM, Andrew Dunstan wrote:

Work around perl bug in SvPVutf8().

Certain things like typeglobs or readonly things like $^V cause
perl's SvPVutf8() to die nastily and crash the backend. To avoid
that bug we make a copy of the object, which will subsequently be
garbage collected.

Back patched to 9.1 where we first started using SvPVutf8().

Per -hackers discussion. Original problem reported by David Wheeler.

Ugh. This broke the regression tests. I'll get it fixed.

Yeah, notice that it's causing crashes, not just different results.

Indeed. It looks like the garbage collection was a bit too eager, so I
have a fix where we control when it gets done.

cheers

andrew