Hi all,

I found a bug in the daemon process management. Indeed, when we have several 
instances of one daemon such as "dnsmasq" and we want to restart only one 
instance, the other instance is killed by procd. It seems procd updates the 
second instance and then, kill it.

Please find the patch :
diff --git a/service/service.c b/service/service.c
index 0796adb..9ed07da 100644
--- a/service/service.c
+++ b/service/service.c
@@ -132,8 +132,6 @@ service_update(struct service *s, struct blob_attr **tb, 
bool add)
        }

        if (tb[SERVICE_SET_INSTANCES]) {
-               if (!add)
-                       vlist_update(&s->instances);
                blobmsg_for_each_attr(cur, tb[SERVICE_SET_INSTANCES], rem) {
                        service_instance_add(s, cur);
                }
@@ -238,7 +236,7 @@ service_handle_set(struct ubus_context *ctx, struct 
ubus_object *obj,
        int ret;

        blobmsg_parse(service_set_attrs, __SERVICE_SET_MAX, tb, blob_data(msg), 
blob_len(msg));
-       cur = tb[SERVICE_ATTR_NAME];
+       cur = tb[SERVICE_SET_NAME];
        if (!cur)
                return UBUS_STATUS_INVALID_ARGUMENT;



Regards,

Pierre


_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to