Remove database recovery logic when sqlite command fails
authorAbhay Agarwal <ay.agarwal@samsung.com>
Mon, 7 Oct 2019 09:57:57 +0000 (18:57 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Tue, 8 Oct 2019 08:15:34 +0000 (17:15 +0900)
Current database recovery logic delete the current database and create a new database when
SQLite command fail, although SQLite cammand can also fail in case database is busy or locked.

Change-Id: Ib361c118427a5ef9f3ce6142c4d44d75475a045e
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
ua-daemon/include/ua-manager-database.h
ua-daemon/src/ua-manager-adv-db.c
ua-daemon/src/ua-manager-db.c
ua-daemon/src/ua-manager-device-db.c
ua-daemon/src/ua-manager-device-service-db.c
ua-daemon/src/ua-manager-service-db.c
ua-daemon/src/ua-manager-user-db.c

index c5d6461..c9ad289 100644 (file)
@@ -69,7 +69,6 @@ int _uam_db_initialize_once(void);
 /* db init/deinit */
 int _uam_db_initialize(void);
 int _uam_db_deinitialize(void);
-sqlite3 *__uam_db_recover_database(void);
 
 /* delete operations */
 int _uam_db_clear(void);
index a3e8882..17d99f9 100644 (file)
@@ -183,8 +183,7 @@ int _uam_db_get_max_ibeacon_id(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to select max ibeacon adv: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to select max ibeacon adv");
                }
        } while (rc == SQLITE_ROW);
 
@@ -241,8 +240,7 @@ int _uam_db_insert_adv_info(unsigned int adv_len, const char *iadv)
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to insert ibeacon adv info: %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to insert ibeacon adv info");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -284,8 +282,7 @@ GSList *_uam_db_get_all_advs(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate service info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate ibeacon adv info ");
                }
        } while (rc == SQLITE_ROW);
 
@@ -300,8 +297,7 @@ int _uam_adv_db_clear(void)
        sqlite3_stmt *stmt = delete_all_adv_data;
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete user data %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete adv data ");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
index ad92dc3..0df6757 100644 (file)
@@ -182,8 +182,7 @@ static int __uam_db_get_version(unsigned int *ver)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to select database version info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to select database version info");
                }
        } while (rc == SQLITE_ROW);
 
@@ -467,18 +466,6 @@ int _uam_db_initialize_once(void)
        return ret;
 }
 
-sqlite3 *__uam_db_recover_database(void)
-{
-       if (database != NULL) {
-               sqlite3_close(database);
-               unlink(DATABASE_FULL_PATH);
-               database = NULL;
-       }
-
-       _uam_db_initialize_once();
-       return database;
-}
-
 int _uam_db_initialize(void)
 {
        FUNC_ENTRY;
index aa7af93..70531b7 100644 (file)
@@ -269,8 +269,7 @@ int _uam_db_get_max_device_number(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate device info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate device info ");
                }
        } while (rc == SQLITE_ROW);
 
@@ -330,8 +329,7 @@ int _uam_device_db_update_device_ip_address(char *device_id, int tech_type,
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to update ip address: %s",
-                        sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to update ip address ");
 
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
@@ -363,8 +361,7 @@ int _uam_device_db_update_device_presence(char *device_id, int tech_type,
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to update presence: %s",
-                        sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to update presence ");
 
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
@@ -396,8 +393,7 @@ int _uam_device_db_update_device_timestamp(char *device_id, int tech_type,
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to update device timestamp: %s",
-                        sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to update device timestamp ");
 
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
@@ -441,8 +437,7 @@ int _uam_device_db_update_device_device(char *device_id, int tech_type,
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to update device discriminant: %s",
-                        sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to update device discriminant ");
 
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
@@ -499,8 +494,7 @@ int _uam_device_db_insert_device_info(int user_id,
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to insert device info: %s",
-                       sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to insert device info ");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -538,8 +532,7 @@ int _uam_device_db_delete_device_info(const char *device_id, int tech_type,
        }
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete device info %s",
-                        sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete device info ");
                error_code = UAM_ERROR_DB_FAILED;
        } else
                UAM_DBG("Device info deleted");
@@ -569,8 +562,7 @@ int _uam_device_db_get_device(char *device_id, int tech_type, char *address,
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to select device info %s",
-                        sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to select device info ");
                error_code = UAM_ERROR_DB_FAILED;
        } else {
                UAM_DBG("Device info found");
@@ -647,8 +639,7 @@ int _uam_db_get_device_number(const char *device_id, int tech_type,
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate device info: %s",
-                                sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate device info ");
                }
        } while (rc == SQLITE_ROW);
 
@@ -710,8 +701,7 @@ GSList *_uam_device_db_get_all_devices(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate device info: %s",
-                                sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate device info ");
                }
        } while (rc == SQLITE_ROW);
 
@@ -726,8 +716,7 @@ int _uam_device_db_clear(void)
        sqlite3_stmt *stmt = delete_all_devices;
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete device data %s",
-                       sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete device data ");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
index e912ee1..5f44241 100644 (file)
@@ -271,8 +271,7 @@ int _uam_db_insert_service(int device_number, int service_number, gboolean discr
        DB_ACTION(sqlite3_bind_int(stmt, 3, discriminant), error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to insert device-service info: %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to insert device-service info");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -300,8 +299,7 @@ int _uam_db_update_device_service(int device_number, int service_number,
        DB_ACTION(sqlite3_bind_int(stmt, 3, service_number), error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to insert device-service info: %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to insert device-service info");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -388,8 +386,7 @@ int _uam_device_service_db_clear(void)
        sqlite3_stmt *stmt = delete_all_device_services;
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete device data %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete device data");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -413,8 +410,7 @@ int _uam_db_delete_service_number(int service_number)
        DB_ACTION(sqlite3_bind_int(stmt, 1, service_number), error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete device-service info %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete device-service info");
                error_code = UAM_ERROR_DB_FAILED;
        } else
                UAM_DBG("Device-service info deleted");
@@ -437,8 +433,7 @@ int _uam_db_delete_device_service_number(int device_number, int service_number)
        DB_ACTION(sqlite3_bind_int(stmt, 2, service_number), error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete device-service info %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete device-service info");
                error_code = UAM_ERROR_DB_FAILED;
        } else
                UAM_DBG("Device-service info deleted");
@@ -460,8 +455,7 @@ int _uam_db_delete_device_number(int device_number)
        DB_ACTION(sqlite3_bind_int(stmt, 1, device_number), error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete device info %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete device info");
                error_code = UAM_ERROR_DB_FAILED;
        } else
                UAM_DBG("Device info deleted");
@@ -589,8 +583,7 @@ GSList *_uam_db_get_service(int device_number)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate device info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate device info");
                }
        } while (rc == SQLITE_ROW);
 
@@ -653,8 +646,7 @@ int _uam_db_get_device_services_count(const char *device_id, int tech_type,
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate device info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate device info ");
                }
        } while (rc == SQLITE_ROW);
 
@@ -698,8 +690,7 @@ GSList *_uam_db_get_service_devices_info()
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate device info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate device info ");
                }
        } while (rc == SQLITE_ROW);
 
