- Notifications
You must be signed in to change notification settings - Fork28
Commit75d091a
committed
Fix brain fade in DefineIndex(): it was continuing to access the table's
relcache entry after having heap_close'd it. This could lead to misbehaviorif a relcache flush wiped out the cache entry meanwhile. In 8.2 there is avery real risk of CREATE INDEX CONCURRENTLY using the wrong relid for lockingand waiting purposes. I think the bug is only cosmetic in 8.0 and 8.1,because their transgression is limited to using RelationGetRelationName(rel)in an ereport message immediately after heap_close, and there's no way (exceptwith special debugging options) for a cache flush to occur in that interval.Not quite sure that it's cosmetic in 7.4, but seems best to patch anyway.Found by trying to run the regression tests with CLOBBER_CACHE_ALWAYS enabled.Maybe we should try to do that on a regular basis --- it's awfully slow,but perhaps some fast buildfarm machine could do it once in awhile.1 parent2116826 commit75d091a
1 file changed
+5
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
428 | 428 | | |
429 | 429 | | |
430 | 430 | | |
431 | | - | |
432 | | - | |
433 | 431 | | |
434 | 432 | | |
435 | 433 | | |
| |||
441 | 439 | | |
442 | 440 | | |
443 | 441 | | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
444 | 446 | | |
445 | 447 | | |
446 | 448 | | |
| |||
468 | 470 | | |
469 | 471 | | |
470 | 472 | | |
471 | | - | |
472 | 473 | | |
473 | 474 | | |
474 | 475 | | |
| |||
0 commit comments
Comments
(0)