-
Notifications
You must be signed in to change notification settings - Fork 885
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid decompressing batches using an empty slot #6117
Conversation
@jnidzwetzki, @gayyappan: please review this pull request.
|
When running COPY command into a compressed hypertable, we could end up using an empty slot for filtering compressed batches. This happens when a previously created copy buffer for a chunk does not contain any new tuples for inserting. The fix is to verify slots before attempting to do anything else.
Codecov Report
@@ Coverage Diff @@
## main #6117 +/- ##
==========================================
- Coverage 81.52% 81.45% -0.07%
==========================================
Files 246 246
Lines 56781 56737 -44
Branches 12588 12570 -18
==========================================
- Hits 46289 46214 -75
- Misses 8115 8132 +17
- Partials 2377 2391 +14
... and 20 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
19d1611
to
4a3f1ca
Compare
@@ -0,0 +1,1002 @@ | |||
generate_series,random |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is possible to use a small dataset?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really, it needs at least 1001 rows in order to trigger this because of the sizes of copy buffers.
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * timescale#6113 Fix planner distributed table count * timescale#6117 Avoid decompressing batches using an empty slot * timescale#6123 Fix concurrency errors in OSM API * timescale#6142 do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * timescale#6113 Fix planner distributed table count * timescale#6117 Avoid decompressing batches using an empty slot * timescale#6123 Fix concurrency errors in OSM API * timescale#6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * timescale#6113 Fix planner distributed table count * timescale#6117 Avoid decompressing batches using an empty slot * timescale#6123 Fix concurrency errors in OSM API * timescale#6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * timescale#6113 Fix planner distributed table count * timescale#6117 Avoid decompressing batches using an empty slot * timescale#6123 Fix concurrency errors in OSM API * timescale#6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * #6113 Fix planner distributed table count * #6117 Avoid decompressing batches using an empty slot * #6123 Fix concurrency errors in OSM API * #6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * timescale#6113 Fix planner distributed table count * timescale#6117 Avoid decompressing batches using an empty slot * timescale#6123 Fix concurrency errors in OSM API * timescale#6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * #6113 Fix planner distributed table count * #6117 Avoid decompressing batches using an empty slot * #6123 Fix concurrency errors in OSM API * #6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * timescale#6113 Fix planner distributed table count * timescale#6117 Avoid decompressing batches using an empty slot * timescale#6123 Fix concurrency errors in OSM API * timescale#6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
This release contains bug fixes since the 2.12.0 release. We recommend that you upgrade at the next available opportunity. **Bugfixes** * timescale#6113 Fix planner distributed table count * timescale#6117 Avoid decompressing batches using an empty slot * timescale#6123 Fix concurrency errors in OSM API * timescale#6142 Do not throw an error when deprecation GUC cannot be read **Thanks** * @symbx for reporting a crash when selecting from empty hypertables
When running COPY command into a compressed hypertable, we could end up using an empty slot for filtering compressed batches. This happens when a previously created copy buffer for a chunk does not contain any new tuples for inserting. The fix is to verify slots before attempting to do anything else.