diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-12-04 16:32:57 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-12-04 16:32:57 +0100 |
commit | 230f151aa7e357c37040ed51bcbdbc1a766af82a (patch) | |
tree | 868d3ac924a3d1f13f02cec799edd661d6e2d504 | |
parent | 6eb4056d7b90fe3a69cee1e332e2a2957b76c9c5 (diff) | |
download | abrt-230f151aa7e357c37040ed51bcbdbc1a766af82a.tar.gz abrt-230f151aa7e357c37040ed51bcbdbc1a766af82a.tar.xz abrt-230f151aa7e357c37040ed51bcbdbc1a766af82a.zip |
simplify code which deletes corrupted debug dumps; kill unused EXCEP_FATAL
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | inc/ABRTException.h | 1 | ||||
-rw-r--r-- | src/Daemon/CommLayerServerSocket.h | 2 | ||||
-rw-r--r-- | src/Daemon/CrashWatcher.cpp | 56 | ||||
-rw-r--r-- | src/Daemon/CrashWatcher.h | 4 | ||||
-rw-r--r-- | src/Daemon/Daemon.cpp | 16 | ||||
-rw-r--r-- | src/Daemon/MiddleWare.cpp | 24 | ||||
-rw-r--r-- | src/Daemon/MiddleWare.h | 11 |
7 files changed, 24 insertions, 90 deletions
diff --git a/inc/ABRTException.h b/inc/ABRTException.h index 173f45fc..fe7fc01e 100644 --- a/inc/ABRTException.h +++ b/inc/ABRTException.h @@ -12,7 +12,6 @@ typedef enum { EXCEP_DL, EXCEP_PLUGIN, EXCEP_ERROR, - EXCEP_FATAL, } abrt_exception_t; /* std::exception is a class with virtual members. diff --git a/src/Daemon/CommLayerServerSocket.h b/src/Daemon/CommLayerServerSocket.h index baca195d..d1f464cc 100644 --- a/src/Daemon/CommLayerServerSocket.h +++ b/src/Daemon/CommLayerServerSocket.h @@ -28,7 +28,7 @@ class CCommLayerServerSocket : public CCommLayerServer virtual vector_crash_infos_t GetCrashInfos(const std::string& pSender); virtual report_status_t Report(const map_crash_report_t& pReport, const std::string& pSender); - virtual bool DeleteDebugDump(const std::string& pUUID, const std::string& pSender); + virtual void DeleteDebugDump(const std::string& pUUID, const std::string& pSender); virtual void Crash(const std::string& arg1); }; diff --git a/src/Daemon/CrashWatcher.cpp b/src/Daemon/CrashWatcher.cpp index 7f19ea32..1606f86d 100644 --- a/src/Daemon/CrashWatcher.cpp +++ b/src/Daemon/CrashWatcher.cpp @@ -69,27 +69,15 @@ vector_crash_infos_t GetCrashInfos(const char *pUID) retval.push_back(info); break; case MW_ERROR: - error_msg("Can't find dump directory for UUID %s, deleting from database", uuid); - DeleteCrashInfoInDB(uuid, uid); - break; - case MW_FILE_ERROR: - error_msg("Can't open file in dump directory for UUID %s, deleting", uuid); - { - std::string debugDumpDir = DeleteCrashInfoInDB(uuid, uid); - delete_debug_dump_dir(debugDumpDir.c_str()); - } - break; - default: + error_msg("Dump directory for UUID %s doesn't exist or misses crucial files, deleting", uuid); + /* Deletes both DB record and dump dir */ + DeleteDebugDump(uuid, uid); break; } } } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); } @@ -126,12 +114,9 @@ map_crash_report_t CreateReport(const char* pUUID, const char* pUID, int force) case MW_PLUGIN_ERROR: error_msg("Particular analyzer plugin isn't loaded or there is an error within plugin(s)"); break; - case MW_CORRUPTED: - case MW_FILE_ERROR: default: error_msg("Corrupted crash with UUID %s, deleting", pUUID); - std::string debugDumpDir = DeleteCrashInfoInDB(pUUID, pUID); - delete_debug_dump_dir(debugDumpDir.c_str()); + DeleteDebugDump(pUUID, pUID); break; } return crashReport; @@ -204,40 +189,39 @@ int CreateReportThread(const char* pUUID, const char* pUID, int force, const cha return r; } -bool DeleteDebugDump(const char *pUUID, const char *pUID) + +/* Remove dump dir and its DB record */ +void DeleteDebugDump(const char *pUUID, const char *pUID) { try { - std::string debugDumpDir = DeleteCrashInfoInDB(pUUID, pUID); - delete_debug_dump_dir(debugDumpDir.c_str()); + CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); + database->Connect(); + database_row_t row = database->GetRow(pUUID, pUID); + database->DeleteRow(pUUID, pUID); + database->DisConnect(); + + delete_debug_dump_dir(row.m_sDebugDumpDir.c_str()); } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); - return false; } - return true; } -bool DeleteDebugDump_by_dir(const char *dump_dir) +void DeleteDebugDump_by_dir(const char *dump_dir) { try { - DeleteCrashInfosInDB_by_dir(dump_dir); + CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); + database->Connect(); + database->DeleteRows_by_dir(dump_dir); + database->DisConnect(); + delete_debug_dump_dir(dump_dir); } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); - return false; } - return true; } diff --git a/src/Daemon/CrashWatcher.h b/src/Daemon/CrashWatcher.h index 3f543e18..a8064367 100644 --- a/src/Daemon/CrashWatcher.h +++ b/src/Daemon/CrashWatcher.h @@ -51,7 +51,7 @@ class CCrashWatcher vector_crash_infos_t GetCrashInfos(const char *pUID); int CreateReportThread(const char* pUUID, const char* pUID, int force, const char* pSender); map_crash_report_t CreateReport(const char* pUUID, const char* pUID, int force); -bool DeleteDebugDump(const char *pUUID, const char *pUID); -bool DeleteDebugDump_by_dir(const char *dump_dir); +void DeleteDebugDump(const char *pUUID, const char *pUID); +void DeleteDebugDump_by_dir(const char *dump_dir); #endif diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index 6f901f39..f9910dce 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -343,11 +343,6 @@ static void FindNewDumps(const char* pPath) VERB1 log("Already saved crash %s, deleting", itt->c_str()); delete_debug_dump_dir(itt->c_str()); break; - case MW_BLACKLISTED: - case MW_CORRUPTED: - case MW_PACKAGE_ERROR: - case MW_GPG_ERROR: - case MW_FILE_ERROR: default: log("Corrupted or bad crash %s (res:%d), deleting", itt->c_str(), (int)res); delete_debug_dump_dir(itt->c_str()); @@ -356,10 +351,6 @@ static void FindNewDumps(const char* pPath) } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); } } @@ -545,12 +536,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin } catch (CABRTException& e) { - error_msg(e.what()); - if (e.type() == EXCEP_FATAL) - { - free(buf); - return -1; - } + error_msg("%s", e.what()); } catch (...) { diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp index 676f168a..8528f644 100644 --- a/src/Daemon/MiddleWare.cpp +++ b/src/Daemon/MiddleWare.cpp @@ -520,26 +520,6 @@ report_status_t Report(const map_crash_report_t& pCrashReport, return ret; } -std::string DeleteCrashInfoInDB(const char *pUUID, - const char *pUID) -{ - CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); - database->Connect(); - database_row_t row = database->GetRow(pUUID, pUID); - database->DeleteRow(pUUID, pUID); - database->DisConnect(); - - return row.m_sDebugDumpDir; -} - -void DeleteCrashInfosInDB_by_dir(const char *dump_dir) -{ - CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); - database->Connect(); - database->DeleteRows_by_dir(dump_dir); - database->DisConnect(); -} - /** * Check whether particular debugdump directory is saved * in database. This check is done together with an UID of an user. @@ -861,10 +841,6 @@ mw_result_t FillCrashInfo(const char *pUUID, catch (CABRTException& e) { error_msg("%s", e.what()); - if (e.type() == EXCEP_DD_LOAD) - { - return MW_FILE_ERROR; - } return MW_ERROR; } diff --git a/src/Daemon/MiddleWare.h b/src/Daemon/MiddleWare.h index 44fa3b6b..b2b58dcd 100644 --- a/src/Daemon/MiddleWare.h +++ b/src/Daemon/MiddleWare.h @@ -105,17 +105,6 @@ report_status_t Report(const map_crash_report_t& pCrashReport, std::string getDebugDumpDir( const char *pUUID, const char *pUID); /** - * Deletes a row from database. If a deleting is - * successfull, it returns a debugdump directort, which is not - * deleted. Otherwise, it returns empty string. - * @param pUUID A local UUID of a crash. - * @param pUID An UID of an user. - * @return A debugdump directory. - */ -std::string DeleteCrashInfoInDB(const char *pUUID, - const char *pUID); -void DeleteCrashInfosInDB_by_dir(const char *dump_dir); -/** * Saves debugdump into database. If saving is successful, * it fills crash info. * @param pDebugDumpDir A debugdump directory. |