-
Bug
-
Resolution: Done
-
Major
-
None
-
2.11.0.B1
-
False
-
False
-
-
QE dontnet-core consumer crashes on receiving a message from amqp c++ peer. Backtrace from dotnet client is attached. Using proton 0.35.0 (AMQ Clients 2.10.x) all messages are delivered as expected, so it possibly indicates regression in proton or c++ binding.
This is the only issue in the QE interop tests:
- QE dotnet client can consume messages from other supported clients peers as expected.
- QE C++ client is able to send message to other peers as expected.
packages versions:
- qpid-proton-c-0.37.0
- qpid-proton-cpp-0.37.0
- amq-clients-2.11.0-dotnet-core.zip
- dotnet 3.1.416
C++ client frame trace:
# PN_TRACE_FRM=1 /var/dtests/node_data/clients/aac3_sender --broker-url "<host_ip>:5672/examples" --log-msgs interop --count 1 --conn-sasl-enabled False [0xeb50b0]: AMQP:FRAME: -> AMQP [0xeb50b0]: AMQP:FRAME:0 -> @open(16) [container-id="76196a8d-90b7-4419-bfe6-3160186b5ef7", hostname="10.0.201.220", channel-max=0x7fff] [0xeb50b0]: AMQP:FRAME:0 -> @begin(17) [next-outgoing-id=0x0, incoming-window=0x7fffffff, outgoing-window=0x7fffffff] [0xeb50b0]: AMQP:FRAME:0 -> @attach(18) [name="59b935c8-0307-49e4-b46f-e576ba97497a", handle=0x0, role=false, snd-settle-mode=0x2, rcv-settle-mode=0x0, source=@source(40) [durable=0x0, timeout=0x0, dynamic=false, capabilities=@<symbol>[]], target=@target(41) [address="examples", durable=0x0, timeout=0x0, dynamic=false], initial-delivery-count=0x0, max-message-size=0x0] [0xeb50b0]: AMQP:FRAME: <- AMQP [0xeb50b0]: AMQP:FRAME:0 <- @open(16) [container-id="ContainerHost-88d4fe5d689b490abc7f07b6136d6760", hostname="localhost", max-frame-size=0x40000, channel-max=0xff, idle-time-out=0x7fffffff] [0xeb50b0]: AMQP:FRAME:0 <- @begin(17) [remote-channel=0x0, next-outgoing-id=0x0, incoming-window=0x800, outgoing-window=0x7fffffff, handle-max=0x3f] [0xeb50b0]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="connection aborted"]] [0xeb50b0]: IO:FRAME: <- EOS [0xeb50b0]: IO:FRAME: -> EOS [error]: The connection with 10.0.201.220:5672 was interrupted: amqp:connection:framing-error: connection aborted [0xeb9500]: AMQP:FRAME: -> AMQP [0xeb9500]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xeb9500]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [0xebaac0]: AMQP:FRAME: -> AMQP [0xebaac0]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xebaac0]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [0xebadb0]: AMQP:FRAME: -> AMQP [0xebadb0]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xebadb0]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [0xeb9e10]: AMQP:FRAME: -> AMQP [0xeb9e10]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xeb9e10]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [0xeba100]: AMQP:FRAME: -> AMQP [0xeba100]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xeba100]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [0xeba100]: AMQP:FRAME: -> AMQP [0xeba100]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xeba100]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [0xeba100]: AMQP:FRAME: -> AMQP [0xeba100]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xeba100]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [0xeba100]: AMQP:FRAME: -> AMQP [0xeba100]: AMQP:FRAME:0 -> @open(16) [container-id=""] [0xeba100]: AMQP:FRAME:0 -> @close(24) [error=@error(29) [condition=:"proton:io", description="Connection refused - disconnected 10.0.201.220:5672"]] [error]: The connection with 10.0.201.220:5672 was interrupted: proton:io: Connection refused - disconnected 10.0.201.220:5672 [root@dtests-rhel8x-tn-base ~]# client_loop: send disconnect: Broken pipe
QE dotnet client fails with the following stacktrace:
[root@dtests-rhel8x-tn-base ~]# dotnet /var/dtests/node_data/clients/cli-netlite-core/cli-netlite-core-receiver.dll --timeout 120 --log-msgs interop --broker <host_ip>:5672 --recv-listen true --address 'examples' --count 1 Process terminated. Assertion failed. must have at least 1 element in array at Amqp.Fx.Assert(Boolean condition, String message) at Amqp.Types.Encoder.WriteArray(ByteBuffer buffer, Array value) at Amqp.Types.Encoder.<>c.<Initialize>b__13_40(ByteBuffer b, Object o, Boolean s) at Amqp.Types.Encoder.WriteObject(ByteBuffer buffer, Object value, Boolean smallEncoding) at Amqp.Framing.Source.WriteField(ByteBuffer buffer, Int32 index) at Amqp.Types.DescribedList.EncodeValue(ByteBuffer buffer) at Amqp.Types.Described.Encode(ByteBuffer buffer) at Amqp.Types.Encoder.WriteObject(ByteBuffer buffer, Object value, Boolean smallEncoding) at Amqp.Framing.Attach.WriteField(ByteBuffer buffer, Int32 index) at Amqp.Types.DescribedList.EncodeValue(ByteBuffer buffer) at Amqp.Types.Described.Encode(ByteBuffer buffer) at Amqp.Framing.Codec.Encode(RestrictedDescribed command, ByteBuffer buffer) at Amqp.Framing.Frame.Encode(ByteBuffer buffer, FrameType type, UInt16 channel, DescribedList command) at Amqp.Connection.SendCommand(UInt16 channel, DescribedList command) at Amqp.Session.SendCommand(DescribedList command) at Amqp.Link.SendAttach(Boolean role, UInt32 initialDeliveryCount, Attach attach) at Amqp.Listener.ListenerLink.CompleteAttach(Attach attach, Error error) at Amqp.Listener.ListenerLink.OnAttach(UInt32 remoteHandle, Attach attach) at Amqp.Listener.ListenerSession.OnAttach(Attach attach) at Amqp.Session.OnCommand(DescribedList command, ByteBuffer buffer) at Amqp.Connection.OnSessionCommand(UInt16 remoteChannel, DescribedList command, ByteBuffer buffer) at Amqp.Connection.OnFrame(ByteBuffer buffer) at Amqp.AsyncPump.PumpAsync(UInt32 maxFrameSize, Func`2 onHeader, Func`2 onBuffer) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs:line 1015 at Amqp.AsyncPump.PumpAsync(UInt32 maxFrameSize, Func`2 onHeader, Func`2 onBuffer) at Amqp.AsyncPump.StartAsync(Connection connection) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs:line 1015 at Amqp.AsyncPump.StartAsync(Connection connection) at Amqp.AsyncPump.Start(Connection connection) at Amqp.Listener.ConnectionListener.HandleTransportAsync(IAsyncTransport transport) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs:line 1015 at Amqp.Listener.ConnectionListener.HandleTransportAsync(IAsyncTransport transport) at Amqp.Listener.ConnectionListener.TcpTransportListener.HandleSocketAsync(Socket socket) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs:line 1015 at Amqp.Listener.ConnectionListener.TcpTransportListener.HandleSocketAsync(Socket socket) at Amqp.Listener.ConnectionListener.TcpTransportListener.AcceptAsync(Socket socket) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.ExecutionContextCallback(Object s) in /_/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs:line 580 at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/System.Private.CoreLib/shared/System/Threading/ExecutionContext.cs:line 172 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread) in /_/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs:line 617 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext() in /_/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs:line 595 at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining) in /_/src/System.Private.CoreLib/shared/System/Threading/Tasks/TaskContinuation.cs:line 794 at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) in /_/src/System.Private.CoreLib/shared/System/Threading/Tasks/Task.cs:line 3319 at System.Threading.Tasks.Task.FinishContinuations() in /_/src/System.Private.CoreLib/shared/System/Threading/Tasks/Task.cs:line 3293 at System.Threading.Tasks.Task`1.TrySetResult(TResult result) in /_/src/System.Private.CoreLib/shared/System/Threading/Tasks/Future.cs:line 419 at System.Threading.Tasks.TaskCompletionSource`1.TrySetResult(TResult result) in /_/src/System.Private.CoreLib/shared/System/Threading/Tasks/TaskCompletionSource.cs:line 271 at Amqp.SocketExtensions.Complete[T](Object sender, SocketAsyncEventArgs args, Boolean throwOnError, T result) at Amqp.Listener.ConnectionListener.TcpTransportListener.<>c.<AcceptAsync>b__6_0(Object s, SocketAsyncEventArgs a) at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.cs:line 204 at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object state) in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.cs:line 424 at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/System.Private.CoreLib/shared/System/Threading/ExecutionContext.cs:line 172 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/System.Private.CoreLib/shared/System/Threading/ExecutionContext.cs:line 132 at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncSuccess(Int32 bytesTransferred, SocketFlags flags) in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.cs:line 787 at System.Net.Sockets.SocketAsyncEventArgs.CompletionCallback(Int32 bytesTransferred, SocketFlags flags, SocketError socketError) in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Unix.cs:line 418 at System.Net.Sockets.SocketAsyncEventArgs.AcceptCompletionCallback(IntPtr acceptedFileDescriptor, Byte[] socketAddress, Int32 socketAddressSize, SocketError socketError) in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Unix.cs:line 60 at System.Net.Sockets.SocketAsyncContext.AcceptOperation.InvokeCallback(Boolean allowPooling) in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs:line 597 at System.Net.Sockets.SocketAsyncContext.OperationQueue`1.ProcessAsyncOperation(TOperation op) in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs:line 891 at System.Net.Sockets.SocketAsyncContext.ReadOperation.System.Threading.IThreadPoolWorkItem.Execute() in /_/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs:line 333 at System.Threading.ThreadPoolWorkQueue.Dispatch() in /_/src/System.Private.CoreLib/shared/System/Threading/ThreadPool.cs:line 677 at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() in /_/src/System.Private.CoreLib/src/System/Threading/ThreadPool.CoreCLR.cs:line 29 Aborted (core dumped)