From 9c2ee91a3c159ecfacbf718498a283665e5fe7e9 Mon Sep 17 00:00:00 2001 From: David Ansari Date: Thu, 24 Oct 2024 12:34:03 +0200 Subject: [PATCH] Validate setting permissions works in order to troubleshoot the flake described in https://github.com/rabbitmq/rabbitmq-server/issues/12413#issuecomment-2419293869 ``` Node: rabbit_shard2@localhost Case: amqp_system_SUITE:access_failure Reason: {error,{{badmatch,{error,134, "Unhandled exception. System.Exception: expected exception not received\n at Program.Test.accessFailure(String uri) in /home/runner/work/rabbitmq-server/rabbitmq-server/deps/rabbit/test/amqp_system_SUITE_data/fsharp-tests/Program.fs:line 477\n at Program.main(String[] argv) in /home/runner/work/rabbitmq-server/rabbitmq-server/deps/rabbit/test/amqp_system_SUITE_data/fsharp-tests/Program.fs:line 509\n"}}, [{amqp_system_SUITE,run_dotnet_test,2, [{file,"amqp_system_SUITE.erl"}, {line,257}]}, ``` --- deps/rabbit/test/amqp_system_SUITE.erl | 36 ++++++++++--------- .../fsharp-tests/Program.fs | 18 +++++----- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/deps/rabbit/test/amqp_system_SUITE.erl b/deps/rabbit/test/amqp_system_SUITE.erl index d739c7b3fc96..37f9b3ac102d 100644 --- a/deps/rabbit/test/amqp_system_SUITE.erl +++ b/deps/rabbit/test/amqp_system_SUITE.erl @@ -219,28 +219,32 @@ auth_failure(Config) -> access_failure(Config) -> User = atom_to_binary(?FUNCTION_NAME), - rabbit_ct_broker_helpers:add_user(Config, User, <<"boo">>), - rabbit_ct_broker_helpers:set_permissions(Config, User, <<"/">>, - <<".*">>, %% configure - <<"^banana.*">>, %% write - <<"^banana.*">> %% read - ), - run(Config, [ {dotnet, "access_failure"} ]). + ok = rabbit_ct_broker_helpers:add_user(Config, User, <<"boo">>), + ok = rabbit_ct_broker_helpers:set_permissions(Config, User, <<"/">>, + <<".*">>, %% configure + <<"^banana.*">>, %% write + <<"^banana.*">> %% read + ), + run(Config, [ {dotnet, "access_failure"} ]), + ok = rabbit_ct_broker_helpers:delete_user(Config, User). + access_failure_not_allowed(Config) -> User = atom_to_binary(?FUNCTION_NAME), - rabbit_ct_broker_helpers:add_user(Config, User, <<"boo">>), - run(Config, [ {dotnet, "access_failure_not_allowed"} ]). + ok = rabbit_ct_broker_helpers:add_user(Config, User, <<"boo">>), + run(Config, [ {dotnet, "access_failure_not_allowed"} ]), + ok = rabbit_ct_broker_helpers:delete_user(Config, User). access_failure_send(Config) -> User = atom_to_binary(?FUNCTION_NAME), - rabbit_ct_broker_helpers:add_user(Config, User, <<"boo">>), - rabbit_ct_broker_helpers:set_permissions(Config, User, <<"/">>, - <<".*">>, %% configure - <<"^banana.*">>, %% write - <<"^banana.*">> %% read - ), - run(Config, [ {dotnet, "access_failure_send"} ]). + ok = rabbit_ct_broker_helpers:add_user(Config, User, <<"boo">>), + ok = rabbit_ct_broker_helpers:set_permissions(Config, User, <<"/">>, + <<".*">>, %% configure + <<"^banana.*">>, %% write + <<"^banana.*">> %% read + ), + run(Config, [ {dotnet, "access_failure_send"} ]), + ok = rabbit_ct_broker_helpers:delete_user(Config, User). run(Config, Flavors) -> ClientLibrary = ?config(amqp_client_library, Config), diff --git a/deps/rabbit/test/amqp_system_SUITE_data/fsharp-tests/Program.fs b/deps/rabbit/test/amqp_system_SUITE_data/fsharp-tests/Program.fs index 5a1a0aaa5392..453406b84253 100755 --- a/deps/rabbit/test/amqp_system_SUITE_data/fsharp-tests/Program.fs +++ b/deps/rabbit/test/amqp_system_SUITE_data/fsharp-tests/Program.fs @@ -413,7 +413,7 @@ module Test = let invalidRoutes uri = - for dest, cond in + for addr, cond in ["/exchanges/missing", "amqp:not-found" "/fruit/orange", "amqp:invalid-field"] do use ac = connectAnon uri @@ -428,11 +428,11 @@ module Test = let attached = new OnAttached (fun _ _ -> trySet mre) let sender = new SenderLink(ac.Session, "test-sender", - Target(Address = dest), attached); + Target(Address = addr), attached); mre.WaitOne() |> ignore try - let receiver = ReceiverLink(ac.Session, "test-receiver", dest) + let receiver = ReceiverLink(ac.Session, "test-receiver", addr) receiver.Close() with | :? Amqp.AmqpException as ae -> @@ -454,11 +454,11 @@ module Test = let u = Uri uri let uri = sprintf "amqp://access_failure:boo@%s:%i" u.Host u.Port use ac = connect uri - let dest = "/queues/test" + let target = "/queues/test" ac.Session.add_Closed ( new ClosedCallback (fun _ err -> printfn "session err %A" err.Condition )) - let sender = new SenderLink(ac.Session, "test-sender", dest) + let sender = new SenderLink(ac.Session, "test-sender", target) sender.Send(new Message "hi", TimeSpan.FromSeconds 15.) failwith "expected exception not received" with @@ -471,8 +471,8 @@ module Test = let u = Uri uri let uri = sprintf "amqp://access_failure:boo@%s:%i" u.Host u.Port use ac = connect uri - let dest = "/queues/test" - let receiver = ReceiverLink(ac.Session, "test-receiver", dest) + let src = "/queues/test" + let receiver = ReceiverLink(ac.Session, "test-receiver", src) receiver.Close() failwith "expected exception not received" with @@ -485,8 +485,8 @@ module Test = let u = Uri uri let uri = sprintf "amqp://access_failure_not_allowed:boo@%s:%i" u.Host u.Port use ac = connect uri - let dest = "/queues/test" - let receiver = ReceiverLink(ac.Session, "test-receiver", dest) + let src = "/queues/test" + let receiver = ReceiverLink(ac.Session, "test-receiver", src) receiver.Close() failwith "expected exception not received" with