Skip to content

Commit 67c5482

Browse files
committed
Fix for a couple of failure scenarios
1 parent 95e0115 commit 67c5482

6 files changed

Lines changed: 26 additions & 141 deletions

File tree

CondenserDotNet.sln

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Release Notes", "Release No
8383
releasenotes\4.1.1.props = releasenotes\4.1.1.props
8484
releasenotes\4.1.10.props = releasenotes\4.1.10.props
8585
releasenotes\4.1.11.props = releasenotes\4.1.11.props
86+
releasenotes\4.1.12.props = releasenotes\4.1.12.props
8687
releasenotes\4.1.13.props = releasenotes\4.1.13.props
8788
releasenotes\4.1.3.props = releasenotes\4.1.3.props
8889
releasenotes\4.1.4.props = releasenotes\4.1.4.props
8990
releasenotes\4.1.9.props = releasenotes\4.1.9.props
91+
releasenotes\5.0.0.props = releasenotes\5.0.0.props
92+
releasenotes\5.1.0.props = releasenotes\5.1.0.props
93+
releasenotes\5.2.0.props = releasenotes\5.2.0.props
94+
releasenotes\5.2.1.props = releasenotes\5.2.1.props
9095
EndProjectSection
9196
EndProject
9297
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CondenserDotNet.Middleware", "src\CondenserDotNet.Middleware\CondenserDotNet.Middleware.csproj", "{5DC8FA9E-4CB9-4F80-8AA9-7F4ABF8375B3}"

releasenotes/5.2.1.props

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<Project>
2+
<PropertyGroup>
3+
<PackageReleaseNotes>
4+
* Added refresh session when leadership has 3 failures
5+
* Reset Consul Index on service lookup when there is a failure
6+
</PackageReleaseNotes>
7+
</PropertyGroup>
8+
</Project>

src/CondenserDotNet.Client/Leadership/LeaderWatcher.cs

Lines changed: 0 additions & 137 deletions
This file was deleted.

src/CondenserDotNet.Client/Leadership/LeaderWatcherNew.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class LeaderWatcher : ILeaderWatcher
2222
private IServiceManager _serviceManager;
2323
private string _keyToWatch;
2424
private AsyncManualResetEvent<InformationService> _currentInfoService = new AsyncManualResetEvent<InformationService>();
25-
25+
2626
public LeaderWatcher(IServiceManager serviceManager, string keyToWatch)
2727
{
2828
_currentInfoService.Reset();
@@ -78,17 +78,25 @@ private StringContent GetServiceInformation() => HttpUtils.GetStringContent(new
7878
private async Task KeepLeadershipLoop()
7979
{
8080
var sessionId = await _sessionIdTask.ConfigureAwait(false);
81+
var errorCount = 0;
8182
while (true)
8283
{
8384
var leaderResult = await _serviceManager.Client.PutAsync($"{KeyPath}{_keyToWatch}?acquire={sessionId}", GetServiceInformation()).ConfigureAwait(false);
8485
if (!leaderResult.IsSuccessStatusCode)
8586
{
87+
errorCount++;
8688
//error so we need to get a new session
8789
await Task.Delay(500).ConfigureAwait(false);
90+
if (errorCount > 3)
91+
{
92+
_sessionIdTask = GetSession();
93+
sessionId = await _sessionIdTask.ConfigureAwait(false);
94+
errorCount = 0;
95+
}
8896
continue;
8997
}
9098
var areWeLeader = bool.Parse(await leaderResult.Content.ReadAsStringAsync().ConfigureAwait(false));
91-
if(areWeLeader)
99+
if (areWeLeader)
92100
{
93101
_electedLeaderEvent.Set(true);
94102
}
@@ -102,7 +110,7 @@ private async Task KeepLeadershipLoop()
102110

103111
private async Task WaitForLeadershipChange()
104112
{
105-
while(true)
113+
while (true)
106114
{
107115
using (var leaderResult = await _serviceManager.Client.GetAsync($"{KeyPath}{_keyToWatch}?index={_consulIndex}").ConfigureAwait(false))
108116
{

src/CondenserDotNet.Client/Services/ServiceWatcher.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ private async Task WatcherLoop(HttpClient client)
9797
{
9898
_state = WatcherState.UsingCachedValues;
9999
}
100+
consulIndex = "0";
100101
await Task.Delay(1000).ConfigureAwait(false);
101102
continue;
102103
}

version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<VersionPrefix>5.2.0</VersionPrefix>
3+
<VersionPrefix>5.2.1</VersionPrefix>
44
<VersionSuffix>beta</VersionSuffix>
55
</PropertyGroup>
66
</Project>

0 commit comments

Comments
 (0)