Skip to content

Attempt at unsupported conservative 3D mesh regridding #968

Description

@sadielbartholomew

Not something I've seen locally or can as yet recreate there, but as appearing on a CI job, there appears to be somewhere in the logic whereby an attempt is made to do 3D (mesh) regridding via a conservative method, which causes the whole Python process (test suite run) to abort from some sort of uncaught C++ exception.

3D conservative regridding is forbidden because it is not supported by ESMF, even though we have guards against this, e.g:

cf-python/cf/regrid/regrid.py

Lines 1465 to 1466 in c906bb0

if conservative_regridding(method):
raise ValueError(f"Can't do {method} 3-d spherical regridding")

That said, that catch is for the spherical regridding case, not Cartesian regridding which is what the error seems to be pointing to, so that's where I will be looking in terms of where the unwanted attempt might be emerging.

Under investigation. It is hard to debug when I can't recreate it, but I will see what I can deduce.

Error

From CI job log:

test_Field_regridc_3d_field (test_regrid.RegridTest.test_Field_regridc_3d_field)
3-d Cartesian regridding with Field destination grid. ... libc++abi: terminating due to uncaught exception of type ESMCI::Ex: /Users/runner/miniforge3/conda-bld/esmf_1767773758689/work/src/Infrastructure/Mesh/src/Regridding/ESMCI_Interp.C, line:1470:Meshes with parametric dim == 3 and spatial dim == 3 not supported for 2nd order conservative regridding
Fatal Python error: Aborted

