From e58eb1807a4b2d6f58e6201ecd92fa1bd82bb882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20P=C3=A9dron?= Date: Tue, 6 May 2025 16:53:47 +0200 Subject: [PATCH] Move `file_handle_cache` and `vm_memory_monitor` back to `rabbit` [Why] They were moved from `rabbit` to `rabbit_common` several years ago to solve an dependency issue because `amqp_client` depended on the file handle cache. This is not the case anymore. [How] The modules are moved back to `rabbit`. `rabbit_common` doesn't need to depend on `os_mon` anymore. `rabbit` already depends on it, so no changes needed here. `include/rabbit_memory.hrl` and some test cases are moved as well to follow the `vm_memory_monitor` module. --- .../include/rabbit_memory.hrl | 0 .../src/file_handle_cache.erl | 0 .../src/vm_memory_monitor.erl | 2 +- .../test/unit_vm_memory_monitor_SUITE.erl | 48 ++++++++++++++++++- deps/rabbit_common/Makefile | 2 +- deps/rabbit_common/test/unit_SUITE.erl | 48 ------------------- 6 files changed, 49 insertions(+), 51 deletions(-) rename deps/{rabbit_common => rabbit}/include/rabbit_memory.hrl (100%) rename deps/{rabbit_common => rabbit}/src/file_handle_cache.erl (100%) rename deps/{rabbit_common => rabbit}/src/vm_memory_monitor.erl (99%) diff --git a/deps/rabbit_common/include/rabbit_memory.hrl b/deps/rabbit/include/rabbit_memory.hrl similarity index 100% rename from deps/rabbit_common/include/rabbit_memory.hrl rename to deps/rabbit/include/rabbit_memory.hrl diff --git a/deps/rabbit_common/src/file_handle_cache.erl b/deps/rabbit/src/file_handle_cache.erl similarity index 100% rename from deps/rabbit_common/src/file_handle_cache.erl rename to deps/rabbit/src/file_handle_cache.erl diff --git a/deps/rabbit_common/src/vm_memory_monitor.erl b/deps/rabbit/src/vm_memory_monitor.erl similarity index 99% rename from deps/rabbit_common/src/vm_memory_monitor.erl rename to deps/rabbit/src/vm_memory_monitor.erl index dcb4192dacde..e97a468372f4 100644 --- a/deps/rabbit_common/src/vm_memory_monitor.erl +++ b/deps/rabbit/src/vm_memory_monitor.erl @@ -54,7 +54,7 @@ page_size = undefined, proc_file = undefined}). --include("rabbit_memory.hrl"). +-include("include/rabbit_memory.hrl"). %%---------------------------------------------------------------------------- diff --git a/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl b/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl index 5f145fef7c3b..0b725864723b 100644 --- a/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl +++ b/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl @@ -9,6 +9,8 @@ -include_lib("eunit/include/eunit.hrl"). +-include("include/rabbit_memory.hrl"). + -compile(export_all). all() -> @@ -22,7 +24,11 @@ groups() -> parse_line_linux, set_vm_memory_high_watermark_relative1, set_vm_memory_high_watermark_relative2, - set_vm_memory_high_watermark_absolute + set_vm_memory_high_watermark_absolute, + parse_mem_limit_relative_exactly_max, + parse_mem_relative_above_max, + parse_mem_relative_integer, + parse_mem_relative_invalid ]} ]. @@ -119,3 +125,43 @@ set_and_verify_vm_memory_high_watermark_absolute(MemLimit0) -> ct:fail("Expected memory high watermark to be ~tp but it was ~tp", [Interpreted, MemLimit]) end, vm_memory_monitor:set_vm_memory_high_watermark(0.6). + +parse_mem_limit_relative_exactly_max(_Config) -> + MemLimit = vm_memory_monitor:parse_mem_limit(1.0), + case MemLimit of + ?MAX_VM_MEMORY_HIGH_WATERMARK -> ok; + _ -> ct:fail( + "Expected memory limit to be ~tp, but it was ~tp", + [?MAX_VM_MEMORY_HIGH_WATERMARK, MemLimit] + ) + end. + +parse_mem_relative_above_max(_Config) -> + MemLimit = vm_memory_monitor:parse_mem_limit(1.01), + case MemLimit of + ?MAX_VM_MEMORY_HIGH_WATERMARK -> ok; + _ -> ct:fail( + "Expected memory limit to be ~tp, but it was ~tp", + [?MAX_VM_MEMORY_HIGH_WATERMARK, MemLimit] + ) + end. + +parse_mem_relative_integer(_Config) -> + MemLimit = vm_memory_monitor:parse_mem_limit(1), + case MemLimit of + ?MAX_VM_MEMORY_HIGH_WATERMARK -> ok; + _ -> ct:fail( + "Expected memory limit to be ~tp, but it was ~tp", + [?MAX_VM_MEMORY_HIGH_WATERMARK, MemLimit] + ) + end. + +parse_mem_relative_invalid(_Config) -> + MemLimit = vm_memory_monitor:parse_mem_limit([255]), + case MemLimit of + ?DEFAULT_VM_MEMORY_HIGH_WATERMARK -> ok; + _ -> ct:fail( + "Expected memory limit to be ~tp, but it was ~tp", + [?DEFAULT_VM_MEMORY_HIGH_WATERMARK, MemLimit] + ) + end. diff --git a/deps/rabbit_common/Makefile b/deps/rabbit_common/Makefile index 857cee1ade5d..95343653641b 100644 --- a/deps/rabbit_common/Makefile +++ b/deps/rabbit_common/Makefile @@ -25,7 +25,7 @@ define HEX_TARBALL_EXTRA_METADATA } endef -LOCAL_DEPS = compiler crypto public_key sasl ssl syntax_tools tools xmerl os_mon runtime_tools +LOCAL_DEPS = compiler crypto public_key sasl ssl syntax_tools tools xmerl runtime_tools DEPS = thoas ranch recon credentials_obfuscation # Variables and recipes in development.*.mk are meant to be used from diff --git a/deps/rabbit_common/test/unit_SUITE.erl b/deps/rabbit_common/test/unit_SUITE.erl index 70d2e4a95ea8..43e5a841dba2 100644 --- a/deps/rabbit_common/test/unit_SUITE.erl +++ b/deps/rabbit_common/test/unit_SUITE.erl @@ -11,7 +11,6 @@ -include_lib("proper/include/proper.hrl"). -include_lib("eunit/include/eunit.hrl"). --include("rabbit_memory.hrl"). -include("rabbit.hrl"). -compile(export_all). @@ -26,7 +25,6 @@ all() -> [ {group, parallel_tests}, - {group, parse_mem_limit}, {group, gen_server2}, {group, date_time} ]. @@ -53,12 +51,6 @@ groups() -> get_erl_path, hexify ]}, - {parse_mem_limit, [parallel], [ - parse_mem_limit_relative_exactly_max, - parse_mem_relative_above_max, - parse_mem_relative_integer, - parse_mem_relative_invalid - ]}, {gen_server2, [parallel], [ stats_timer_is_working, stats_timer_writes_gen_server2_metrics_if_core_metrics_ets_exists, @@ -254,46 +246,6 @@ gen_server2_stop(_) -> ?assertEqual({'EXIT', noproc}, (catch gen_server:stop(TestServer))), ok. -parse_mem_limit_relative_exactly_max(_Config) -> - MemLimit = vm_memory_monitor:parse_mem_limit(1.0), - case MemLimit of - ?MAX_VM_MEMORY_HIGH_WATERMARK -> ok; - _ -> ct:fail( - "Expected memory limit to be ~tp, but it was ~tp", - [?MAX_VM_MEMORY_HIGH_WATERMARK, MemLimit] - ) - end. - -parse_mem_relative_above_max(_Config) -> - MemLimit = vm_memory_monitor:parse_mem_limit(1.01), - case MemLimit of - ?MAX_VM_MEMORY_HIGH_WATERMARK -> ok; - _ -> ct:fail( - "Expected memory limit to be ~tp, but it was ~tp", - [?MAX_VM_MEMORY_HIGH_WATERMARK, MemLimit] - ) - end. - -parse_mem_relative_integer(_Config) -> - MemLimit = vm_memory_monitor:parse_mem_limit(1), - case MemLimit of - ?MAX_VM_MEMORY_HIGH_WATERMARK -> ok; - _ -> ct:fail( - "Expected memory limit to be ~tp, but it was ~tp", - [?MAX_VM_MEMORY_HIGH_WATERMARK, MemLimit] - ) - end. - -parse_mem_relative_invalid(_Config) -> - MemLimit = vm_memory_monitor:parse_mem_limit([255]), - case MemLimit of - ?DEFAULT_VM_MEMORY_HIGH_WATERMARK -> ok; - _ -> ct:fail( - "Expected memory limit to be ~tp, but it was ~tp", - [?DEFAULT_VM_MEMORY_HIGH_WATERMARK, MemLimit] - ) - end. - platform_and_version(_Config) -> MajorVersion = erlang:system_info(otp_release), Result = rabbit_misc:platform_and_version(),