Skip to content

Commit a7bdc00

Browse files
committed
debug windows
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
1 parent ef2eebb commit a7bdc00

2 files changed

Lines changed: 119 additions & 17 deletions

File tree

.github/workflows/ci.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,15 +329,20 @@ jobs:
329329
- name: Rust Tests (Windows)
330330
if: matrix.os == 'windows-x64'
331331
run: |
332+
# TEMP: full Windows workspace serial run while debugging PR #8322 hangs.
333+
# Targeted packages and both package-split runs pass quickly, so test whether the
334+
# original full workspace only hangs under nextest parallelism.
332335
cargo nextest run --cargo-profile ci --locked --workspace --all-features --no-fail-fast `
333-
--exclude vortex-bench `
336+
--test-threads 1 `
337+
--exclude vortex-bench --exclude vortex-bench-server `
334338
--exclude vortex-python --exclude vortex-duckdb `
335339
--exclude vortex-fuzz --exclude vortex-cuda --exclude vortex-cuda-ffi `
336340
--exclude vortex-nvcomp --exclude vortex-cub --exclude vortex-test-e2e-cuda `
337341
--exclude duckdb-bench `
338342
--exclude lance-bench --exclude datafusion-bench --exclude random-access-bench `
339343
--exclude compress-bench --exclude xtask --exclude vortex-datafusion `
340-
--exclude gpu-scan-cli --exclude vortex-sqllogictest
344+
--exclude gpu-scan-cli --exclude vortex-sqllogictest `
345+
--status-level all --final-status-level all
341346
- name: Rust Tests (Other)
342347
if: matrix.os != 'windows-x64'
343348
run: |

encodings/parquet-variant/src/vtable.rs

Lines changed: 112 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,16 @@ mod tests {
344344
use crate::ParquetVariant;
345345
use crate::array::ParquetVariantArrayExt;
346346

347+
fn debug_step(test: &str, step: &str) {
348+
use std::io::Write as _;
349+
350+
println!(
351+
"[parquet_variant::{test}] {step} thread={:?}",
352+
std::thread::current().id()
353+
);
354+
drop(std::io::stdout().flush());
355+
}
356+
347357
fn roundtrip(array: ArrayRef) -> VortexResult<ArrayRef> {
348358
let dtype = array.dtype().clone();
349359
let len = array.len();
@@ -366,6 +376,7 @@ mod tests {
366376

367377
#[fixture]
368378
fn typed_value_variant_array() -> VortexResult<ArrayRef> {
379+
debug_step("typed_value_variant_array", "building fixture");
369380
let mut metadata = BinaryViewBuilder::new();
370381
for _ in 0..3 {
371382
metadata.append_value(b"\x01\x00");
@@ -382,27 +393,35 @@ mod tests {
382393
None,
383394
)?;
384395

385-
ParquetVariant::from_arrow_variant(&ArrowVariantArray::try_new(&arrow_storage)?)
396+
let array =
397+
ParquetVariant::from_arrow_variant(&ArrowVariantArray::try_new(&arrow_storage)?);
398+
debug_step("typed_value_variant_array", "built fixture");
399+
array
386400
}
387401

388402
#[fixture]
389403
fn parquet_variant_file_session() -> VortexSession {
404+
debug_step("parquet_variant_file_session", "building session");
390405
let session = VortexSession::empty()
391406
.with::<ArraySession>()
392407
.with::<LayoutSession>()
393408
.with::<RuntimeSession>();
394409
vortex_file::register_default_encodings(&session);
395410
session.arrays().register(ParquetVariant);
411+
debug_step("parquet_variant_file_session", "built session");
396412
session
397413
}
398414

399415
#[fixture]
400416
fn write_strategy() -> Arc<dyn LayoutStrategy> {
417+
debug_step("write_strategy", "building zoned write strategy");
401418
let mut allowed = vortex_file::ALLOWED_ENCODINGS.clone();
402419
allowed.insert(ParquetVariant.id());
403-
vortex_file::WriteStrategyBuilder::default()
420+
let strategy = vortex_file::WriteStrategyBuilder::default()
404421
.with_allow_encodings(allowed)
405-
.build()
422+
.build();
423+
debug_step("write_strategy", "built zoned write strategy");
424+
strategy
406425
}
407426

408427
#[test]
@@ -451,24 +470,63 @@ mod tests {
451470
#[from(typed_value_variant_array)] expected: VortexResult<ArrayRef>,
452471
parquet_variant_file_session: VortexSession,
453472
) -> VortexResult<()> {
473+
debug_step(
474+
"test_file_roundtrip_typed_value_variant_with_statistics",
475+
"start",
476+
);
454477
let expected = expected?;
478+
debug_step(
479+
"test_file_roundtrip_typed_value_variant_with_statistics",
480+
"resolved expected array",
481+
);
455482

456483
let mut bytes = ByteBufferMut::empty();
484+
debug_step(
485+
"test_file_roundtrip_typed_value_variant_with_statistics",
486+
"starting flat write",
487+
);
457488
parquet_variant_file_session
458489
.write_options()
459490
.with_strategy(Arc::new(FlatLayoutStrategy::default()))
460491
.write(&mut bytes, expected.to_array_stream())
461492
.await?;
493+
debug_step(
494+
"test_file_roundtrip_typed_value_variant_with_statistics",
495+
&format!("finished flat write bytes_len={}", bytes.len()),
496+
);
462497

463-
let actual = parquet_variant_file_session
498+
debug_step(
499+
"test_file_roundtrip_typed_value_variant_with_statistics",
500+
"opening buffer",
501+
);
502+
let opened = parquet_variant_file_session
464503
.open_options()
465-
.open_buffer(bytes)?
466-
.scan()?
467-
.into_array_stream()?
468-
.read_all()
469-
.await?;
504+
.open_buffer(bytes)?;
505+
debug_step(
506+
"test_file_roundtrip_typed_value_variant_with_statistics",
507+
"opened buffer",
508+
);
509+
let scan = opened.scan()?;
510+
debug_step(
511+
"test_file_roundtrip_typed_value_variant_with_statistics",
512+
"created scan",
513+
);
514+
let stream = scan.into_array_stream()?;
515+
debug_step(
516+
"test_file_roundtrip_typed_value_variant_with_statistics",
517+
"created array stream",
518+
);
519+
let actual = stream.read_all().await?;
520+
debug_step(
521+
"test_file_roundtrip_typed_value_variant_with_statistics",
522+
"read all arrays",
523+
);
470524

471525
assert_arrays_eq!(expected, actual);
526+
debug_step(
527+
"test_file_roundtrip_typed_value_variant_with_statistics",
528+
"done",
529+
);
472530
Ok(())
473531
}
474532

@@ -479,24 +537,63 @@ mod tests {
479537
parquet_variant_file_session: VortexSession,
480538
write_strategy: Arc<dyn LayoutStrategy>,
481539
) -> VortexResult<()> {
540+
debug_step(
541+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
542+
"start",
543+
);
482544
let expected = expected?;
545+
debug_step(
546+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
547+
"resolved expected array",
548+
);
483549

484550
let mut bytes = ByteBufferMut::empty();
551+
debug_step(
552+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
553+
"starting zoned write",
554+
);
485555
parquet_variant_file_session
486556
.write_options()
487557
.with_strategy(write_strategy)
488558
.write(&mut bytes, expected.to_array_stream())
489559
.await?;
560+
debug_step(
561+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
562+
&format!("finished zoned write bytes_len={}", bytes.len()),
563+
);
490564

491-
let actual = parquet_variant_file_session
565+
debug_step(
566+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
567+
"opening buffer",
568+
);
569+
let opened = parquet_variant_file_session
492570
.open_options()
493-
.open_buffer(bytes)?
494-
.scan()?
495-
.into_array_stream()?
496-
.read_all()
497-
.await?;
571+
.open_buffer(bytes)?;
572+
debug_step(
573+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
574+
"opened buffer",
575+
);
576+
let scan = opened.scan()?;
577+
debug_step(
578+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
579+
"created scan",
580+
);
581+
let stream = scan.into_array_stream()?;
582+
debug_step(
583+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
584+
"created array stream",
585+
);
586+
let actual = stream.read_all().await?;
587+
debug_step(
588+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
589+
"read all arrays",
590+
);
498591

499592
assert_arrays_eq!(expected, actual);
593+
debug_step(
594+
"test_file_roundtrip_typed_value_variant_with_zoned_strategy",
595+
"done",
596+
);
500597
Ok(())
501598
}
502599

0 commit comments

Comments
 (0)