Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 580ae9ca authored by Nikita Ioffe's avatar Nikita Ioffe Committed by Gerrit Code Review
Browse files

Merge "installd: remove restored ce_data if de_data rollback failed"

parents 1b3315a6 fd2ccd40
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -944,9 +944,13 @@ binder::Status InstalldNativeService::restoreAppDataSnapshot(
        auto to_de = create_data_user_de_path(volume_uuid, user);
        int rc = copy_directory_recursive(from_de.c_str(), to_de.c_str());
        if (rc != 0) {
            // TODO(narayan): Should we clear clear the rolled back CE data if
            // something goes wrong here ? We're choosing between leaving the
            // app devoid of all its data or with just its ce data installed.
            if (needs_ce_rollback) {
                auto ce_data = create_data_user_ce_package_path(volume_uuid, user, package_name);
                LOG(WARNING) << "de_data rollback failed. Erasing rolled back ce_data " << ce_data;
                if (delete_dir_contents(ce_data.c_str(), 1, nullptr) != 0) {
                    LOG(WARNING) << "Failed to delete rolled back ce_data " << ce_data;
                }
            }
            res = error(rc, "Failed copying " + from_de + " to " + to_de);
            return res;
        }