From 3ec6b54d469785246fa1222ff8635786cf840f2d Mon Sep 17 00:00:00 2001 From: Vivek Kumar Dutta <vivek.dutta@iopsys.eu> Date: Tue, 10 Sep 2024 18:54:48 +0530 Subject: [PATCH] bbfdm: delay start datamodel services datamodel services moved down in startup sequence to avoid race conditions --- bbfdm/Makefile | 4 ++-- bbfdm/files/etc/init.d/bbfdm.services | 12 ++++++++---- bbfdm/files/etc/init.d/bbfdmd | 4 +--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bbfdm/Makefile b/bbfdm/Makefile index 74826c2d6..6e5521962 100644 --- a/bbfdm/Makefile +++ b/bbfdm/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bbfdm -PKG_VERSION:=1.12.0 +PKG_VERSION:=1.12.1 USE_LOCAL:=0 ifneq ($(USE_LOCAL),1) @@ -53,7 +53,7 @@ define Package/dm-service CATEGORY:=Utilities SUBMENU:=TRx69 TITLE:=Datamodel ubus backend to expose micro-service tree - DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libbbfdm-api +libbbfdm-ubus +jq +bbf_configmngr + DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libbbfdm-api +libbbfdm-ubus +bbf_configmngr endef define Package/bbf_configmngr diff --git a/bbfdm/files/etc/init.d/bbfdm.services b/bbfdm/files/etc/init.d/bbfdm.services index b4bae28ea..7984e6f36 100644 --- a/bbfdm/files/etc/init.d/bbfdm.services +++ b/bbfdm/files/etc/init.d/bbfdm.services @@ -1,6 +1,6 @@ #!/bin/sh /etc/rc.common -START=40 +START=85 STOP=8 USE_PROCD=1 @@ -33,13 +33,17 @@ _add_microservice() name="$(basename ${path})" name="${name//.json}" - enable="$(jq -r '.daemon.enable//1' ${path})" + json_load_file "${path}" + json_select daemon + + json_get_var enable enable 1 if [ "${enable}" -eq "0" ]; then log "datamodel micro-service ${name} not enabled" return 0 fi - loglevel="$(jq -r '.daemon.config.loglevel//3' ${path})" + json_select config + json_get_var loglevel loglevel 3 procd_open_instance "${name}" @@ -59,7 +63,7 @@ _add_microservice() configure_bbfdm_micro_services() { - local enable enable_core enable_respawn + local enable enable_core config_load bbfdm validate_bbfdm_micro_service_section || { diff --git a/bbfdm/files/etc/init.d/bbfdmd b/bbfdm/files/etc/init.d/bbfdmd index 7f2bf985c..5af07c856 100644 --- a/bbfdm/files/etc/init.d/bbfdmd +++ b/bbfdm/files/etc/init.d/bbfdmd @@ -1,6 +1,6 @@ #!/bin/sh /etc/rc.common -START=65 +START=90 STOP=10 USE_PROCD=1 @@ -44,8 +44,6 @@ configure_bbfdmd() start_service() { - mkdir -p ${BBFDM_TEMP_DIR} - procd_open_instance "bbfdm" configure_bbfdmd procd_set_param respawn -- GitLab