Flexible Init with/without config file cannot be added to applications
Created by: pnorbert
I want to recover from failure of not finding the xml config and just initialize with default. This results in non-zero ranks hanging in broadcast.
try {
ad = new adios2::ADIOS("adios2_config.xml", world, adios2::DebugON);
} catch (std::ios_base::failure &e) {
ad = new adios2::ADIOS(world, adios2::DebugON);
}
When the config file is not present, rank 0 throws an exception, which is caught with the catch statement and then a default init is called. However, all other processes are stuck in a broadcast call for receiving the file content from rank 0 in adiosXML.cpp::ParseConfigXML()
Suggestion: in adiosComm.cpp::Comm::BroadcastFile, the exception should be caught (on rank 0) and then the broadcast should happen with some constant string that indicates error. After that all process should throw the same exception.