John Spray
John Spray
The commit at https://github.com/travisdowns/redpanda/commit/bcac15c120d38051d40365358bd161ded95f9d40 is going to help, but it won't get a NodeCrash exception -- in cluster.py we do raise_on_bad_logs only on test success, and raise_on_crash only on test...
So, `config_multi_property_validation` is a place we can do things like requiring two properties are mutually exclusive, although that only applies to API PUTs -- if bad configs are loaded via...
Thoughts on adjusting the overall config loading to be more strict against inputs that try and configure multiple backends: - Adjust `cloud_storage::configuration::get_config` to use a stricter set of checks than...
Also noticed this today on the long running test cluster (it only got upgraded to 23.1 a day or so ago). No sign of it having an impact (uploads appeared...
This has started to come up in automated tests. FAIL test: KgoVerifierWithSiTestLargeSegments.test_si_with_timeboxed.cloud_storage_type=CloudStorageType.S3 (1/2 runs) failure at 2023-05-04T17:16:24.037Z: on (amd64, VM) in job https://buildkite.com/redpanda/vtools/builds/7377#0187e5cb-c7ac-45a5-a783-89ebbe7df193 FAIL test: CloudRetentionTest.test_cloud_retention.max_consume_rate_mb=20.cloud_storage_type=CloudStorageType.S3 (1/31 runs) failure at...
Dropping a whole OID is straightforward. The logic in get_vectored_reconstruct_data can be extended where we do this: ``` // Do not descend into the ancestor timeline for aux files. //...
Hmm, so there's an `add_definition` function that might be usable if we put all our model definitions in separate files. The concatenation code in seastar src/http/api_docs.cc knows how to list...
A cleaner reproducer that uses layer eviction + on-demand downloads to prove which layers are touched by a getpage request: https://github.com/neondatabase/neon/tree/jcsp/layer-map-search-at-image-lsn-3 This test does reads at exactly the LSN of...
Perhaps this piece of logic is at fault in get_vectored_reconstruct_data_timeline: ``` match in_memory_layer { Some(l) => { let lsn_range = l.get_lsn_range().start..cont_lsn; fringe.update( ReadableLayer::InMemoryLayer(l), unmapped_keyspace.clone(), lsn_range, ); } ``` ...because lsn_range...
> This would work for read replicas too AFAICS Sort of: if some thing called into the API on their behalf regularly. Maybe the implementations can kind of converge: we...