Skip to content

Commit 40ac701

Browse files
committed
Do not exit on error, log the error instead in cvd bugreport.
- If an error happens when pulling an specific log, log the error but continue to build the zip file. Bug: b/353690953 Test: cvd start && cvd host_bugreport Change-Id: Iab3f48d6e2b6299289a7152d874a895f20a0d56c
1 parent c1663b8 commit 40ac701

File tree

1 file changed

+40
-21
lines changed
  • host/commands/host_bugreport

1 file changed

+40
-21
lines changed

host/commands/host_bugreport/main.cc

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void SaveFile(ZipWriter& writer, const std::string& zip_path,
4949
}
5050
}
5151

52-
Result<void> AddNetsimdLogs(ZipWriter& writer) {
52+
void AddNetsimdLogs(ZipWriter& writer) {
5353
// The temp directory name depends on whether the `USER` environment variable
5454
// is defined.
5555
// https://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:tools/netsim/rust/common/src/system/mod.rs;l=37-57;drc=360ddb57df49472a40275b125bb56af2a65395c7
@@ -58,14 +58,17 @@ Result<void> AddNetsimdLogs(ZipWriter& writer) {
5858
: fmt::format("/tmp/android-{}/netsimd", user);
5959
if (!DirectoryExists(dir)) {
6060
LOG(INFO) << "netsimd logs directory: `" << dir << "` does not exist.";
61-
return {};
61+
return;
6262
}
63-
auto names =
64-
CF_EXPECTF(DirectoryContents(dir), "Cannot read from {} directory.", dir);
65-
for (const auto& name : names) {
63+
auto names = DirectoryContents(dir);
64+
if (!names.ok()) {
65+
LOG(ERROR) << "Cannot read from netsimd directory `" << dir
66+
<< "`: " << names.error().FormatForEnv(/* color = */ false);
67+
return;
68+
}
69+
for (const auto& name : names.value()) {
6670
SaveFile(writer, "netsimd/" + name, dir + "/" + name);
6771
}
68-
return {};
6972
}
7073

7174
Result<void> CvdHostBugreportMain(int argc, char** argv) {
@@ -104,32 +107,48 @@ Result<void> CvdHostBugreportMain(int argc, char** argv) {
104107
save("cuttlefish_config.json");
105108
save("disk_config.txt");
106109
if (DirectoryExists(instance.PerInstancePath("logs"))) {
107-
auto logs = CF_EXPECT(DirectoryContents(instance.PerInstancePath("logs")),
108-
"Cannot read from logs directory.");
109-
for (const auto& log : logs) {
110-
save("logs/" + log);
110+
auto result = DirectoryContents(instance.PerInstancePath("logs"));
111+
if (result.ok()) {
112+
for (const auto& log : result.value()) {
113+
save("logs/" + log);
114+
}
115+
} else {
116+
LOG(ERROR) << "Cannot read from logs directory: "
117+
<< result.error().FormatForEnv(/* color = */ false);
111118
}
112119
} else {
113120
save("kernel.log");
114121
save("launcher.log");
115122
save("logcat");
116123
save("metrics.log");
117124
}
118-
auto tombstones =
119-
CF_EXPECT(DirectoryContents(instance.PerInstancePath("tombstones")),
120-
"Cannot read from tombstones directory.");
121-
for (const auto& tombstone : tombstones) {
122-
save("tombstones/" + tombstone);
125+
126+
{
127+
auto result = DirectoryContents(instance.PerInstancePath("tombstones"));
128+
if (result.ok()) {
129+
for (const auto& tombstone : result.value()) {
130+
save("tombstones/" + tombstone);
131+
}
132+
} else {
133+
LOG(ERROR) << "Cannot read from tombstones directory: "
134+
<< result.error().FormatForEnv(/* color = */ false);
135+
}
123136
}
124-
auto recordings =
125-
CF_EXPECT(DirectoryContents(instance.PerInstancePath("recording")),
126-
"Cannot read from recording directory.");
127-
for (const auto& recording : recordings) {
128-
save("recording/" + recording);
137+
138+
{
139+
auto result = DirectoryContents(instance.PerInstancePath("recording"));
140+
if (result.ok()) {
141+
for (const auto& recording : result.value()) {
142+
save("recording/" + recording);
143+
}
144+
} else {
145+
LOG(ERROR) << "Cannot read from recording directory: "
146+
<< result.error().FormatForEnv(/* color = */ false);
147+
}
129148
}
130149
}
131150

132-
CF_EXPECT(AddNetsimdLogs(writer));
151+
AddNetsimdLogs(writer);
133152

134153
SaveFile(writer, "cvd_host_bugreport.log", log_filename);
135154

0 commit comments

Comments
 (0)