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

Commit 9314017a authored by Abhijeet Kaur's avatar Abhijeet Kaur Committed by Automerger Merge Worker
Browse files

Merge "Update Last ID early in the bugreport generation" into rvc-dev am: 58a17ca1 am: 642290df

Change-Id: I63b24faddd2cd624fe31340e92cf7c296b470535
parents fcbaa0de 642290df
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -137,6 +137,8 @@ binder::Status DumpstateService::startBugreport(int32_t calling_uid,
    ds_info->calling_package = calling_package;
    ds_info->calling_package = calling_package;


    pthread_t thread;
    pthread_t thread;
    // Initialize dumpstate
    ds_->Initialize();
    status_t err = pthread_create(&thread, nullptr, dumpstate_thread_main, ds_info);
    status_t err = pthread_create(&thread, nullptr, dumpstate_thread_main, ds_info);
    if (err != 0) {
    if (err != 0) {
        delete ds_info;
        delete ds_info;
+10 −7
Original line number Original line Diff line number Diff line
@@ -2395,6 +2395,13 @@ void Dumpstate::SetOptions(std::unique_ptr<DumpOptions> options) {
    options_ = std::move(options);
    options_ = std::move(options);
}
}


void Dumpstate::Initialize() {
    /* gets the sequential id */
    uint32_t last_id = android::base::GetIntProperty(PROPERTY_LAST_ID, 0);
    id_ = ++last_id;
    android::base::SetProperty(PROPERTY_LAST_ID, std::to_string(last_id));
}

Dumpstate::RunStatus Dumpstate::Run(int32_t calling_uid, const std::string& calling_package) {
Dumpstate::RunStatus Dumpstate::Run(int32_t calling_uid, const std::string& calling_package) {
    Dumpstate::RunStatus status = RunInternal(calling_uid, calling_package);
    Dumpstate::RunStatus status = RunInternal(calling_uid, calling_package);
    if (listener_ != nullptr) {
    if (listener_ != nullptr) {
@@ -2505,11 +2512,6 @@ Dumpstate::RunStatus Dumpstate::RunInternal(int32_t calling_uid,
            : "";
            : "";
    progress_.reset(new Progress(stats_path));
    progress_.reset(new Progress(stats_path));


    /* gets the sequential id */
    uint32_t last_id = android::base::GetIntProperty(PROPERTY_LAST_ID, 0);
    id_ = ++last_id;
    android::base::SetProperty(PROPERTY_LAST_ID, std::to_string(last_id));

    if (acquire_wake_lock(PARTIAL_WAKE_LOCK, WAKE_LOCK_NAME) < 0) {
    if (acquire_wake_lock(PARTIAL_WAKE_LOCK, WAKE_LOCK_NAME) < 0) {
        MYLOGE("Failed to acquire wake lock: %s\n", strerror(errno));
        MYLOGE("Failed to acquire wake lock: %s\n", strerror(errno));
    } else {
    } else {
@@ -2837,8 +2839,9 @@ Dumpstate::RunStatus Dumpstate::ParseCommandlineAndRun(int argc, char* argv[]) {
        assert(options_->bugreport_fd.get() == -1);
        assert(options_->bugreport_fd.get() == -1);


        // calling_uid and calling_package are for user consent to share the bugreport with
        // calling_uid and calling_package are for user consent to share the bugreport with
        // an app; they are irrelvant here because bugreport is only written to a local
        // an app; they are irrelevant here because bugreport is triggered via command line.
        // directory, and not shared.
        // Update Last ID before calling Run().
        Initialize();
        status = Run(-1 /* calling_uid */, "" /* calling_package */);
        status = Run(-1 /* calling_uid */, "" /* calling_package */);
    }
    }
    return status;
    return status;
+9 −1
Original line number Original line Diff line number Diff line
@@ -216,6 +216,9 @@ class Dumpstate {
    /* Checkes whether dumpstate is generating a zipped bugreport. */
    /* Checkes whether dumpstate is generating a zipped bugreport. */
    bool IsZipping() const;
    bool IsZipping() const;


    /* Initialize dumpstate fields before starting bugreport generation */
    void Initialize();

    /*
    /*
     * Forks a command, waits for it to finish, and returns its status.
     * Forks a command, waits for it to finish, and returns its status.
     *
     *
@@ -329,7 +332,12 @@ class Dumpstate {


    struct DumpOptions;
    struct DumpOptions;


    /* Main entry point for running a complete bugreport. */
    /*
     * Main entry point for running a complete bugreport.
     *
     * Initialize() dumpstate before calling this method.
     *
     */
    RunStatus Run(int32_t calling_uid, const std::string& calling_package);
    RunStatus Run(int32_t calling_uid, const std::string& calling_package);


    RunStatus ParseCommandlineAndRun(int argc, char* argv[]);
    RunStatus ParseCommandlineAndRun(int argc, char* argv[]);