Closed servoz closed 2 years ago
Closed with commit f1e29bfd7a233aa9d4756c599e2dbb2b04a03d86. To sum up:
Run pipeline
fails (tested by manually stopping a running pipeline), data that have not been created yet on hard drive is removed (using cleanup_orphan_bricks()
in postprocess_pipeline_execution()
function in pipeline_manager_tab.py
).Note that all addition and comments have been surrounded by "# Commented on January, 4th 2020" and "# End - commented on January, 4th 2020" to easily allow putting the button back in place
The database indexing issue is a broad topic that has already been discussed extensively in several now closed or still open ticket.
It is a fundamental operation in Mia and has many impacts on various essential elements of Mia, depending on how and when it is done.
There is currently a consensus that the best solution would be to perform this indexing at runtime with the use of a temporary database at initialisation time (exactly as described in the first post of the #249 ticket).
However, it seems that the work involved goes far beyond the scope of Mia (it would also involve soma_workflow, capsul?) and given the few forces we have at our disposal at the moment, it seems wiser to adopt a temporary solution, which is lighter to implement and will solve some of the problems encountered with the current operation:
Run pipeline
integrates the initialisation as a first step). We comment on theInitialize pipeline
buttons. There is only oneRun pipeline
buttons and if the initialisation fails, the database is not indexed (as it is now).Run pipeline
fails, we delete the indexed data (question: everything or just what was not done?).Run pipeline
crashes. There is a meticulous management of the indexing of the database and the real existence of the data to do (as long as we don't have the indexing of the database done properly at the time of the run and after each pass through a successful brick (as in #249 ticket), we will live with an indexing in the database coming from the future...). If theRun pipeline
crashes, we should check what happens if we restart the run (which should be the wish of a user if the pipeline is not computed to the end) with the already existing data (in the database and on the hard disk) before to code in this direction (and beyond that we have to answer the previous question: everything or just what was not done?).In short, this is a lighter solution than fixing the #249 ticket, but it is not completely trivial either ....