Skip to content
Snippets Groups Projects
Commit 69aba6ef authored by Kyle Klenk (kck540)'s avatar Kyle Klenk (kck540)
Browse files

added graceful failing for file_access_actor initialization

parent 74912a08
No related branches found
No related tags found
No related merge requests found
......@@ -155,30 +155,47 @@ void initalizeFileAccessActor(stateful_actor<file_access_state>* self) {
// aout(self) << "Set Up the forcing file" << std::endl;
ffile_info_C(&indx, self->state.handle_forcFileInfo, &self->state.numFiles, &err);
if (err != 0) {
aout(self) << "Error: ffile_info_C - HRU = " << indx <<
" - indxGRU = " << indx << " - refGRU = " << std::endl;
aout(self) << "Error: ffile_info_C - File_Access_Actor \n";
std::string function = "ffile_info_C";
self->send(self->state.parent, file_access_actor_err_v, function);
self->quit();
return;
}
mDecisions_C(&self->state.num_steps, &err);
if (err != 0) {
aout(self) << "Error: mDecisions - FileAccess Actor " << std::endl;
aout(self) << "Error: mDecisions - FileAccess Actor \n";
std::string function = "mDecisions_C";
self->send(self->state.parent, file_access_actor_err_v, function);
self->quit();
return;
}
read_pinit_C(&err);
if (err != 0) {
aout(self) << "ERROR: read_pinit_C\n";
std::string function = "read_pinit_C";
self->send(self->state.parent, file_access_actor_err_v, function);
self->quit();
return;
}
read_vegitationTables(&err);
if (err != 0) {
aout(self) << "ERROR: read_vegitationTables\n";
std::string function = "read_vegitationTables";
self->send(self->state.parent, file_access_actor_err_v, function);
self->quit();
return;
}
Create_Output_File(self->state.handle_ncid, &self->state.numGRU, &self->state.startGRU, &err);
if (err != 0) {
aout(self) << "ERROR: Create_OutputFile\n";
std::string function = "Create_Output_File";
self->send(self->state.parent, file_access_actor_err_v, function);
self->quit();
return;
}
......
......@@ -165,6 +165,13 @@ behavior job_actor(stateful_actor<job_state>* self, int startGRU, int numGRU,
self->send(self->state.parent, done_job_v, self->state.numGRUFailed);
self->quit();
},
[=](file_access_actor_err, std::string function) {
aout(self) << "Failure in File Access Actor in function" << function << "\n";
aout(self) << "Letting Parent Know we are quitting\n";
self->send(self->state.parent, err_v);
self->quit();
}
// *******************************************************************************************
// ************************** END INTERFACE WITH FileAccessActor *****************************
// *******************************************************************************************
......
......@@ -49,6 +49,11 @@ behavior summa_actor(stateful_actor<summa_manager>* self, int startGRU, int numG
spawnJob(self);
}
},
[=](err) {
aout(self) << "Unrecoverable Error: Attempting To Fail Gracefully\n";
self->quit();
}
};
}
......
......@@ -5,6 +5,7 @@ CAF_BEGIN_TYPE_ID_BLOCK(summa, first_custom_type_id)
// Summa Actor
CAF_ADD_ATOM(summa, start_summa)
CAF_ADD_ATOM(summa, done_job)
CAF_ADD_ATOM(summa, err)
// Job Actor
CAF_ADD_ATOM(summa, done_reading_forcingFile)
CAF_ADD_ATOM(summa, done_reading_first_forcing_file)
......@@ -17,6 +18,7 @@ CAF_BEGIN_TYPE_ID_BLOCK(summa, first_custom_type_id)
CAF_ADD_ATOM(summa, run_failure)
CAF_ADD_ATOM(summa, done_file_access_actor_init)
CAF_ADD_ATOM(summa, file_access_actor_done)
CAF_ADD_ATOM(summa, file_access_actor_err)
// FileAccess Actor
CAF_ADD_ATOM(summa, initalize_outputStructure)
CAF_ADD_ATOM(summa, access_forcing)
......
controlVersion 'SUMMA_FILE_MANAGER_V3.0.0'
simStartTime '1979-01-01 00:00'
simEndTime '2019-12-31 23:00'
tmZoneInfo 'utcTime'
settingsPath '/project/gwf/gwf_cmt/kck540/domain_NorthAmerica/settings/SUMMA/'
forcingPath '/project/gwf/gwf_cmt/kck540/domain_NorthAmerica/forcing/SummaChunkedData/'
outputPath '/scratch/gwf/gwf_cmt/kck540/SummaOutput/SummaActors/Apr-26-2022/netcdf/'
forcingFreq 'month'
forcingStart '1979-01-01'
decisionsFile 'modelDecisions.txt'
outputControlFile 'outputControl.txt'
globalHruParamFile 'localParamInfo.txt'
globalGruParamFile 'basinParamInfo.txt'
attributeFile 'attributes.nc'
trialParamFile 'trialParams.nc'
forcingListFile 'forcingFileList.txt'
initConditionFile 'coldState.nc'
outFilePrefix 'SummaActors'
vegTableFile 'TBL_VEGPARM.TBL'
soilTableFile 'TBL_SOILPARM.TBL'
generalTableFile 'TBL_GENPARM.TBL'
noahmpTableFile 'TBL_MPTABLE.TBL'
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment