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

release-23.2: sql/stats: fix panic catching in the stats cache, show histogram #136043

Merged
merged 1 commit into from
Nov 26, 2024

Commits on Nov 25, 2024

  1. sql/stats: fix panic catching in the stats cache, show histogram

    This commit removes a top-level panic catcher from GetTableStats in the stats
    cache, and instead adds a couple of lower level panic catchers. The problems
    with the top-level catcher are:
    - There are other entry points into the stats cache besides GetTableStats, so
      it missed some cases.
    - Because the stats cache contains shared state, condition variables, mutexes,
      etc, it was possible to get into a scenario where a panic would bypass
      important logic (such as broadcasting when a resource is available), but the
      panic would be caught at the top level and leave the cache in a bad state.
    The new panic catchers are below the level of this shared state manipulation,
    but also ensure that all paths into the stats cache that might panic are
    covered.
    
    This commit also adds panic catching to SHOW HISTOGRAM so that decoding errors
    do not crash the process when running SHOW HISTOGRAM.
    
    Fixes cockroachdb#135940
    
    Release note (bug fix): Fixed an issue where corrupted table statistics could
    cause the cockroach process to crash.
    rytaft committed Nov 25, 2024
    Configuration menu
    Copy the full SHA
    cccfe55 View commit details
    Browse the repository at this point in the history