AdamGS commented on issue #16452:
URL: https://github.com/apache/datafusion/issues/16452#issuecomment-2988170885
I've built a repro that fails consistently, and the most interesting part of
it is that when using the default test runtime (which is a tokio current thread
variant), the test passes.
It only fails with the multithreaded runtime which makes me think this is
indeed a tokio futures interleaving issue. I'll give it some more time later
tonight.
```rust
#[tokio::test(flavor = "multi_thread")]
async fn test_reproduce_sort_query_issue_16452() {
// Seeds from the failing test case
let init_seed = 10313160656544581998u64;
let query_seed = 15004039071976572201u64;
let config_seed_1 = 11807432710583113300u64;
let config_seed_2 = 759937414670321802u64;
// Use a fixed seed to replicate the original behavior more closely
let random_seed = 1u64; // Use a fixed seed to ensure consistent behavior
println!("Creating test generator with same config as original
runner...");
let mut test_generator = SortFuzzerTestGenerator::new(
2000,
3,
"sort_fuzz_table".to_string(),
get_supported_types_columns(random_seed),
false,
random_seed,
);
let mut results = vec![];
for config_seed in [config_seed_1, config_seed_2] {
let r = test_generator
.fuzzer_run(init_seed, query_seed, config_seed)
.await
.unwrap();
results.push(r);
}
dbg!(results.len());
for (lhs, rhs) in results.iter().tuple_windows() {
check_equality_of_batches(lhs, rhs).unwrap();
}
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]