forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit158f581
committed
Fix if/while thinko in read_stream.c edge case.
When we determine that a wanted block can't be combined with the currentpending read, it's time to start that read to get it out of the way. An"if" in that code path should have been a "while", because it might takemore than one go in case of partial reads. This was only broken forsmaller ranges, as the more common case of io_combine_limit-sized rangesis handled earlier in the code and knows how to loop, hiding the bug fora while.Discovered while testing large parallel sequential scans of partiallycached tables. The ramp-up-and-down block allocator for parallel scanscould hit the problem case and skip some blocks near the end that shouldhave been streamed.Defect in commitb5a9b18.Discussion:https://postgr.es/m/CA%2BhUKG%2Bh8Whpv0YsJqjMVkjYX%2B80fTVc6oi-V%2BzxJvykLpLHYQ%40mail.gmail.com1 parentbeb012b commit158f581
1 file changed
+1
-1
lines changedLines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
363 | 363 |
| |
364 | 364 |
| |
365 | 365 |
| |
366 |
| - | |
| 366 | + | |
367 | 367 |
| |
368 | 368 |
| |
369 | 369 |
| |
|
0 commit comments
Comments
(0)