Bug 657523
| Summary: | .NET example clients does not exit cleanly (warning Ignoring frame while closing connection) | ||
|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Frantisek Reznicek <freznice> |
| Component: | qpid-sdk | Assignee: | Chuck Rolke <crolke> |
| Status: | CLOSED ERRATA | QA Contact: | Petra Svobodová <psvobodo> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | Development | CC: | esammons, gsim, iboverma, jneedle, tross |
| Target Milestone: | 2.0 | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Windows | ||
| Whiteboard: | |||
| Fixed In Version: | 1.3.8.1 | Doc Type: | Bug Fix |
| Doc Text: |
Cause: Spout program sent messages but did not wait for the sending to complete before closing session.
Consequence: Sometimes not all the messages processed by Spout's sender.Send() are received by the session receiver.
Fix: Call function session.Sync() before closing the session.
Result: Receiver receives all messages sent.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2011-06-23 15:47:01 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Just an update the qpid .NET kit qpid-cpp-winsdk-1.3.0.24-*.zip still suffers from the above issue. Spout.cs is missing a line "session.Sync();" between when the transmission blast is done and the connection is closed. Fixed in r1040778. I can confirm that session.Sync() call fixes the issue. The r1040778 fixes just spout example, but there are couple of other sender examples which has to be changed as well. csharp.map.sender.cs:128 csharp.map.callback.sender.cs:160 csharp.example.server.cs:47 csharp.example.client.cs:57 csharp.direct.sender.cs:66 r1041141 adds the session.Sync() calls.
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
New Contents:
Cause: Spout program sent messages but did not wait for the sending to complete before closing session.
Consequence: Sometimes not all the messages processed by Spout's sender.Send() are received by the session receiver.
Fix: Call function session.Sync() before closing the session.
Result: Receiver receives all messages sent.
The session.Sync() statements were added, defect does not repeat any more (tested packages: qpid-cpp-*-2.0.0.4) --> VERIFIED An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHEA-2011-0890.html |
Description of problem: .NET examples (for instance csharp.example.spout) does not exit cleanly. Above mentioned csharp.example.spout very frequently exit with one or more following warning[s]: 2010-11-26 11:30:31 warning Ignoring frame while closing connection: Frame[BEbe; channel=1; {SessionDetachedBody: name=; code=3; }] On the broker side there is seen following error: 2010-11-26 05:31:38 debug Exception constructed: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) 2010-11-26 05:31:38 error Channel exception: not-attached: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) The c++ spout example does not suffer from the issue, so it seems to be .NET client library specific problem. Tested primarily on Win xp x64 <-> RHEL4 i386. Version-Release number of selected component (if applicable): qpid-cpp-winsdk-1.3.0.18.2-*.zip How reproducible: 80% (more rapidly on durable addresses) Steps to Reproduce: 1. extract winsdk 2. compile c++ / .NET examples 3. issue the command from Additional info section and check broker log Actual results: .NET client does not exit cleanly Expected results: .NET client should exit cleanly Additional info: Client side: ~~~~~~~~~~~~ \qpid\bin\csharp.example.spout --broker mrg-qe-07.lab.eng.brq.redhat.com:5672\ --content "Hi!fgkfddfsd" --count 80 \ "xyzz; {create:sender, delete: receiver, node: {durable:True}}" 2010-11-26 11:30:31 warning Ignoring frame while closing connection: Frame[BEbe; channel=1; {SessionDetachedBody: name=; code=3; }] 2010-11-26 11:30:31 warning Ignoring frame while closing connection: Frame[BEbe; channel=1; {SessionDetachedBody: name=; code=3; }] 2010-11-26 11:30:31 warning Ignoring frame while closing connection: Frame[BEbe; channel=1; {SessionDetachedBody: name=; code=3; }] broker side (rhel4 i386): ~~~~~~~~~~~~~~~~~~~~~~~~~ 2010-11-26 05:31:37 debug RECV [10.34.27.200:1942] INIT(0-10) 2010-11-26 05:31:37 debug SASL: No Authentication Performed 2010-11-26 05:31:37 debug SessionState::SessionState .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: 0x8a485e8 2010-11-26 05:31:37 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: attached on broker. 2010-11-26 05:31:37 debug Attached channel 1 to .9a860ba1-5d32-4c90-98a7-a13ca5af5c15 2010-11-26 05:31:37 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: ready to send, activating output. 2010-11-26 05:31:37 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: receiver command-point set to: (0+0) 2010-11-26 05:31:37 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: receiver marked completed: 0 incomplete: { } unknown-completed: { [0,0] } 2010-11-26 05:31:37 debug Exception constructed: Exchange not found: xyzz (qpid/broker/ExchangeRegistry.cpp:92) 2010-11-26 05:31:37 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: receiver marked completed: 1 incomplete: { } unknown-completed: { [0,1] } 2010-11-26 05:31:37 notice Journal "xyzz": Created 2010-11-26 05:31:37 debug Journal "xyzz": Journal directory = "/tmp/dd/rhm/jrnl/0012/xyzz/"; Base file name = "JournalData" 2010-11-26 05:31:37 debug Journal "xyzz": Initialize; num_jfiles=8 jfsize_sblks=3072 wcache_pgsize_sblks=64 wcache_num_pages=32 2010-11-26 05:31:37 debug Journal "xyzz": Initialization complete 2010-11-26 05:31:37 info Queue "xyzz": Policy created: type=reject; maxCount=0; maxSize=104857600 2010-11-26 05:31:37 debug Configured queue xyzz with no-local=0 2010-11-26 05:31:37 debug Configured queue xyzz with qpid.trace.id='' and qpid.trace.exclude='' i.e. 0 elements 2010-11-26 05:31:37 debug Bind key [xyzz] to queue xyzz (origin=) 2010-11-26 05:31:37 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: receiver marked completed: 2 incomplete: { } unknown-completed: { [0,2] } 2010-11-26 05:31:37 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: receiver marked completed: 3 incomplete: { } unknown-completed: { [0,3] } ... 2010-11-26 05:31:38 debug Message 0x8a65660 enqueued on xyzz 2010-11-26 05:31:38 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: receiver marked completed: 83 incomplete: { } unknown-completed: { [42,83] } 2010-11-26 05:31:38 debug .9a860ba1-5d32-4c90-98a7-a13ca5af5c15: detached on broker. 2010-11-26 05:31:38 debug Exception constructed: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) 2010-11-26 05:31:38 error Channel exception: not-attached: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) 2010-11-26 05:31:38 debug Exception constructed: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) 2010-11-26 05:31:38 error Channel exception: not-attached: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) 2010-11-26 05:31:38 debug Exception constructed: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) 2010-11-26 05:31:38 error Channel exception: not-attached: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:39) 2010-11-26 05:31:42 debug periodic update management snapshot: packages: 2 objects: 15 new objects: 0