index ef37b3e..2f33314 100644 (file)
@@ -232,8 +232,7 @@ int _uam_db_get_max_service_number(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to select max service number: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to select max service number");
                }
        } while (rc == SQLITE_ROW);
 
@@ -296,8 +295,7 @@ int _uam_db_insert_service_info(
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to insert service info: %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to insert service info");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -330,8 +328,7 @@ int _uam_db_delete_service_info(const char *service_name)
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete service info %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete service info");
                error_code = UAM_ERROR_DB_FAILED;
        } else
                UAM_DBG("Service info deleted");
@@ -348,8 +345,7 @@ int _uam_service_db_clear(void)
        sqlite3_stmt *stmt = delete_all_services;
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete service data %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete service data");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -375,8 +371,7 @@ int _uam_db_update_service_cycle(const char *service_name, int cycle)
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to update service timestamp: %s",
-                        sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to update service timestamp");
 
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
@@ -424,8 +419,7 @@ int _uam_db_get_service_info(const char *service_name, db_service_info_t *info)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate device info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate device info");
                        error_code = UAM_ERROR_DB_FAILED;
                }
        } while (rc == SQLITE_ROW);
@@ -466,8 +460,7 @@ GSList *_uam_service_db_get_all_services(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate service info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate service info");
                }
        } while (rc == SQLITE_ROW);
 
index 5d50a90..7158c90 100644 (file)
@@ -207,8 +207,7 @@ int _uam_db_get_max_user_id(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to select max user id: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to select max user id");
                }
        } while (rc == SQLITE_ROW);
 
@@ -266,8 +265,7 @@ int _uam_db_insert_user_info(int *user_id, const char *name, const char *account
                error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to insert user info: %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to insert user info");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
@@ -295,8 +293,7 @@ int _uam_db_delete_by_user_id(int user_id)
        DB_ACTION(sqlite3_bind_int(stmt, 1, user_id), error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete user info %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete user info");
                error_code = UAM_ERROR_DB_FAILED;
        } else
                UAM_DBG("User info deleted");
@@ -321,8 +318,7 @@ int _uam_db_get_user(int user_id, db_user_info_t *info)
        DB_ACTION(sqlite3_bind_int(stmt, 1, user_id), error_code, handle_error);
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to select user info %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to select user info");
                error_code = UAM_ERROR_DB_FAILED;
        } else {
                info = g_new0(db_user_info_t, 1);
@@ -372,8 +368,7 @@ GSList *_uam_db_get_all_users(void)
                        break;
                case SQLITE_ERROR:
                default:
-                       UAM_ERR("Failed to enumerate user info: %s",
-                                       sqlite3_errmsg(__uam_db_recover_database()));
+                       UAM_ERR("Failed to enumerate user info");
                }
        } while (rc == SQLITE_ROW);
 
@@ -388,8 +383,7 @@ int _uam_user_db_clear(void)
        sqlite3_stmt *stmt = delete_all_users_data;
 
        if (sqlite3_step(stmt) != SQLITE_DONE) {
-               UAM_ERR("Failed to delete user data %s",
-                               sqlite3_errmsg(__uam_db_recover_database()));
+               UAM_ERR("Failed to delete user data");
                error_code = UAM_ERROR_DB_FAILED;
                goto handle_error;
        }