Commit a70203ae authored by Ryo Hashimoto's avatar Ryo Hashimoto Committed by Commit Bot

arc: Launch concierge before vsock proxy

Vsock proxy depends on /run/vm which is created by pre-start script in vm_concierge.conf.

BUG=b:143997789
TEST=Launch Play Store

Change-Id: I46ccb49cd19df98001f4a3937e7ab1c7e40d06c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1901009Reviewed-by: default avatarYusuke Sato <yusukes@chromium.org>
Commit-Queue: Ryo Hashimoto <hashimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713342}
parent af464280
......@@ -393,10 +393,9 @@ class ArcVmClientAdapter : public ArcClientAdapter,
void UpgradeArc(UpgradeParams params,
chromeos::VoidDBusMethodCallback callback) override {
VLOG(1) << "Starting arcvm-server-proxy";
chromeos::UpstartClient::Get()->StartJob(
kArcVmServerProxyJobName, /*environment=*/{},
base::BindOnce(&ArcVmClientAdapter::OnArcVmServerProxyJobStarted,
VLOG(1) << "Starting Concierge service";
chromeos::DBusThreadManager::Get()->GetDebugDaemonClient()->StartConcierge(
base::BindOnce(&ArcVmClientAdapter::OnConciergeStarted,
weak_factory_.GetWeakPtr(), std::move(params),
std::move(callback)));
}
......@@ -464,32 +463,30 @@ class ArcVmClientAdapter : public ArcClientAdapter,
std::move(callback).Run(true);
}
void OnArcVmServerProxyJobStarted(UpgradeParams params,
chromeos::VoidDBusMethodCallback callback,
bool result) {
if (!result) {
LOG(ERROR) << "Failed to start arcvm-server-proxy job";
void OnConciergeStarted(UpgradeParams params,
chromeos::VoidDBusMethodCallback callback,
bool success) {
if (!success) {
LOG(ERROR) << "Failed to start Concierge service for arcvm";
std::move(callback).Run(false);
return;
}
VLOG(1) << "Starting Concierge service";
chromeos::DBusThreadManager::Get()->GetDebugDaemonClient()->StartConcierge(
base::BindOnce(&ArcVmClientAdapter::OnConciergeStarted,
VLOG(1) << "Starting arcvm-server-proxy";
chromeos::UpstartClient::Get()->StartJob(
kArcVmServerProxyJobName, /*environment=*/{},
base::BindOnce(&ArcVmClientAdapter::OnArcVmServerProxyJobStarted,
weak_factory_.GetWeakPtr(), std::move(params),
std::move(callback)));
}
void OnConciergeStarted(UpgradeParams params,
chromeos::VoidDBusMethodCallback callback,
bool success) {
if (!success) {
LOG(ERROR) << "Failed to start Concierge service for arcvm";
void OnArcVmServerProxyJobStarted(UpgradeParams params,
chromeos::VoidDBusMethodCallback callback,
bool result) {
if (!result) {
LOG(ERROR) << "Failed to start arcvm-server-proxy job";
std::move(callback).Run(false);
return;
}
VLOG(1) << "Concierge service started for arcvm.";
// TODO(pliard): Export host-side /data to the VM, and remove the call. Note
// that ArcSessionImpl checks low disk conditions before calling UpgradeArc.
base::PostTaskAndReplyWithResult(
......
......@@ -346,7 +346,8 @@ TEST_F(ArcVmClientAdapterTest, UpgradeArc_StartArcVmProxyFailure) {
upstart_client->set_start_job_result(false);
UpgradeArc(false);
EXPECT_FALSE(GetStartConciergeCalled());
EXPECT_TRUE(GetStartConciergeCalled());
EXPECT_FALSE(GetTestConciergeClient()->start_arc_vm_called());
EXPECT_FALSE(arc_instance_stopped_called());
upstart_client->set_start_job_result(true);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment