From 7d57e697bd8fef847406a27041af4b2387598ec8 Mon Sep 17 00:00:00 2001 From: Aurelien Bouteiller Date: Wed, 12 Mar 2025 10:17:18 -0400 Subject: [PATCH] Issue parsec_fatal when the datatype_arenas have not been set (rather than crashing in a cryptic way), examplified by icldisco/dplasma#138 --- parsec/remote_dep_mpi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/parsec/remote_dep_mpi.c b/parsec/remote_dep_mpi.c index a06a2088c..3bd14dace 100644 --- a/parsec/remote_dep_mpi.c +++ b/parsec/remote_dep_mpi.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2024 The University of Tennessee and The University + * Copyright (c) 2009-2025 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2023 NVIDIA CORPORATION. All rights reserved. @@ -778,6 +778,9 @@ remote_dep_mpi_retrieve_datatype(parsec_execution_stream_t *eu, /* control dep */ return PARSEC_ITERATE_STOP; } + if(output->data.remote.dst_datatype == NULL) { + parsec_fatal("Retrieving MPI datatype for %s [dep_datatype_index %x] found count=%d, but the datatype is NULL. Forgetting to set the arena_datatypes in a PTG taskpool is usually the root cause.", newcontext->task_class->name, dep->dep_datatype_index, output->data.remote.dst_count); + } if(old_dtt != PARSEC_DATATYPE_NULL) { if(old_dtt != output->data.remote.dst_datatype) { #if defined(PARSEC_DEBUG_NOISIER)