Skip to content

porting code from XIOS2 to XIOS3

in porting a complicated code from XIOS2 to XIOS3 then a segfault is encountered during 'xios_close_context_definition`

this test is fairly small, running 16 simulation ranks with XIOS in attached mode (no servers).

i am running with

       <variable_group id = "parameters" >
+        <variable id="transport_protocol" type="string" >p2p</variable>
+        <variable id = "services_use_window_manager" type="bool">true</variable>

and other configurations, which also fail.

there is no error reported by XIOS within xios_client_**.err nor to stdout other than an exit code, e.g. rank 1 died from signal 11

I do get a core dump which i can get a backtrace from:

#0  0x000014b8070f54bf in std::string::_Rep::_M_is_leaked (this=<optimized out>)
    at /home/jenkins/BUILD/snos_objdir/x86_64-suse-linux/libstdc++-v3/include/bits/cow_string.h:210
#1  std::string::_Rep::_M_grab (__alloc2=..., __alloc1=..., this=<optimized out>)
    at /home/jenkins/BUILD/snos_objdir/x86_64-suse-linux/libstdc++-v3/include/bits/cow_string.h:261
#2  std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (
    this=0x7ffdacd17128, __str=...)
    at /home/jenkins/BUILD/snos_objdir/x86_64-suse-linux/libstdc++-v3/include/bits/cow_string.h:542
#3  0x00000000094d57e1 in xios::CTransformationPaths::getNextTransformationId (this=<optimized out>)
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/transformation/transformation_path.cpp:97
#4  0x000000000922053e in xios::CGrid::buildTransformationGraph (this=0x101ebfc0, gc=..., 
    isSource=false, gridSrc=0x17fa05a0, 
    detectMissingValues=<error reading variable: That operation is not available on integers of more than 8 bytes.>, 
    defaultValue=<error reading variable: That operation is not available on integers of more than 8 bytes.>, newGrid=@0x7ffdacd17470: 0x17f84270, graphEnabled=<optimized out>, field=<optimized out>)
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/node/grid.cpp:2233
#5  0x000000000919b864 in xios::CField::buildWorkflowGraph (this=0x10e3b5a0, gc=...)
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/node/field.cpp:707
#6  0x0000000009546b11 in xios::CFilterFieldExprNode::reduce (this=<optimized out>, gc=...,)
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/parse_expr/filter_expr_node.cpp:42
#7  0x000000000919b26a in xios::CField::buildWorkflowGraph (this=this@entry=0x10e3d710, gc=...)
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/node/field.cpp:686
#8  0x000000000919b134 in xios::CField::buildWorkflowGraph (this=0x110ecfa0, gc=...)
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/node/field.cpp:669
#9  0x0000000008fe6c7b in xios::CContext::closeDefinition (this=0xffe5690)
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/node/context.cpp:1200
#10 0x000000000935159f in cxios_context_close_definition ()
    at /tmp/tmp.fFpVBAIj2G.2025-12-03/spack-stage/spack-stage-xios-3.0_git_main_pre_migrate_debug-zwag6s4jndakvoobhkgw6nt3ets5fri6/spack-src/src/interface/c/icdata.cpp:134

investigate why this is occurring and how to get this test case to work

Edited by mark Hedley