Thread 0x000070000ad5e000 [asyncio_3] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/concurrent/futures/thread.py", line 116 in _worker
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Thread 0x0000700009d5b000 [asyncio_2] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/concurrent/futures/thread.py", line 116 in _worker
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Thread 0x0000700008d58000 [asyncio_1] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/concurrent/futures/thread.py", line 116 in _worker
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Thread 0x0000700007d55000 [asyncio_0] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/concurrent/futures/thread.py", line 116 in _worker
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Thread 0x0000700006d52000 [zarr_io] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/selectors.py", line 548 in select
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/asyncio/base_events.py", line 2019 in _run_once
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/asyncio/base_events.py", line 678 in run_forever
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Thread 0x0000700005d4f000 [ThreadPoolExecutor-0_1] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/concurrent/futures/thread.py", line 116 in _worker
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Thread 0x0000700004d4c000 [fsspecIO] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/selectors.py", line 548 in select
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/asyncio/base_events.py", line 2019 in _run_once
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/asyncio/base_events.py", line 678 in run_forever
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Thread 0x0000700003d49000 [ThreadPoolExecutor-0_0] (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/concurrent/futures/thread.py", line 116 in _worker
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1024 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1082 in _bootstrap_inner
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/threading.py", line 1044 in _bootstrap

Current thread 0x00007ff85541a180 (most recent call first):
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/esmpy/interface/cbindings.py", line 2151 in ESMP_FieldRegridStore
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/esmpy/api/regrid.py", line 194 in __init__
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/esmpy/util/decorators.py", line 59 in new_func
  File "/Users/runner/work/cf-python/cf-python/main/cf/regrid/regrid.py", line 2785 in create_esmpy_weights
  File "/Users/runner/work/cf-python/cf-python/main/cf/regrid/regrid.py", line 724 in regrid
  File "/Users/runner/work/cf-python/cf-python/main/cf/field.py", line 14336 in regridc
  File "/Users/runner/work/cf-python/cf-python/cfdm/cfdm/decorators.py", line 171 in verbose_override_wrapper
  File "/Users/runner/work/cf-python/cf-python/cfdm/cfdm/decorators.py", line 44 in inplace_wrapper
  File "/Users/runner/work/cf-python/cf-python/main/cf/decorators.py", line 71 in precede_with_kwarg_deprecation_check
  File "/Users/runner/work/cf-python/cf-python/main/cf/test/test_regrid.py", line 659 in test_Field_regridc_3d_field
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/case.py", line 615 in _callTestMethod
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/case.py", line 669 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/case.py", line 725 in __call__
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/suite.py", line 122 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/suite.py", line 84 in __call__
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/suite.py", line 122 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/suite.py", line 84 in __call__
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/suite.py", line 122 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/suite.py", line 84 in __call__
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/unittest/runner.py", line 257 in run
  File "/Users/runner/work/cf-python/cf-python/main/cf/test/run_tests.py", line 114 in run_test_suite
  File "/Users/runner/work/cf-python/cf-python/main/cf/test/run_tests.py", line 152 in <module>
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/coverage/execfile.py", line 222 in run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/coverage/cmdline.py", line 1053 in do_run
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/coverage/cmdline.py", line 863 in command_line
  File "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/coverage/cmdline.py", line 1174 in main
  File "/Users/runner/miniconda3/envs/cf-latest/bin/coverage", line 11 in <module>

Current thread's C stack trace (most recent call first):
  Binary file "/Users/runner/miniconda3/envs/cf-latest/bin/python3.14", at _Py_DumpStack+0x42 [0x10b5635b2]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/bin/python3.14", at faulthandler_dump_c_stack+0x3f [0x10b5796ff]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/bin/python3.14", at faulthandler_fatal_error+0x126 [0x10b579636]
  Binary file "/usr/lib/system/libsystem_platform.dylib", at _sigtramp+0x1d [0x7ff813a5831d]
  Binary file '<unknown>' [0x10bfb7c90]
  Binary file "/usr/lib/system/libsystem_c.dylib", at abort+0x7e [0x7ff81393e476]
  Binary file "/usr/lib/libc++abi.dylib", at _ZN10__cxxabiv130__aligned_malloc_with_fallbackEm+0x0 [0x7ff8139d6170]
  Binary file "/usr/lib/libc++abi.dylib", at _ZL28demangling_terminate_handlerv+0xf0 [0x7ff8139c72d4]
  Binary file "/usr/lib/libobjc.A.dylib", at _ZL15_objc_terminatev+0x68 [0x7ff81364a2f7]
  Binary file "/usr/lib/libc++abi.dylib", at _ZSt11__terminatePFvvE+0x6 [0x7ff8139d55bb]
  Binary file "/usr/lib/libc++abi.dylib", at __cxa_get_exception_ptr+0x0 [0x7ff8139d8247]
  Binary file "/usr/lib/libc++abi.dylib", at _ZN10__cxxabiv1L12failed_throwEPNS_15__cxa_exceptionE+0x0 [0x7ff8139d822c]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at _ZN5ESMCI34calc_2nd_order_conserve_mat_serialERNS_4MeshES1_PS0_RNSt3__16vectorIPNS_13Search_resultENS3_9allocatorIS6_EEEERNS_8IWeightsESC_SC_P13Zoltan_StructbRNS_4WMatE+0x3f0 [0x14f0dd790]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at _ZN5ESMCI6Interp19mat_transfer_serialEiRNS_8IWeightsES2_S2_bRNS_4WMatE+0x137 [0x14f0e6c57]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at _ZN5ESMCI6InterpclEiRNS_8IWeightsEbRNS_4WMatE+0x333 [0x14f0e5523]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at _ZN5ESMCI6regridEPNS_4MeshEPNS_9PointListES1_S3_S1_RNS_8IWeightsEPiS6_S6_S6_S6_S6_PdS6_S6_S6_bRNS_4WMatEb+0x403 [0x14f273543]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at _Z19ESMCI_regrid_createPPN5ESMCI4MeshEPPNS_5ArrayEPPNS_9PointListES2_S5_S8_PiS9_S9_S9_S9_S9_S9_S9_PdS9_S9_S9_S9_S9_S9_PPNS_11RouteHandleES9_S9_S9_PPNS_11TempWeightsESD_S9_S9_S9_PPNS_7TempUDLES9_S5_S9_S9_+0xafb [0x14f215e7b]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at _ZN5ESMCI7MeshCap13regrid_createEPPS0_PPNS_5ArrayEPPNS_9PointListES2_S5_S8_PiS9_S9_S9_S9_S9_S9_S9_PdS9_S9_S9_S9_S9_S9_PPNS_11RouteHandleES9_S9_S9_PPNS_11TempWeightsESD_S9_S9_S9_PPNS_7TempUDLES9_S5_S9_S9_+0x1a3 [0x14f233d93]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at c_esmc_regrid_create_+0x11c [0x14f2b409c]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/libesmf_fullylinked.dylib", at __esmf_regridmod_MOD_esmf_regridstore+0x2b9 [0x14f9711d4]
  Binary file "/Users/runner/miniconda3/envs/cf-latest/lib/python3.14/site-packages/numpy/_core/_multiarray_umath.cpython-314-darwin.so", at default_handler+0x0 [0x10e243508]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions