Build: #165 was successful
Job: Test Tools Many Linux 2.28 Rocky 8.10 Py3.12 was successful
Code commits
CASA6
-
Dirk Petry <dpetry@eso.org> 059b8ab234522648c1fb903cb3dd576ba9a4b65b
Pull request #1052: CAS-14694
Merge in CASA/casa6 from CAS-14694 to master
* commit '6f1345ac52f7252da24ccdc916163333039734d1':
For CAS-14694: In SolvableVisCal::setSimulate, for simulation of DJones only, short-circuit VI major and minor iteration over the MS so that instrumental polarization is neither time- nor (for mosaic sims) field-dependent. This breaks 'testSky_intLeak' in test_task_simobserve.py. NB: this is not yet a complete polarimetry simulation because parang is not yet treated.
CAS-14694: update simobserve task built-in help for leakage parameter
CAS-14694: make simobserve produce full-pol simulation when input model image is full-pol, independent of leakage
CAS-14694: activated test case testNZ_intMan_Leak and made sure leakage is only applied for obsmode='int'
Enable teardown for test_task_simobserve
CAS-14694: Made ANoise::nPar() in AMueller.h return 4 instead of 2.
CAS-14694: changes which seem to solve the remaining problems
CAS-14694: reverted use of sm.setfeed in simobserve task
CAS-14694 modified the task script to make appropriate sm tool calls when leakage>0 -
George Moellenbrock 6f1345ac52f7252da24ccdc916163333039734d1
For CAS-14694: In SolvableVisCal::setSimulate, for simulation of DJones only, short-circuit VI major and minor iteration over the MS so that instrumental polarization is neither time- nor (for mosaic sims) field-dependent. This breaks 'testSky_intLeak' in test_task_simobserve.py. NB: this is not yet a complete polarimetry simulation because parang is not yet treated.
-
Rui Xue 8f5e9581750c4df973277e17e3e5d999f318e7f7
Pull request #1030: CAS-14758: Optimize image processing by caching tool handles in fill_summary_minor to avoid redundant open/close operations
Merge in CASA/casa6 from CAS-14758 to master
* commit 'a46b0fa46be4985558dfe705e9f2eccf577b4aed':
CAS-14758: Handle missing residual images when constructing minor cycle summary
CAS-14758: Optimize image processing by caching tool handles in fill_summary_minor to avoid redundant open/close operations -
Rui Xue 44d9e7387ac3f53b7841b93a583e1354e361c06f
Pull request #1040: CAS-14622
Merge in CASA/casa6 from CAS-14622 to master
* commit '6599d358e517e2dc3f94260a0d8770dd0cc64964':
CAS-14622: Fix out-of-bounds MPI segmentation faults in BriggsCubeWeightor
CAS-14622: Fix ncores-dependent tclean segmentation fault in `BriggsCubeWeightor` -
Dirk Petry <dpetry@eso.org> e9db1cf9435f211d68a67190f8e650670a5de0eb
CAS-14694: update simobserve task built-in help for leakage parameter
-
Dirk Petry <dpetry@eso.org> 567c15cd27e8383205d3d8cee02a0be9b68ef5c4
Merge branch 'master' into CAS-14694
-
Akeem Wells 6599d358e517e2dc3f94260a0d8770dd0cc64964
Merge branch 'master' into CAS-14622
-
Srikrishna Sekhar a46b0fa46be4985558dfe705e9f2eccf577b4aed m
Merge remote-tracking branch 'origin/master' into CAS-14758
-
Dirk Petry <dpetry@eso.org> 84f01fe0d32bbe506c9c0a9eb98a6b79da1636e8 m
CAS-14694: make simobserve produce full-pol simulation when input model image is full-pol, independent of leakage
-
Akeem Wells fe4695a054c35ccb9b648d91e0871c322bc267ad m
Merge branch 'master' into CAS-14622
-
Rui Xue ce691fac04de68e393cb9495357f72e9271ff892 m
CAS-14758: Handle missing residual images when constructing minor cycle summary
-
Rui Xue f03ba5194e6eaca95fb699a2fa3cccd2c7658cbf m
CAS-14758: Optimize image processing by caching tool handles in fill_summary_minor to avoid redundant open/close operations
-
Rui Xue 8fbe09615738a7a02c5c218a2ba4598911874183 m
CAS-14622: Fix out-of-bounds MPI segmentation faults in BriggsCubeWeightor
The SynthesisImager uses BriggsCubeWeightor to compute weights for the image cube. During distributed MPI execution (`ncores > 1`), the output cube's spectral axis is partitioned across multiple nodes into smaller local subcubes.
When evaluating MS data channels, `GridFT::channelMap` maps the visibilities' frequencies into the local subcube's channel indices. If an MS contains dataset frequencies (e.g., from large Doppler swings or wide ephemeris velocity changes) that land *above* the local MPI subcube's maximum channel, `channelMap` returns an index exceeding the local array bounds.
Previously, BriggsCubeWeightor only checked the lower bound (`chanMap(chn) > -1`) before using the calculated index to access `wgtDensity` and the `f2_p`/`d2_p` arrays. Accessing these arrays with indices belonging to higher MPI partitions resulted in unconstrained out-of-bounds memory accesses, causing silent heap corruption or explicit Segmentation Faults, heavily dependent on the MPI slicing and dataset footprint.
This commit resolves the issue by introducing strict upper-bound channel footprint constraints (`chanMap(chn) < shape()[3]`) in both `weightUniform` and `getWeightUniform`. Data channels that mathematically fall outside the upper bounds of the local MPI partition are now securely ignored. -
Rui Xue 3000ee0fe103736833f139a6c7dbdf3eca4abb82 m
CAS-14622: Fix ncores-dependent tclean segmentation fault in `BriggsCubeWeightor`
The SynthesisImager uses `BriggsCubeWeightor` to compute weights for the image cube. During this calculation, `BriggsCubeWeightor::cube2Matrix` extracts raw storage pointers `pcube` and `pflags` from `casacore::Array::getStorage(deleteIt)`.
Previously, the code incremented these exact pointers (`*pflags = *pcube++`) during array traversal. At the end of the function, the incremented pointers were passed directly to `freeStorage()` and `putStorage()`.
When array memory isn't contiguous (which occurs when data is sliced across MPI ranks), `getStorage()` allocates a temporary buffer and sets `deleteIt = true`. Passing the shifted pointer into `freeStorage()` invokes `delete[]` on an invalid memory address, causing heap corruption and a Segmentation fault randomly depending on the data slicing.
This commit resolves the issue by securely caching the original pointers returned from `getStorage` into distinct variables. The traversal loops now use separate copies of these pointers, enabling the original allocation addresses to be correctly evaluated and freed by `freeStorage()` and `putStorage()`. -
Dirk Petry <dpetry@eso.org> 4726346e973f5a3c785530a712e2479ff0ce3e3f m
Merge branch 'CAS-14694' of https://open-bitbucket.nrao.edu/scm/casa/casa6 into CAS-14694
-
Dirk Petry <dpetry@eso.org> c0d3e7a5d5bde00a576b1eda1affede4b660df06 m
CAS-14694: activated test case testNZ_intMan_Leak and made sure leakage is only applied for obsmode='int'
-
Dirk Petry <dpetry@eso.org> c896f72b5b4c031a88ef6ae292bd578e7fe5e4bd m
CAS-14694: Merge branch 'master' into CAS-14694
-
Akeem Wells 5531296aa4fcd61a0f096539e16d116479b6af64 m
Enable teardown for test_task_simobserve
-
Dirk Petry <dpetry@eso.org> 6656f07b8b82cc43b7f3bad62eaaf936fa1d4f2b m
CAS-14694: Made ANoise::nPar() in AMueller.h return 4 instead of 2.
-
Dirk Petry <dpetry@eso.org> b2d9854421f55b26faaec5b843a0d835ebc6feb7 m
CAS-14694: changes which seem to solve the remaining problems
- casatasks/src/private/task_simobserve.py (version b2d9854421f55b26faaec5b843a0d835ebc6feb7) (diffs)
- casatasks/tests/tasks/test_task_simobserve.py (version b2d9854421f55b26faaec5b843a0d835ebc6feb7) (diffs)
- casatools/src/code/synthesis/MeasurementComponents/AMueller.h (version b2d9854421f55b26faaec5b843a0d835ebc6feb7) (diffs)
- casatools/src/code/synthesis/MeasurementEquations/VisEquation.cc (version b2d9854421f55b26faaec5b843a0d835ebc6feb7) (diffs)
-
Dirk Petry <dpetry@eso.org> 99c16562c6617e2ce5918f6121fa25e7a1c18081 m
CAS-14694: Merge branch 'master' into CAS-14694
-
Dirk Petry <dpetry@eso.org> 557f387d9d81ba63eddc060f38e9fccd38d2f296 m
CAS-14694: reverted use of sm.setfeed in simobserve task
-
Dirk Petry <dpetry@eso.org> d502a409320f4c50964c3df924bde31e1737814f m
CAS-14694 modified the task script to make appropriate sm tool calls when leakage>0