forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitc627d94
committed
Add built-in ERROR handling for archive callbacks.
Presently, the archiver process restarts when an archive callbackERRORs. To avoid this, archive module authors can use sigsetjmp(),manage a memory context, etc., but that requires a lot of extracode that will likely look roughly the same between modules. Thiscommit adds basic archive callback ERROR handling to pgarch.c sothat module authors won't ordinarily need to worry about this.While this built-in handler attempts to clean up anything that anarchive module could conceivably have left behind, it is possiblethat some modules are doing unexpected things that requireadditional cleanup. Module authors should be sure to do any extrarequired cleanup in a PG_CATCH block within the archiving callback.The archiving callback is now called in a short-lived memorycontext that the archiver process resets between invocations. If amodule requires longer-lived storage, it must maintain its ownmemory context.Thanks to these changes, the basic_archive module can be greatlysimplified.Suggested-by: Andres FreundReviewed-by: Andres Freund, Yong LiDiscussion:https://postgr.es/m/20230217215624.GA3131134%40nathanxps131 parent5bec1d6 commitc627d94
File tree
4 files changed
+107
-136
lines changed- contrib/basic_archive
- doc/src/sgml
- src/backend
- archive
- postmaster
4 files changed
+107
-136
lines changedLines changed: 5 additions & 129 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
40 | 40 |
| |
41 | 41 |
| |
42 | 42 |
| |
43 |
| - | |
44 |
| - | |
45 |
| - | |
46 |
| - | |
47 |
| - | |
48 | 43 |
| |
49 | 44 |
| |
50 |
| - | |
51 | 45 |
| |
52 | 46 |
| |
53 |
| - | |
54 | 47 |
| |
55 | 48 |
| |
56 |
| - | |
57 | 49 |
| |
58 | 50 |
| |
59 |
| - | |
| 51 | + | |
60 | 52 |
| |
61 | 53 |
| |
62 |
| - | |
| 54 | + | |
63 | 55 |
| |
64 | 56 |
| |
65 | 57 |
| |
| |||
93 | 85 |
| |
94 | 86 |
| |
95 | 87 |
| |
96 |
| - | |
97 |
| - | |
98 |
| - | |
99 |
| - | |
100 |
| - | |
101 |
| - | |
102 |
| - | |
103 |
| - | |
104 |
| - | |
105 |
| - | |
106 |
| - | |
107 |
| - | |
108 |
| - | |
109 |
| - | |
110 |
| - | |
111 |
| - | |
112 |
| - | |
113 |
| - | |
114 | 88 |
| |
115 | 89 |
| |
116 | 90 |
| |
| |||
176 | 150 |
| |
177 | 151 |
| |
178 | 152 |
| |
179 |
| - | |
180 |
| - | |
181 |
| - | |
182 |
| - | |
183 |
| - | |
184 |
| - | |
185 |
| - | |
186 |
| - | |
187 |
| - | |
188 |
| - | |
189 |
| - | |
190 |
| - | |
191 |
| - | |
192 |
| - | |
193 |
| - | |
194 |
| - | |
195 |
| - | |
196 |
| - | |
197 |
| - | |
198 |
| - | |
199 |
| - | |
200 |
| - | |
201 |
| - | |
202 |
| - | |
203 |
| - | |
204 |
| - | |
205 |
| - | |
206 |
| - | |
207 |
| - | |
208 |
| - | |
209 |
| - | |
210 |
| - | |
211 |
| - | |
212 |
| - | |
213 |
| - | |
214 |
| - | |
215 |
| - | |
216 |
| - | |
217 |
| - | |
218 |
| - | |
219 |
| - | |
220 |
| - | |
221 |
| - | |
222 |
| - | |
223 |
| - | |
224 |
| - | |
225 |
| - | |
226 |
| - | |
227 |
| - | |
228 |
| - | |
229 |
| - | |
230 |
| - | |
231 |
| - | |
232 |
| - | |
233 |
| - | |
234 |
| - | |
235 |
| - | |
236 |
| - | |
237 |
| - | |
238 |
| - | |
239 |
| - | |
240 |
| - | |
241 |
| - | |
242 |
| - | |
243 |
| - | |
244 |
| - | |
245 |
| - | |
246 |
| - | |
247 | 153 |
| |
248 | 154 |
| |
249 | 155 |
| |
| |||
277 | 183 |
| |
278 | 184 |
| |
279 | 185 |
| |
280 |
| - | |
| 186 | + | |
281 | 187 |
| |
282 | 188 |
| |
283 | 189 |
| |
| |||
317 | 223 |
| |
318 | 224 |
| |
319 | 225 |
| |
| 226 | + | |
| 227 | + | |
320 | 228 |
| |
321 | 229 |
| |
322 | 230 |
| |
| |||
399 | 307 |
| |
400 | 308 |
| |
401 | 309 |
| |
402 |
| - | |
403 |
| - | |
404 |
| - | |
405 |
| - | |
406 |
| - | |
407 |
| - | |
408 |
| - | |
409 |
| - | |
410 |
| - | |
411 |
| - | |
412 |
| - | |
413 |
| - | |
414 |
| - | |
415 |
| - | |
416 |
| - | |
417 |
| - | |
418 |
| - | |
419 |
| - | |
420 |
| - | |
421 |
| - | |
422 |
| - | |
423 |
| - | |
424 |
| - | |
425 |
| - | |
426 |
| - | |
427 |
| - | |
428 |
| - | |
429 |
| - | |
430 |
| - | |
431 |
| - | |
432 |
| - | |
433 |
| - |
Lines changed: 10 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
140 | 140 |
| |
141 | 141 |
| |
142 | 142 |
| |
143 |
| - | |
| 143 | + | |
144 | 144 |
| |
145 | 145 |
| |
146 | 146 |
| |
147 | 147 |
| |
148 | 148 |
| |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
149 | 158 |
| |
150 | 159 |
| |
151 | 160 |
| |
|
Lines changed: 0 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
71 | 71 |
| |
72 | 72 |
| |
73 | 73 |
| |
74 |
| - | |
75 |
| - | |
76 |
| - | |
77 | 74 |
| |
78 | 75 |
| |
79 | 76 |
| |
| |||
132 | 129 |
| |
133 | 130 |
| |
134 | 131 |
| |
135 |
| - | |
136 |
| - | |
137 | 132 |
| |
138 | 133 |
| |
139 | 134 |
| |
|
Lines changed: 92 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
39 | 39 |
| |
40 | 40 |
| |
41 | 41 |
| |
| 42 | + | |
42 | 43 |
| |
43 | 44 |
| |
44 | 45 |
| |
| |||
49 | 50 |
| |
50 | 51 |
| |
51 | 52 |
| |
| 53 | + | |
| 54 | + | |
52 | 55 |
| |
53 | 56 |
| |
54 | 57 |
| |
| |||
100 | 103 |
| |
101 | 104 |
| |
102 | 105 |
| |
| 106 | + | |
103 | 107 |
| |
104 | 108 |
| |
105 | 109 |
| |
| |||
257 | 261 |
| |
258 | 262 |
| |
259 | 263 |
| |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
260 | 269 |
| |
261 | 270 |
| |
262 | 271 |
| |
| |||
507 | 516 |
| |
508 | 517 |
| |
509 | 518 |
| |
| 519 | + | |
| 520 | + | |
510 | 521 |
| |
511 | 522 |
| |
512 | 523 |
| |
| |||
517 | 528 |
| |
518 | 529 |
| |
519 | 530 |
| |
520 |
| - | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
521 | 612 |
| |
522 | 613 |
| |
523 | 614 |
| |
|
0 commit comments
Comments
(0)