BUG #5334: Version 2.22 of Perl Safe module breaks UTF8 PostgreSQL 8.4 - Mailing list pgsql-bugs

From Tim Bunce
Subject BUG #5334: Version 2.22 of Perl Safe module breaks UTF8 PostgreSQL 8.4
Date
Msg-id 201002181050.o1IAoNIL062106@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #5334: Version 2.22 of Perl Safe module breaks UTF8 PostgreSQL 8.4  (Tim Bunce <Tim.Bunce@pobox.com>)
List pgsql-bugs
The following bug has been logged online:

Bug reference:      5334
Logged by:          Tim Bunce
Email address:      Tim.Bunce@pobox.com
PostgreSQL version: 8.4.2
Operating system:   OS X
Description:        Version 2.22 of Perl Safe module breaks UTF8 PostgreSQL
8.4
Details:

Version 2.22 of the Perl Safe module breaks PostgreSQL 8.4 (and probably
earlier versions) that have a default encoding of UTF-8.

Safe 2.2x added extra security for closures created inside Safe but then
returned and executed from outside Safe (which is what PostgreSQL does).
These closures are now wrapped so that they are executed with Safe
restrictions in effect.

This extra security is causing the 'utf8fix' code in PostgreSQL 8.4 to die
(with the error "'require' trapped by operation mask").

I'm investigating this currently but don't yet have a complete fix. (The
immediate problem appears to be easily fixed by switching to the simpler
utf8fix code I added for PostgreSQL 9.0. But a failure still happens if
warn() is called with utf8 string.)

pgsql-bugs by date:

Previous
From: janandith jayawardena
Date:
Subject: Re: BUG #5327: postgresql gives checksum error when upgrading 8.2.6 binaries to 8.2.14 in windows.
Next
From: "Tim Bunce"
Date:
Subject: BUG #5335: GUC value lost on exception