Files
scylladb/utils
Marcin Maliszkiewicz 83999f7228 Merge 'utils: loading_cache: add insert() that is a no-op when caching is disabled' from Dario Mirovic
When `permissions_validity_in_ms` is set to 0, executing a prepared statement under authentication crashes with:
```
    Assertion `caching_enabled()' failed.
        at utils/loading_cache.hh:319
        in authorized_prepared_statements_cache::insert
```

`loading_cache::get_ptr()` asserts when caching is disabled (expiry == 0), but `authorized_prepared_statements_cache::insert()` was using it purely for its side effect of populating the cache, which is meaningless when caching is off.

Add a new `loading_cache::insert(k, load)` method that is a no-op when caching is disabled and otherwise forwards to `get_ptr()`. Switch `authorized_prepared_statements_cache::insert()` to use it. This
completes the disabled-mode safety contract of the cache for the write side, mirroring the fallback that `get()` already provides for the read side.

Includes a regression test in `test/boost/loading_cache_test.cc` plus a positive test for the new `insert()` overload.

Fixes SCYLLADB-1699

The crash is introduced a long time ago. It is present on all the live versions, from 2025.1 onward. No client tickets, but it should be backported.

Closes scylladb/scylladb#29638

* github.com:scylladb/scylladb:
  test: boost: regression test for loading_cache::insert with caching disabled
  utils: loading_cache: add insert() that is a no-op when caching is disabled

(cherry picked from commit c00fee0316)

Closes scylladb/scylladb#29762

Closes scylladb/scylladb#29782
2026-05-07 10:42:59 +03:00
..
2025-08-31 11:37:39 +03:00
2025-01-14 07:56:39 -05:00
2025-12-30 19:37:13 +03:00
2025-07-08 10:38:23 +03:00
2025-04-01 00:07:28 +02:00
2025-04-01 00:07:28 +02:00
2026-01-27 22:43:08 +00:00
2025-09-01 14:58:21 +03:00
2025-12-30 19:37:13 +03:00
2025-08-28 23:31:04 +02:00
2025-01-14 07:56:39 -05:00
2025-01-14 07:56:39 -05:00