Apply memory limit to 30M and recovery logic 73/235373/1
authorDeokhyun Kim <dukan.kim@samsung.com>
Tue, 2 Jun 2020 06:33:47 +0000 (15:33 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Thu, 4 Jun 2020 06:40:20 +0000 (15:40 +0900)
 - Restart bt-service by SIGKILL even if mem usage exceeds 30M
 - Recover bt even if bt has been activated without bt-service

Change-Id: Ib325fd770c85f8545324674b0b77dd07be0a8604
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
bt-service-adaptation/services/bt-service-main.c
packaging/bluetooth-frwk-wearable.service

index d63d0e3..d6e3b0f 100644 (file)
@@ -167,6 +167,7 @@ static void __bt_check_factory_mode(void)
 
 static gboolean __bt_check_bt_service(void *data)
 {
+       int ret;
        bt_status_t status = BT_DEACTIVATED;
        bt_le_status_t le_status = BT_LE_DEACTIVATED;
        int bt_status = VCONFKEY_BT_STATUS_OFF;
@@ -186,6 +187,14 @@ static gboolean __bt_check_bt_service(void *data)
        le_status = _bt_adapter_get_le_status();
        BT_DBG("State: %d, LE State: %d", status, le_status);
 
+       if (status == BT_ACTIVATED) {
+               BT_INFO("Need to recover because bt has been activated without bt-service");
+               ret = _bt_recover_adapter();
+               if (ret != BLUETOOTH_ERROR_NONE)
+                       BT_ERR("_bt_recover_adapter is failed : %d", ret);
+               return FALSE;
+       }
+
        if (TIZEN_PROFILE_TV) {
 #if TODO_40 /* Need to add this function */
                if (_bt_get_enable_timer_id() == 0)
index 092e58b..eaca442 100644 (file)
@@ -11,6 +11,9 @@ BusName=org.projectx.bt
 ExecStart=/usr/bin/bt-service
 KillMode=process
 NotifyAccess=main
+MemoryLimit=30M
+Restart=on-failure
+RestartSec=0
 
 [Install]
 WantedBy=multi-user.target