Skip to content

Commit 3365ff6

Browse files
authored
Merge pull request #1158 from rabbitmq/rabbitmq-dotnet-client-1140-7.x
Merge pull request #1156 from rabbitmq/rabbitmq-dotnet-client-1140-6.x
2 parents 0f9b72b + 65556b8 commit 3365ff6

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

projects/RabbitMQ.Client/client/impl/AutorecoveringModel.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,12 @@ public void AutomaticallyRecover(AutorecoveringConnection conn)
409409
_connection = conn;
410410
RecoveryAwareModel defunctModel = _delegate;
411411

412+
/*
413+
* https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/1140
414+
* If this assignment is not done before recovering consumers, there is a good
415+
* chance that an invalid Model will be used to handle a basic.deliver frame,
416+
* with the resulting basic.ack never getting sent out.
417+
*/
412418
_delegate = conn.CreateNonRecoveringModel();
413419
_delegate.InheritOffsetFrom(defunctModel);
414420

@@ -419,7 +425,6 @@ public void AutomaticallyRecover(AutorecoveringConnection conn)
419425
RecoverBasicAckHandlers();
420426
RecoverBasicNackHandlers();
421427
RecoverCallbackExceptionHandlers();
422-
423428
RunRecoveryEventHandlers();
424429
}
425430

projects/Unit/Fixtures.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,7 @@ internal void StopRabbitMQ()
675675
internal void StartRabbitMQ()
676676
{
677677
ExecRabbitMQCtl("start_app");
678+
ExecRabbitMQCtl("await_startup");
678679
}
679680

680681
//

projects/Unit/TestConnectionRecovery.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ public void CleanUp()
7575
}
7676

7777
[Test]
78-
[Ignore("TODO flaky")]
7978
public void TestBasicAckAfterChannelRecovery()
8079
{
8180
var allMessagesSeenLatch = new ManualResetEventSlim(false);
@@ -98,7 +97,6 @@ public void TestBasicAckAfterChannelRecovery()
9897
}
9998

10099
[Test]
101-
[Ignore("TODO flaky")]
102100
public void TestBasicNackAfterChannelRecovery()
103101
{
104102
var allMessagesSeenLatch = new ManualResetEventSlim(false);
@@ -121,7 +119,6 @@ public void TestBasicNackAfterChannelRecovery()
121119
}
122120

123121
[Test]
124-
[Ignore("TODO flaky")]
125122
public void TestBasicRejectAfterChannelRecovery()
126123
{
127124
var allMessagesSeenLatch = new ManualResetEventSlim(false);

0 commit comments

Comments
 (0)