Merge "remount: If checkpoint is in progress, wait for it to complete" into main
This commit is contained in:
commit
a93795deae
1 changed files with 19 additions and 9 deletions
|
@ -158,15 +158,25 @@ bool VerifyCheckpointing() {
|
|||
// not checkpointing.
|
||||
auto vold = GetVold();
|
||||
bool checkpointing = false;
|
||||
if (!vold->isCheckpointing(&checkpointing).isOk()) {
|
||||
LOG(ERROR) << "Could not determine checkpointing status.";
|
||||
return false;
|
||||
}
|
||||
if (checkpointing) {
|
||||
LOG(ERROR) << "Cannot use remount when a checkpoint is in progress.";
|
||||
LOG(ERROR) << "To force end checkpointing, call 'vdc checkpoint commitChanges'";
|
||||
LOG(ERROR) << "Warning: this can lead to data corruption if rolled back.";
|
||||
return false;
|
||||
bool show_help = true;
|
||||
|
||||
while (true) {
|
||||
if (!vold->isCheckpointing(&checkpointing).isOk()) {
|
||||
LOG(ERROR) << "Could not determine checkpointing status.";
|
||||
return false;
|
||||
}
|
||||
if (!checkpointing) {
|
||||
break;
|
||||
}
|
||||
if (show_help) {
|
||||
show_help = false;
|
||||
std::cerr << "WARNING: Userdata checkpoint is in progress. To force end checkpointing, "
|
||||
"call 'vdc checkpoint commitChanges'. This can lead to data corruption if "
|
||||
"rolled back."
|
||||
<< std::endl;
|
||||
LOG(INFO) << "Waiting for checkpoint to complete and then continue remount.";
|
||||
}
|
||||
std::this_thread::sleep_for(4s);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue