فهرست منبع

fix: add attrs bad match when Ctx is undefined

JimMoen 1 سال پیش
والد
کامیت
b6ae2ff5c7

+ 5 - 1
apps/emqx/include/emqx_external_trace.hrl

@@ -54,7 +54,11 @@
 ).
 
 -define(EXT_TRACE_ADD_ATTRS(Attrs),
-    ?with_provider(add_span_attrs(Attrs), ok)
+    case Attrs of
+        NotMap when not is_map(NotMap) -> ok;
+        EmptyMap when is_map(EmptyMap) andalso map_size(EmptyMap) =:= 0 -> ok;
+        _ -> ?with_provider(add_span_attrs(Attrs), ok)
+    end
 ).
 
 -define(EXT_TRACE_ADD_ATTRS(Attrs, Ctx),

+ 1 - 1
apps/emqx/src/emqx_broker.erl

@@ -370,7 +370,7 @@ do_route([], #delivery{message = Msg}, _PersistRes = []) ->
         begin
             case Msg of
                 #message{flags = #{sys := true}} ->
-                    #{};
+                    ok;
                 _ ->
                     #{
                         'route.dropped.node' => node(),

+ 3 - 1
apps/emqx_opentelemetry/src/emqx_otel_trace.erl

@@ -724,8 +724,10 @@ awaiting_span_name(?PUBCOMP) ->
 
 -spec add_span_attrs(AttrsOrMeta) -> ok when
     AttrsOrMeta :: attrs().
+add_span_attrs(EmpytAttr) when map_size(EmpytAttr) =:= 0 ->
+    ok;
 add_span_attrs(Attrs) ->
-    true = ?set_attributes(Attrs),
+    _ = ?set_attributes(Attrs),
     ok.
 
 add_span_attrs(Attrs, Ctx) ->