Skip to content

Data corruption trying to run bbview on single node #1

Description

@denisbertini

Environment

  • OpenMPI version: 6.1.a1 (built from source with BBView submodule)
  • BBView commit: [current commit hash]
  • System: Rocky Linux 8, Lustre filesystem, NVMe local storage (/tmp)
  • MPI Implementation: (Open MPI) 6.1.0a1 with BBView

Data Corruption Due to Unaligned I/O

Description

When writing non-contiguous data with BBView, the data becomes corrupted. The corruption occurs during the initial write to the burst buffer (/tmp/NVMe), not during the flush to Lustre.

Steps to Reproduce

  1. Build OpenMPI (git repo master ) with BBView following the instructions
  2. Run the provided benchmark with verification:
# Start bbviewd
bbviewd 1 &


# Write test file
mpirun -np 2 ./bbview_benchmark -f /lustre/test.out -s 10 -c 100

### Errors data corrupted 

mpirun -np 2 ./bbview_benchmark -f /lustre/rz/dbertini/test.out -s 10 -c 100 -v
Configuration: 2 ranks, 10 MB/rank, 100 chunks, 104857 bytes/chunk
chunk 0: offset=0, size=104857
chunk 1: offset=209714, size=104857
chunk 2: offset=419428, size=104857
chunk 3: offset=629142, size=104857
chunk 4: offset=838856, size=104857
Not using O_DIRECT for /tmp//lustre-rz-dbertini-test.out-0-1
Not using O_DIRECT for /tmp//lustre-rz-dbertini-test.out-1-1
mca_fbtl_posix_pwritev: error in (p)write(v):Bad address
mca_fbtl_posix_pwritev: error in (p)write(v):Bad address
Flushing file /lustre/rz/dbertini/test.out for view index 1
Flushing file /lustre/rz/dbertini/test.out for view index 1
bbviewd[3898601]: bbviewd: begin /tmp//lustre-rz-dbertini-test.out-0-1 -> /lustre/rz/dbertini/test.out

========================================
BBView Benchmark Results

File: /lustre/rz/dbertini/test.out
Ranks: 2
Data per rank: 10 MB
Total data: 20.00 MB
Chunks/rank: 100
Chunk size: 104857 bytes

Write Performance:
Write time (min/avg/max): 0.001 / 0.001 / 0.001 seconds
Aggregate bandwidth: 31871.04 MB/s (31.12 GB/s)

Close Performance:
Close time (min/avg/max): 0.001 / 0.001 / 0.001 seconds

bbviewd[3898601]: bbviewd: end /tmp//lustre-rz-dbertini-test.out-0-1 -> /lustre/rz/dbertini/test.out
bbviewd[3898601]: bbviewd: begin /tmp//lustre-rz-dbertini-test.out-1-1 -> /lustre/rz/dbertini/test.out
bbviewd[3898601]: bbviewd: end /tmp//lustre-rz-dbertini-test.out-1-1 -> /lustre/rz/dbertini/test.out


Any  idea what these errors means:

Not using O_DIRECT for /tmp//lustre-rz-dbertini-test.out-0-1
Not using O_DIRECT for /tmp//lustre-rz-dbertini-test.out-1-1
mca_fbtl_posix_pwritev: error in (p)write(v):Bad address
mca_fbtl_posix_pwritev: error in (p)write(v):Bad address

responsible of data corruption!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions