Skip to content

MBI_CommRoutine_HANDSHAKE_AgreeBufSizes: Assertion fails #6

@zauster

Description

@zauster

This is part of FLAME-HPC/xparser#14, but since it is an issue of libmboard, I am posting it here.

Using the attached minimal example, built and run like this:

xparser -p bl_model.xml 
make
mpirun -np 2 ./main 2000 its/0.xml -r

I get the error

-------	P1:1
main: comm_routines_HANDSHAKE.c:301: MBI_CommRoutine_HANDSHAKE_AgreeBufSizes: Assertion `node->board->tt != NULL' failed.
main: comm_routines_HANDSHAKE.c:301: MBI_CommRoutine_HANDSHAKE_AgreeBufSizes: Assertion `node->board->tt != NULL' failed.
[irene:21163] *** Process received signal ***
[...]

right on the first iteration.

This only happens when xparser is run without the -f flag, thus only when using the DEBUG version of libmboard. The production version of libmboard doesn't seem to do the same tests at the beginning, thus does not error out.

I found two workarounds (these are marked in the code):

  1. Sending of a message by the Sender Agent is in this example dependent on the state of the agent. Removing this optional behaviour (i.e. commenting an if-condition in the function of the Sender agent) also removes the error.
  2. On the receiving end, messages are filtered by ID of the Receiver agent. Removing this filter also removes the error.

I can replicate this behaviour with both OpenMPI 3.0.1 and MPICH 3.2.1 (both using the MPI 3.0 Standard).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions