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>
Cc: Erik Wienhold <ewie@ewie.name>, Michael Paquier <michael@paquier.xyz>,
Robert Treat <rob@xzilla.net>,
Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-29T14:01:19Z
Lists: pgsql-hackers
On 29.07.25 14:11, Tom Lane wrote: > In the original coding, there was a hazard of the node list getting > leaked if the caller passed parsed_nodes == NULL. Or at least I > thought there was. It may be that all releases of libxml2 are smart > enough to free the node list if there's no way to pass it back, > but I guess we had reason not to trust it. Possibly there's something > about that in the discussion that led up to 6082b3d5d, though I see > I neglected to mention it in the commit message. I see.. thanks for explaining. I went through the discussions and the libxml2 issue, and I also think it is prudent to keep it like that :) Could you add a short comment to it? Something like this: /* * We use a local variable (node_list) to receive the result * from xmlParseBalancedChunkMemory(), even though we might * eventually return it via parsed_nodes. This ensures that we * retain control of the memory and can safely free it here * in case of parse errors or early exits. * * If parsing fails, we free node_list immediately. If parsing * succeeds, we assign it to *parsed_nodes (if provided), which * will later be attached to the document tree. Otherwise, if * the caller is not interested in the parsed nodes (i.e., * parsed_nodes == NULL), we free them immediately. * */ Thanks! 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