Skip to content
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

Remove check from relcache invalidation callback #3434

Merged
merged 1 commit into from Jul 25, 2021

Conversation

mfundul
Copy link
Contributor

@mfundul mfundul commented Jul 22, 2021

The timescaledb extension checking code uses syscache lookups to
determine whether the proxy table exists. Doing syscache lookups
inside the invalidation callback context was corrupting the syscache.
For this reason, we remove this callback.

Fixes #3188

@codecov
Copy link

codecov bot commented Jul 22, 2021

Codecov Report

Merging #3434 (e46ae77) into master (0277ed7) will decrease coverage by 0.04%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3434      +/-   ##
==========================================
- Coverage   90.64%   90.60%   -0.05%     
==========================================
  Files         211      211              
  Lines       35689    35684       -5     
==========================================
- Hits        32350    32331      -19     
- Misses       3339     3353      +14     
Impacted Files Coverage Δ
src/loader/loader.c 92.17% <ø> (-0.60%) ⬇️
src/loader/bgw_message_queue.c 85.52% <0.00%> (-2.64%) ⬇️
src/loader/bgw_launcher.c 89.47% <0.00%> (-2.48%) ⬇️
tsl/src/nodes/data_node_dispatch.c 97.08% <0.00%> (-0.25%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0277ed7...e46ae77. Read the comment docs.

@@ -573,7 +565,6 @@ _PG_init(void)
* cannot check for extension here since not inside a transaction yet. Nor
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the above comment or assimilate it with the following comment.

Copy link
Contributor

@nikkhils nikkhils left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. With one change for the comment.

Copy link
Contributor

@pmwkaa pmwkaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think it is possible to make a test case for it?

The timescaledb extension checking code uses syscache lookups to
determine whether the proxy table exists. Doing syscache lookups
inside the invalidation callback context was corrupting the syscache.
For this reason, we remove this callback.
@mfundul mfundul merged commit 3a8f396 into timescale:master Jul 25, 2021
@mfundul mfundul deleted the fix-loader branch July 25, 2021 10:27
@gayyappan gayyappan mentioned this pull request Jul 26, 2021
gayyappan added a commit to gayyappan/timescaledb that referenced this pull request Jul 28, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. For this reason, from TimescaleDB 2.4 onwards PostgreSQL 12 or
13 are required.

**Experimental Features**
* timescale#3293 Add timescaledb_experimental schema
* timescale#3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* timescale#3211 Introduce experimental time_bucket_ng function
* timescale#3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* timescale#3408 Support for seconds, minutes and hours in time_bucket_ng

**Bugfixes**
* timescale#3401 Fix segfault for RelOptInfo without fdw_private
* timescale#3411 Verify compressed chunk validity for compressed path
* timescale#3416 Fix targetlist names for continuous aggregate views
* timescale#3434 Remove extension check from relcache invalidation callback
* timescale#3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit to gayyappan/timescaledb that referenced this pull request Jul 28, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. For this reason, from TimescaleDB 2.4 onwards PostgreSQL 12 or
13 are required.

**Experimental Features**
* timescale#3293 Add timescaledb_experimental schema
* timescale#3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* timescale#3211 Introduce experimental time_bucket_ng function
* timescale#3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* timescale#3408 Support for seconds, minutes and hours in time_bucket_ng

**Bugfixes**
* timescale#3401 Fix segfault for RelOptInfo without fdw_private
* timescale#3411 Verify compressed chunk validity for compressed path
* timescale#3416 Fix targetlist names for continuous aggregate views
* timescale#3434 Remove extension check from relcache invalidation callback
* timescale#3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit to gayyappan/timescaledb that referenced this pull request Jul 29, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. For this reason, from TimescaleDB 2.4 onwards PostgreSQL 12 or
13 are required.

**Experimental Features**
* timescale#3293 Add timescaledb_experimental schema
* timescale#3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* timescale#3211 Introduce experimental time_bucket_ng function
* timescale#3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* timescale#3408 Support for seconds, minutes and hours in time_bucket_ng

**Bugfixes**
* timescale#3401 Fix segfault for RelOptInfo without fdw_private
* timescale#3411 Verify compressed chunk validity for compressed path
* timescale#3416 Fix targetlist names for continuous aggregate views
* timescale#3434 Remove extension check from relcache invalidation callback
* timescale#3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit to gayyappan/timescaledb that referenced this pull request Jul 29, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. Postgres 11 is not supported with TimescaleDB 2.4.

**Experimental Features**
* timescale#3293 Add timescaledb_experimental schema
* timescale#3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* timescale#3211 Introduce experimental time_bucket_ng function
* timescale#3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* timescale#3408 Support for seconds, minutes and hours in time_bucket_ng
* timescale#3446 Implement cleanup for chunk copy/move.

**Bugfixes**
* timescale#3401 Fix segfault for RelOptInfo without fdw_private
* timescale#3411 Verify compressed chunk validity for compressed path
* timescale#3416 Fix targetlist names for continuous aggregate views
* timescale#3434 Remove extension check from relcache invalidation callback
* timescale#3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit to gayyappan/timescaledb that referenced this pull request Jul 29, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. Postgres 11 is not supported with TimescaleDB 2.4.

**Experimental Features**
* timescale#3293 Add timescaledb_experimental schema
* timescale#3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* timescale#3211 Introduce experimental time_bucket_ng function
* timescale#3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* timescale#3408 Support for seconds, minutes and hours in time_bucket_ng
* timescale#3446 Implement cleanup for chunk copy/move.

**Bugfixes**
* timescale#3401 Fix segfault for RelOptInfo without fdw_private
* timescale#3411 Verify compressed chunk validity for compressed path
* timescale#3416 Fix targetlist names for continuous aggregate views
* timescale#3434 Remove extension check from relcache invalidation callback
* timescale#3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit to gayyappan/timescaledb that referenced this pull request Jul 29, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. Postgres 11 is not supported with TimescaleDB 2.4.

**Experimental Features**
* timescale#3293 Add timescaledb_experimental schema
* timescale#3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* timescale#3211 Introduce experimental time_bucket_ng function
* timescale#3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* timescale#3408 Support for seconds, minutes and hours in time_bucket_ng
* timescale#3446 Implement cleanup for chunk copy/move.

**Bugfixes**
* timescale#3401 Fix segfault for RelOptInfo without fdw_private
* timescale#3411 Verify compressed chunk validity for compressed path
* timescale#3416 Fix targetlist names for continuous aggregate views
* timescale#3434 Remove extension check from relcache invalidation callback
* timescale#3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit to gayyappan/timescaledb that referenced this pull request Jul 29, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. Postgres 11 is not supported with TimescaleDB 2.4.

**Experimental Features**
* timescale#3293 Add timescaledb_experimental schema
* timescale#3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* timescale#3211 Introduce experimental time_bucket_ng function
* timescale#3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* timescale#3408 Support for seconds, minutes and hours in time_bucket_ng
* timescale#3446 Implement cleanup for chunk copy/move.

**Bugfixes**
* timescale#3401 Fix segfault for RelOptInfo without fdw_private
* timescale#3411 Verify compressed chunk validity for compressed path
* timescale#3416 Fix targetlist names for continuous aggregate views
* timescale#3434 Remove extension check from relcache invalidation callback
* timescale#3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit that referenced this pull request Jul 29, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. Postgres 11 is not supported with TimescaleDB 2.4.

**Experimental Features**
* #3293 Add timescaledb_experimental schema
* #3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* #3211 Introduce experimental time_bucket_ng function
* #3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* #3408 Support for seconds, minutes and hours in time_bucket_ng
* #3446 Implement cleanup for chunk copy/move.

**Bugfixes**
* #3401 Fix segfault for RelOptInfo without fdw_private
* #3411 Verify compressed chunk validity for compressed path
* #3416 Fix targetlist names for continuous aggregate views
* #3434 Remove extension check from relcache invalidation callback
* #3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
gayyappan added a commit that referenced this pull request Jul 29, 2021
This release adds new experimental features since the 2.3.1 release.

The experimental features in this release are:
* APIs for chunk manipulation across data nodes in a distributed
hypertable setup. This includes the ability to add a data node and move
chunks to the new data node for cluster rebalancing.
* The `time_bucket_ng` function, a newer version of `time_bucket`. This
function supports years, months, days, hours, minutes, and seconds.

We’re committed to developing these experiments, giving the community
 a chance to provide early feedback and influence the direction of
TimescaleDB’s development. We’ll travel faster with your input!

Please create your feedback as a GitHub issue (using the
experimental-schema label), describe what you found, and tell us the
steps or share the code snip to recreate it.

This release also includes several bug fixes.

PostgreSQL 11 deprecation announcement
Timescale is working hard on our next exciting features. To make that
possible, we require functionality that is available in Postgres 12 and
above. Postgres 11 is not supported with TimescaleDB 2.4.

**Experimental Features**
* #3293 Add timescaledb_experimental schema
* #3302 Add block_new_chunks and allow_new_chunks API to experimental
schema. Add chunk based refresh_continuous_aggregate.
* #3211 Introduce experimental time_bucket_ng function
* #3366 Allow use of experimental time_bucket_ng function in continuous aggregates
* #3408 Support for seconds, minutes and hours in time_bucket_ng
* #3446 Implement cleanup for chunk copy/move.

**Bugfixes**
* #3401 Fix segfault for RelOptInfo without fdw_private
* #3411 Verify compressed chunk validity for compressed path
* #3416 Fix targetlist names for continuous aggregate views
* #3434 Remove extension check from relcache invalidation callback
* #3440 Fix remote_tx_heal_data_node to work with only current database

**Thanks**
* @fvannee for reporting an issue with hypertable expansion in functions
* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full
* @hardikm10 for reporting an issue with inserting into compressed chunks
* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Segmentation Fault when VACUUM FULL pg_class
4 participants