- Notifications
You must be signed in to change notification settings - Fork28
Commit5868913
committed
Fix ancient memory leak in contrib/auto_explain.
The ExecutorEnd hook is invoked in a context that could be quitelong-lived, not the executor's own per-query context as I thinkwe were sort of assuming. Thus, any cruft generated while producingthe EXPLAIN output could accumulate over multiple queries. This canresult in spectacular leakage if log_nested_statements is on, andeven without that I'm surprised nobody complained before.To fix, just switch into the executor's context so that anything weallocate will be released when standard_ExecutorEnd frees the executorstate. We might as well nuke the code's retail pfree of the explainoutput string, too; that's laughably inadequate to the need.Japin Li, per report from Jeff Janes. This bug is old, soback-patch to all supported branches.Discussion:https://postgr.es/m/CAMkU=1wCVtbeRn0s9gt12KwQ7PLXovbpM8eg25SYocKW3BT4hg@mail.gmail.com1 parentdae5af6 commit5868913
1 file changed
+9
-2
lines changedLines changed: 9 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
371 | 371 |
| |
372 | 372 |
| |
373 | 373 |
| |
| 374 | + | |
374 | 375 |
| |
375 | 376 |
| |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
376 | 383 |
| |
377 | 384 |
| |
378 | 385 |
| |
| |||
424 | 431 |
| |
425 | 432 |
| |
426 | 433 |
| |
427 |
| - | |
428 |
| - | |
429 | 434 |
| |
| 435 | + | |
| 436 | + | |
430 | 437 |
| |
431 | 438 |
| |
432 | 439 |
| |
|
0 commit comments
Comments
(0)