forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit7428469
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 parentbe843ce commit7428469
1 file changed
+9
-2
lines changedLines changed: 9 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
361 | 361 |
| |
362 | 362 |
| |
363 | 363 |
| |
| 364 | + | |
364 | 365 |
| |
365 | 366 |
| |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
366 | 373 |
| |
367 | 374 |
| |
368 | 375 |
| |
| |||
413 | 420 |
| |
414 | 421 |
| |
415 | 422 |
| |
416 |
| - | |
417 |
| - | |
418 | 423 |
| |
| 424 | + | |
| 425 | + | |
419 | 426 |
| |
420 | 427 |
| |
421 | 428 |
| |
|
0 commit comments
Comments
(0)