瀏覽代碼

dmq: fix inter-lock on error

triggered by intermittent DNS resolution error. dmq workers
were getting locked at dmq_notification_callback_f() due to
this missing lock_release()

(cherry picked from commit 0d240e4e0dc3184ef37d338ba6872d295d6b16f2)
(cherry picked from commit 814f5bdc9ee5d4594ffb0fd72843bca7b5fa79ea)
(cherry picked from commit 0a96c9f4fb3bf179d417b0188d619afd7d9096ef)
Victor Seva 1 年之前
父節點
當前提交
3ad3a61a90
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      src/modules/dmq/notification_peer.c

+ 4 - 2
src/modules/dmq/notification_peer.c

@@ -405,8 +405,10 @@ int extract_node_list(dmq_node_list_t *update_list, struct sip_msg *msg)
 		/* trim the \r, \n and \0's */
 		trim_r(tmp_uri);
 		find = build_dmq_node(&tmp_uri, 0);
-		if(find == NULL)
-			return -1;
+		if(find == NULL) {
+			LM_ERR("error building dmq node\n");
+			goto error;
+		}
 		ret = find_dmq_node(update_list, find);
 		if(!ret) {
 			LM_DBG("found new node %.*s\n", STR_FMT(&tmp_uri));