Thread: Simple fix for contrib/xml2

Simple fix for contrib/xml2

From
Tom Lane
Date:
I'm beginning to think nobody is going to step up and fix contrib/xml2,
so I had a look at it myself.  It strikes me that there is a pretty
simple fix for it: just get rid of the attempt to manage libxml memory
via palloc, and don't do anything else.  The implication of this will
be that if an error is thrown out of one of the libxml2 functions,
we'll leak whatever memory libxml2 was using for the current document
(for the life of the session).  While this isn't great, it sure beats
crashing; and it seems like it might be about the appropriate level of
effort for a contrib module that's slated for destruction anyhow.
It looks to me like the only really probable elog cause within those
functions is out-of-memory, and even that wouldn't be very probable in
normal use.  So sticking in PG_TRY/PG_CATCH logic would be a significant
increment in effort for only very marginal returns.

Comments, objections?
        regards, tom lane


Re: Simple fix for contrib/xml2

From
Bruce Momjian
Date:
Tom Lane wrote:
> I'm beginning to think nobody is going to step up and fix contrib/xml2,
> so I had a look at it myself.  It strikes me that there is a pretty
> simple fix for it: just get rid of the attempt to manage libxml memory
> via palloc, and don't do anything else.  The implication of this will
> be that if an error is thrown out of one of the libxml2 functions,
> we'll leak whatever memory libxml2 was using for the current document
> (for the life of the session).  While this isn't great, it sure beats
> crashing; and it seems like it might be about the appropriate level of
> effort for a contrib module that's slated for destruction anyhow.
> It looks to me like the only really probable elog cause within those
> functions is out-of-memory, and even that wouldn't be very probable in
> normal use.  So sticking in PG_TRY/PG_CATCH logic would be a significant
> increment in effort for only very marginal returns.
> 
> Comments, objections?

FYI, I created a web page of all the open xml items:
http://momjian.us/cgi-bin/pgsql/mbox?xml

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 PG East:  http://www.enterprisedb.com/community/nav-pg-east-2010.do


Re: Simple fix for contrib/xml2

From
Tom Lane
Date:
Bruce Momjian <bruce@momjian.us> writes:
> FYI, I created a web page of all the open xml items:
>     http://momjian.us/cgi-bin/pgsql/mbox?xml

Oh, thanks, I was just about to go trawling through the archives to
verify all the reported failure cases really do get fixed this way.

I don't think you got em all though --- one I had on my list before
was bug #5079 ...
        regards, tom lane


Re: Simple fix for contrib/xml2

From
Alvaro Herrera
Date:
Tom Lane wrote:
> I'm beginning to think nobody is going to step up and fix contrib/xml2,
> so I had a look at it myself.

Funny -- I was about to start working on this when the earthquake hit
here ... glad you got it :-)

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support