Re: Regression with large XML data input
Jim Jones <jim.jones@uni-muenster.de>
From: Jim Jones <jim.jones@uni-muenster.de>
To: Tom Lane <tgl@sss.pgh.pa.us>, Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>,
Erik Wienhold <ewie@ewie.name>
Date: 2025-07-24T23:25:48Z
Lists: pgsql-hackers
On 24.07.25 21:23, Tom Lane wrote: > Oh, wait ... the plot thickens! The above statement is true > when testing on my Mac with libxml2 2.13.8 from MacPorts. > With either HEAD or f68d6aabb7e2^, I get errors similar to > what Erik just showed: > > ERROR: invalid XML content > DETAIL: line 1: Resource limit exceeded: Text node too long, try XML_PARSE_HUGE > XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX I get the same error with libxml2 2.9.14 on Ubuntu. > However, when testing on RHEL8 with libxml2 2.9.7, indeed > I get "Huge input lookup" with our current code but no > failure with f68d6aabb7e2^. > > The way I interpret these results is that in older libxml2 versions, > xmlParseBalancedChunkMemory is missing an XML_ERR_RESOURCE_LIMIT check > that does exist in newer versions. So even if we were to do some kind > of reversion, it would only prevent the error in libxml2 versions that > lack that check. And in those versions we'd probably be exposing > ourselves to resource-exhaustion problems. > > On the whole I'm thinking more and more that we don't want to > touch this. Our recommendation for processing multi-megabyte > chunks of XML should be "don't". Unless we want to find or > write a replacement for libxml2 ... which we have discussed, > but so far nothing's happened. I also believe that addressing this limitation may not be worth the associated risks. Moreover, a 10MB text node is rather large and probably exceeds the needs of most users. Best, Jim
Commits
-
Remove unnecessary complication around xmlParseBalancedChunkMemory.
- 902f92221889 19 (unreleased) landed
- cdcdabce5b70 14.19 landed
- 0ae824704070 13.22 landed
- 0928e18eb85a 15.14 landed
- d5f014d897c8 18.0 landed
- 762c6d8d26e0 16.10 landed
- 7571e0f6e924 17.6 landed
-
Avoid regression in the size of XML input that we will accept.
- 6d5e493b4a15 16.10 landed
- 589d6e6408b4 13.22 landed
- 0ffbd345e43d 15.14 landed
- 0395464aff02 14.19 landed
- fd4ad33fe223 17.6 landed
- 71c0921b649d 19 (unreleased) landed
- 637ead2e1aa1 18.0 landed
-
Use xmlParseInNodeContext not xmlParseBalancedChunkMemory.
- 6082b3d5d3d1 18.0 cited
-
Revert "Add support for parsing of large XML data (>= 10MB)"
- f2743a7d70e7 17.0 cited