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

Commit d56cc075 authored by yro's avatar yro Committed by android-build-merger
Browse files

Merge "Write data to file when StatsCompanionSerivice (system_server) crashes"...

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

Change-Id: I20f34d4ee54caed25ca59aa7f30bec2aed145101
parents 2a992a25 ec01ab9e
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -355,7 +355,6 @@ void StatsLogProcessor::WriteDataToDisk() {
        const ConfigKey& key = pair.first;
        const ConfigKey& key = pair.first;
        vector<uint8_t> data;
        vector<uint8_t> data;
        onDumpReportLocked(key, getElapsedRealtimeNs(), &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,
        string file_name = StringPrintf("%s/%ld_%d_%lld", STATS_DATA_DIR,
             (long)getWallClockSec(), key.GetUid(), (long long)key.GetId());
             (long)getWallClockSec(), key.GetUid(), (long long)key.GetId());
        StorageManager::writeFile(file_name.c_str(), &data[0], data.size());
        StorageManager::writeFile(file_name.c_str(), &data[0], data.size());
+12 −7
Original line number Original line Diff line number Diff line
@@ -55,18 +55,22 @@ constexpr const char* kPermissionDump = "android.permission.DUMP";
class CompanionDeathRecipient : public IBinder::DeathRecipient {
class CompanionDeathRecipient : public IBinder::DeathRecipient {
public:
public:
    CompanionDeathRecipient(const sp<AlarmMonitor>& anomalyAlarmMonitor,
    CompanionDeathRecipient(const sp<AlarmMonitor>& anomalyAlarmMonitor,
                            const sp<AlarmMonitor>& periodicAlarmMonitor) :
                            const sp<AlarmMonitor>& periodicAlarmMonitor,
                                mAnomalyAlarmMonitor(anomalyAlarmMonitor),
                            const sp<StatsLogProcessor>& processor)
                                mPeriodicAlarmMonitor(periodicAlarmMonitor)  {}
        : mAnomalyAlarmMonitor(anomalyAlarmMonitor),
          mPeriodicAlarmMonitor(periodicAlarmMonitor),
          mProcessor(processor) {}
    virtual void binderDied(const wp<IBinder>& who);
    virtual void binderDied(const wp<IBinder>& who);


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


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

File changed.

Contains only whitespace changes.