From c65db82b07bc13dbd0d5c34ead103d9eb223dd5b Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Fri, 25 Aug 2023 11:01:23 +0200 Subject: [PATCH 1/2] fix: bad error message when rule engine schema name is too long Fixes: https://emqx.atlassian.net/browse/EMQX-10778 --- .../src/emqx_schema_registry.app.src | 2 +- .../src/emqx_schema_registry.erl | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/apps/emqx_schema_registry/src/emqx_schema_registry.app.src b/apps/emqx_schema_registry/src/emqx_schema_registry.app.src index b79c9ec01..9145f5dc0 100644 --- a/apps/emqx_schema_registry/src/emqx_schema_registry.app.src +++ b/apps/emqx_schema_registry/src/emqx_schema_registry.app.src @@ -1,6 +1,6 @@ {application, emqx_schema_registry, [ {description, "EMQX Schema Registry"}, - {vsn, "0.1.5"}, + {vsn, "0.1.6"}, {registered, [emqx_schema_registry_sup]}, {mod, {emqx_schema_registry_app, []}}, {included_applications, [ diff --git a/apps/emqx_schema_registry/src/emqx_schema_registry.erl b/apps/emqx_schema_registry/src/emqx_schema_registry.erl index 3f09ac347..6face86d6 100644 --- a/apps/emqx_schema_registry/src/emqx_schema_registry.erl +++ b/apps/emqx_schema_registry/src/emqx_schema_registry.erl @@ -64,7 +64,7 @@ get_serde(SchemaName) -> get_schema(SchemaName) -> case emqx_config:get( - [?CONF_KEY_ROOT, schemas, binary_to_atom(SchemaName)], undefined + [?CONF_KEY_ROOT, schemas, schema_name_bin_to_atom(SchemaName)], undefined ) of undefined -> @@ -333,6 +333,20 @@ async_delete_serdes(Names) -> to_bin(A) when is_atom(A) -> atom_to_binary(A); to_bin(B) when is_binary(B) -> B. +schema_name_bin_to_atom(Bin) when size(Bin) > 255 -> + erlang:throw( + iolist_to_binary( + io_lib:format( + "Name is is too long." + " Please provide a shorter name (<= 255 bytes)." + " The name that is too long: \"~s\"", + [Bin] + ) + ) + ); +schema_name_bin_to_atom(Bin) -> + binary_to_atom(Bin, utf8). + -spec serde_to_map(serde()) -> serde_map(). serde_to_map(#serde{} = Serde) -> #{ From 00b2712f29517cd4f1a4a4e8908f21861520565a Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Fri, 25 Aug 2023 11:09:44 +0200 Subject: [PATCH 2/2] docs: changelog entry for improved too long schema name fix --- changes/ce/fix-11522.en.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/ce/fix-11522.en.md diff --git a/changes/ce/fix-11522.en.md b/changes/ce/fix-11522.en.md new file mode 100644 index 000000000..fdb56b4e2 --- /dev/null +++ b/changes/ce/fix-11522.en.md @@ -0,0 +1 @@ +Improved error message for rule engine schema registry when schema name exceeds permissible length.