CarpetLib 2dedcb0e7340b0682d530dc26e764408b301e3b8 "CarpetLib: Do not reallocate communication buffers; instead, keep them around" breaks QLM qlm-bl.par test

Create issue
Issue #1424 closed
Roland Haas created an issue

With the commit in a up-to-date (trunk) Cactus tree the test (and others) fails with:

Without (reverting it on top of it 7671fa71925aebfd787497bae61cf6da6ddeac54 "CarpetIOHDF5: support IO->alias option in reader") succeeds. I attach the test log. parfile, thorn list and option list.

Keyword:

Comments (6)

  1. Roland Haas reporter
    • removed comment

    Error message is:

    cactus_sim: /mnt/data/rhaas/postdoc/gr/ET_trunk/configs/sim/build/CarpetLib/commstate.cc:105: comm_state::comm_state(): Assertion `srequests.empty()' failed.
    Rank 0 with PID 6089 received signal 6
    Writing backtrace to qlm-bl/backtrace.0.txt
    cactus_sim: /mnt/data/rhaas/postdoc/gr/ET_trunk/configs/sim/build/CarpetLib/commstate.cc:105: comm_state::comm_state(): Assertion `srequests.empty()' failed.
    
  2. Erik Schnetter
    • changed status to open
    • removed comment

    Can you try this patch?

    $ git diff
    diff --git a/Carpet/CarpetLib/src/commstate.cc b/Carpet/CarpetLib/src/commstate.
    index 5e9eb91..532461d 100644
    --- a/Carpet/CarpetLib/src/commstate.cc
    +++ b/Carpet/CarpetLib/src/commstate.cc
    @@ -531,6 +531,11 @@ comm_state::~comm_state ()
     {
       DECLARE_CCTK_PARAMETERS;
    
    +  // Note: calling resize(0) instead of clear() ensures that the
    +  // vector capacity does not change
    +  srequests.resize(0);
    +  rrequests.resize(0);
    +  
       for (size_t type=0; type<typebufs.size(); ++type) {
         typebufdesc& typebuf = typebufs.AT(type);
         for (size_t proc=0; proc<typebuf.procbufs.size(); ++proc) {
    
  3. Log in to comment