Build: #6 was successful Changes by Rui Xue <rx.astro@gmail.com>

Code commits

casa6 - no submodules

  • Rui Xue <rx.astro@gmail.com>

    Rui Xue <rx.astro@gmail.com> 4b3bfca414918261df2401ecd4274572d83dbf8f

    CAS-14756: use AutoNoReadLocking(inspectInterval=1s) in writeBackToFullImage
    NoLocking was allowing concurrent table.dat_tmp→table.dat renames to race
    across MPI workers, causing "RegularFile::move error: No such file or
    directory" in rank N's PagedImage destructor (job on cvpost124, build-5).

    casacore's table.dat metadata file is always shared — even when tile data
    blocks are strictly disjoint. NoLocking is therefore not safe for concurrent
    writers.

    AutoNoReadLocking with the default inspectInterval=0 is safe (the write lock
    is held from first putSlice to flush), but autoRelease() becomes a no-op and
    the entire writeback is serialized across workers — identical throughput to
    UserLocking.

    Setting inspectInterval=1.0 activates periodic lock inspection: every ~1 s
    autoRelease() checks whether another worker wants the lock; if so it flushes
    table.dat and releases, then the waiting worker acquires. Tile data I/O
    interleaves across workers (disjoint blocks → no contention); only the brief
    table.dat rename is serialized per transfer.