Attempt at unsupported conservative 3D mesh regridding

Open
#968 0 comments 0 reactions 1 assignee View on GitHub

@sadielbartholomew is already working on this.

Since Sep 10, 2026.

Assessment

This issue has not been assessed yet.

Description

bug?

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:

https://github.com/NCAS-CMS/cf-python/blob/c906bb0204fc5bb55a38c708e5e8fafe3d5f329a/cf/regrid/regrid.py#L1465-L1466

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]
Dominant language
Python
Stars
150
Forks
23
Avg merge
1d 11h
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from NCAS-CMS/cf-python

All issues in NCAS-CMS/cf-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.