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

Commit ec66e9e7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Write data to file when StatsCompanionSerivice (system_server) crashes" into pi-dev

parents 0aa191cc 1cf2ac52
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -355,7 +355,6 @@ void StatsLogProcessor::WriteDataToDisk() {
        const ConfigKey& key = pair.first;
        vector<uint8_t> data;
        onDumpReportLocked(key, getElapsedRealtimeNs(), &data);
        // TODO: Add a guardrail to prevent accumulation of file on disk.
        string file_name = StringPrintf("%s/%ld_%d_%lld", STATS_DATA_DIR,
             (long)getWallClockSec(), key.GetUid(), (long long)key.GetId());
        StorageManager::writeFile(file_name.c_str(), &data[0], data.size());
+12 −7
Original line number Diff line number Diff line
@@ -55,18 +55,22 @@ constexpr const char* kPermissionDump = "android.permission.DUMP";
class CompanionDeathRecipient : public IBinder::DeathRecipient {
public:
    CompanionDeathRecipient(const sp<AlarmMonitor>& anomalyAlarmMonitor,
                            const sp<AlarmMonitor>& periodicAlarmMonitor) :
                                mAnomalyAlarmMonitor(anomalyAlarmMonitor),
                                mPeriodicAlarmMonitor(periodicAlarmMonitor)  {}
                            const sp<AlarmMonitor>& periodicAlarmMonitor,
                            const sp<StatsLogProcessor>& processor)
        : mAnomalyAlarmMonitor(anomalyAlarmMonitor),
          mPeriodicAlarmMonitor(periodicAlarmMonitor),
          mProcessor(processor) {}
    virtual void binderDied(const wp<IBinder>& who);

private:
    sp<AlarmMonitor> mAnomalyAlarmMonitor;
    sp<AlarmMonitor> mPeriodicAlarmMonitor;
    sp<StatsLogProcessor> mProcessor;
};

void CompanionDeathRecipient::binderDied(const wp<IBinder>& who) {
    ALOGW("statscompanion service died");
    mProcessor->WriteDataToDisk();
    mAnomalyAlarmMonitor->setStatsCompanionService(nullptr);
    mPeriodicAlarmMonitor->setStatsCompanionService(nullptr);
    SubscriberReporter::getInstance().setStatsCompanionService(nullptr);
@@ -817,8 +821,9 @@ Status StatsService::statsCompanionReady() {
                "statscompanion unavailable despite it contacting statsd!");
    }
    VLOG("StatsService::statsCompanionReady linking to statsCompanion.");
    IInterface::asBinder(statsCompanion)->linkToDeath(
            new CompanionDeathRecipient(mAnomalyAlarmMonitor, mPeriodicAlarmMonitor));
    IInterface::asBinder(statsCompanion)
        ->linkToDeath(new CompanionDeathRecipient(
            mAnomalyAlarmMonitor, mPeriodicAlarmMonitor, mProcessor));
    mAnomalyAlarmMonitor->setStatsCompanionService(statsCompanion);
    mPeriodicAlarmMonitor->setStatsCompanionService(statsCompanion);
    SubscriberReporter::getInstance().setStatsCompanionService(statsCompanion);
+2 −2

File changed.

Contains only whitespace changes.