Skip to content

Commit 65acfa1

Browse files
committed
In cvd start --daemon=false, delete prior log files before monitoring
This avoids a conflict where `cvd monitor` holds file descriptors to old log files, and is detected by `assemble_cvd` as a process still holding a file from the previous launch. This is falsely identified as a lingering process from a previous launch. Bug: b/527153791 Test: cvd fetch && HOME=$PWD bin/launch_cvd, ctrl-c, HOME=$PWD bin/launch_cvd
1 parent 9d132dc commit 65acfa1

3 files changed

Lines changed: 12 additions & 1 deletion

File tree

base/cvd/cuttlefish/host/commands/cvd/cli/commands/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ cf_cc_library(
421421
"//cuttlefish/host/commands/cvd/utils",
422422
"//cuttlefish/host/libs/config:config_constants",
423423
"//cuttlefish/host/libs/config:cuttlefish_config",
424+
"//cuttlefish/host/libs/log_names",
424425
"//cuttlefish/host/libs/metrics:device_metrics_orchestration",
425426
"//cuttlefish/posix:symlink",
426427
"//cuttlefish/result",

base/cvd/cuttlefish/host/commands/cvd/cli/commands/create.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,8 @@ CvdCreateCommandHandler::FindReusableGroup(
296296
if (groups.empty()) {
297297
return std::nullopt;
298298
}
299-
CF_EXPECT_EQ(groups.size(), 1, "Unclear which group to reuse");
299+
CF_EXPECT_EQ(groups.size(), 1,
300+
"Unclear which group to reuse, try `cvd reset -y`");
300301

301302
auto target_host_it = envs.find(kAndroidHostOut);
302303
CF_EXPECT(target_host_it != envs.end());

base/cvd/cuttlefish/host/commands/cvd/cli/commands/start.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#include <vector>
4040

4141
#include "absl/log/log.h"
42+
#include "absl/strings/str_cat.h"
4243
#include "absl/strings/str_join.h"
4344
#include "absl/strings/str_split.h"
4445
#include "fmt/core.h"
@@ -73,6 +74,7 @@
7374
#include "cuttlefish/host/commands/cvd/utils/subprocess_waiter.h"
7475
#include "cuttlefish/host/libs/config/config_constants.h"
7576
#include "cuttlefish/host/libs/config/cuttlefish_config.h"
77+
#include "cuttlefish/host/libs/log_names/log_names.h"
7678
#include "cuttlefish/host/libs/metrics/device_metrics_orchestration.h"
7779
#include "cuttlefish/posix/symlink.h"
7880
#include "cuttlefish/result/result.h"
@@ -455,6 +457,13 @@ Result<void> CvdStartCommandHandler::Handle(const CommandRequest& request) {
455457
Result<void> monitor_res;
456458

457459
if (!own_flags_.daemon) {
460+
const LocalInstance& instance = *group.Instances().begin();
461+
const std::string assemble_log =
462+
absl::StrCat(instance.AssemblyDirectory(), "/", kLogNameAssembleCvd);
463+
Result<void> unused = RemoveFile(assemble_log);
464+
for (const auto& log : CF_EXPECT(instance.LogsFilenames())) {
465+
Result<void> unused = RemoveFile(log);
466+
}
458467
monitor_thread = std::thread([&group, stop_eventfd, &monitor_res]() {
459468
const LocalInstance& first_instance = *group.Instances().begin();
460469
monitor_res = MonitorLogs(first_instance, stop_eventfd);

0 commit comments

Comments
 (0)