1. 27 Mar, 2020 1 commit
  2. 25 Mar, 2020 1 commit
  3. 23 Mar, 2020 9 commits
    • Nick Craver's avatar
      Move Issue922_ReconnectRaised to DEBUG · c3bc13d7
      Nick Craver authored
      c3bc13d7
    • Nick Craver's avatar
      FirstOrDefault love for Sentinel · 63bbcded
      Nick Craver authored
      63bbcded
    • Nick Craver's avatar
      Tweak versioning · 531ffa42
      Nick Craver authored
      531ffa42
    • mgravell's avatar
      fix plinq glitch · 1dcf55e1
      mgravell authored
      1dcf55e1
    • Nick Craver's avatar
      Sentinel: Several break fixes (#1402) · 49f24a2c
      Nick Craver authored
      * fix naming of SentinelGetSentinelAddressesAsync
      
      * tyop
      
      * Sentinel: don't use async over sync with .Result
      Co-authored-by: 's avatarmgravell <marc.gravell@gmail.com>
      49f24a2c
    • Nick Craver's avatar
      Fix null ref in Sentinel · 46be338b
      Nick Craver authored
      46be338b
    • Nick Craver's avatar
      Better Connection Counts & Error Messages (#1397) · a01cd041
      Nick Craver authored
      * ConnectionMultiplexer: track global counts for deebugging
      
      * Build dammit
      
      * Move to per-multiplexer/add tests
      
      Note: I know mutiplexer isn't spelled right - will fix that in a follow-up to avoid noise.
      
      * Fix test key names
      
      Broken since the 2.1 bump, oops
      
      * Simplify the NoConnectionAvailable static
      
      Simpifies usage for all callers. Also shares code and adds diagnostics to the "no connection" case.
      
      * Add tests for NoConnectionException
      
      * Failover: fix tests and debug some
      
      SubscriptionsSurviveMasterSwitchAsync is a thorn in our side - moving to DEBUG.
      
      * Remove bad check
      
      Inner is irrelevant here - can be not-null depending on the connection race.
      
      * Update message and add more tests!
      
      * Bump pipelines to 2.1.6
      a01cd041
    • Nick Craver's avatar
      Message clarification for #1287 (#1396) · 2ab9b375
      Nick Craver authored
      Old message:
      > To create a disconnected multiplexer, disable AbortOnConnectFail.
      
      New message proposal:
      > Error connecting right now. To allow this multiplexer to continue retrying until it's able to connect, use abortConnect=false in your connection string or AbortOnConnectFail=false; in your code.
      2ab9b375
    • Nick Craver's avatar
      Fix up boadcasts, tests, and logging across the board (#1400) · b90f991d
      Nick Craver authored
      This changes does the following:
      - Moves the broadcast to be only before the master reconfiguration to both before *and* after - a fix following https://github.com/StackExchange/StackExchange.Redis/commit/88dcf0c989b25623fb8ffb1f4d48c24593246cfe to fix the gap.
      - Tweaks tests by overall lessening runtime (and thus build server time). Overall, fixes a few static timeouts to be conditional (so they short circuit faster if met), and brings some tests that were some variant of the above into RELEASE since they're safe now.
      - Changes `UntilCondition` to take a `TimeSpan`, just because clearer. Even though I IntelliSense completed `.FromMinutes()` earlier and watched it like an idiot for a while...I stand by this decision!
      - Locks the `ITestOutputHelper` writer because...that was jacked up in races:
      
      ![off to the races](https://user-images.githubusercontent.com/454813/77232395-2f799980-6b77-11ea-8fb4-0398de25e313.png)
      
      ------
      
      Note: a lot of the test changes are just optimizations to delays which allow longer but short-circuit sooner. The important changes are in broadcast and locking around the test runner. I can think of downsides to neither, but want some @mgravell eyes. This should resolve a lot of flaky-ness with local (and build agent) tests. Not all of it, but a lot of it!
      b90f991d
  4. 21 Mar, 2020 1 commit
  5. 19 Mar, 2020 1 commit
  6. 18 Mar, 2020 7 commits
    • Shadi Massalha's avatar
      Sentinel Support Derived from pr-692 (#1067) · b2db13fc
      Shadi Massalha authored
      This PR is derived from PR-692 and have been merged with the latest master commit.
      Things that have been done:
      1. review code for PR-692
      2. fixed potential infinite loop in the code
      3. Adapt code to success build with the latest master commit
      4. Manual testing on 3 Sentinel nodes and 3 Redis nodes (connection and failover)
      
      Usage:
      ```C#
                      ConfigurationOptions sentinelConfig = new ConfigurationOptions();
                      sentinelConfig.ServiceName = "mymaster";
                      sentinelConfig.EndPoints.Add("192.168.99.102", 26379);
                      sentinelConfig.EndPoints.Add("192.168.99.102", 26380);
                      sentinelConfig.EndPoints.Add("192.168.99.102", 26381);
                      sentinelConfig.TieBreaker = "";
                      sentinelConfig.DefaultVersion = new Version(4, 0, 11);                 
                      // its important to set the Sentinel commands supported
                      sentinelConfig.CommandMap = CommandMap.Sentinel;
      
                      // Get sentinel connection
                      ConnectionMultiplexer sentinelConnection = ConnectionMultiplexer.Connect(sentinelConfig, Console.Out);
                      // Create master service configuration
                      ConfigurationOptions masterConfig = new ConfigurationOptions { ServiceName = "mymaster" };
                      // Get master Redis connection
                      var redisMasterConnection = sentinelConnection.GetSentinelMasterConnection(masterConfig);
      
                      ...
                     IDatabase db = redisMasterConnection.GetDatabase();                
                     db.StringSet(key, value);
                     ...
                     string value1 = db.StringGet(key);
      
      ```
      b2db13fc
    • Marc Gravell's avatar
      fix error with DNS resolution breaking endpoint iterator (#1393) · 748f1fa7
      Marc Gravell authored
      * re-implement GetEnumerator in EndPointCollection to be a bit more forgiving to concurrent changes during iteration
      
      * poke release notes
      748f1fa7
    • mgravell's avatar
      more release notes for 2.1.0 · 3f0c2b81
      mgravell authored
      3f0c2b81
    • hamish-omny's avatar
      Ensure that _activeMessage is always cleared, including if an exception is... · 58e8d63e
      hamish-omny authored
      Ensure that _activeMessage is always cleared, including if an exception is thrown while trying to send the message or flush the connection. Leaving _activeMessage set causes WriteMessageInsideLock to always return a "NoConnectionAvailable" error indefinitely (#1374)
      Co-authored-by: 's avatarNick Craver <craver@stackoverflow.com>
      58e8d63e
    • Gunnar Liljas's avatar
    • Nick Craver's avatar
      Add F# compatibility enhancements for #831 (#1386) · 659d5149
      Nick Craver authored
      Asked for in #831 and low overhead so why not! I didn't do `RedisChannel` since it already has a constructor available. Tests added to ensure these are used in a way we don't break them.
      659d5149
    • Marc Gravell's avatar
      eef7b8d6
  7. 17 Mar, 2020 2 commits
  8. 15 Mar, 2020 2 commits
    • Nick Craver's avatar
      Remove Unspecified/ from errors and test tweaks (#1385) · afc4ec1f
      Nick Craver authored
      In going through issues, I see many users confused by `Unspecified/` and it really serves no purpose. Let's get a quick win (and add a test for it).
      
      Also, WSL2 it appears has clock jitter - we can accommodate that while having a valid test, fixing that local case.
      afc4ec1f
    • Nick Craver's avatar
      Add test for #1183 (#1384) · f4a3d964
      Nick Craver authored
      Clarifies how IPv6 needs to be expressed in example usage.
      f4a3d964
  9. 14 Mar, 2020 7 commits
    • Nick Craver's avatar
      Add test to illustrate #1133 · c7cb6df9
      Nick Craver authored
      c7cb6df9
    • Nick Craver's avatar
      Add release notes and tag for v2.0.601 · 32c8667a
      Nick Craver authored
      32c8667a
    • Nick Craver's avatar
      Move ExecCompletes_Issue943 to long running · d0f7abf1
      Nick Craver authored
      This is 2 of the 6 minutes of test CPU time locally....don't need to hang on this so much.
      d0f7abf1
    • Nick Craver's avatar
      Fix naming of _activeMessage · 5a36dc7a
      Nick Craver authored
      Tidying this up so the diff/fix in #1374 is easier to analyze.
      5a36dc7a
    • Nick Craver's avatar
      Set the field instead of the property · 08bc1fb6
      Nick Craver authored
      Since logic exists in the getter, we need to set the field across for actual quality.  The `Issue883_Exhaustive` test illustrates the difference in the comparison (currently failing).
      08bc1fb6
    • Björn Lundström's avatar
    • Nick Craver's avatar
      NRediSearch Test Suite Fixes (#1383) · 084c9c18
      Nick Craver authored
      ### NRediSearch
      - Updated module so we're testing the right thing
      - More output in the logging path for diagnosing issues
      - Remove all the `FLUSHDB` calls masking issues
      - Handle duplicate documents in latest module
      
      Note: **locally** (on WSL 2), this fixes some issues and introduces stability but *does not* fix 2 scoring issues. Suggestions are coming back with scores > 1.0, which by the documentation is not supposed to happen...so I'm not sure what should be happening here. Here's the local WSL fail:
      ```
       NRediSearch.Test.ClientTests.ClientTest.TestGetSuggestionWithScore:
        Message: 
          StackExchange.Redis.RedisCommandException : Missing required fields:  score not within range: 2.11660146713257
        Stack Trace: 
          SuggestionBuilder.Build() line 99
          Client.GetSuggestionsWithPayloadAndScores(RedisResult[] results) line 1271
          Client.GetSuggestions(String prefix, SuggestionOptions options) line 796
          ClientTest.TestGetSuggestionWithScore() line 701
      ```
      ```
      NRediSearch.Test.ClientTests.ClientTest.TestAddSuggestionGetSuggestionPayloadScores:
        Message: 
          StackExchange.Redis.RedisCommandException : Missing required fields:  score not within range: 2.71068739891052
        Stack Trace: 
          SuggestionBuilder.Build() line 99
          Client.GetSuggestionsWithPayloadAndScores(RedisResult[] results) line 1271
          Client.GetSuggestions(String prefix, SuggestionOptions options) line 796
          ClientTest.TestAddSuggestionGetSuggestionPayloadScores() line 642
      ```
      
      However, the current fixes tidy up the CI pipeline so I recommend merging this as-is, then I'll keep following up with various local errors and I'm looking at some Docker test options as alternatives to WSL2 so that people can run either.
      084c9c18
  10. 13 Mar, 2020 1 commit
  11. 28 Feb, 2020 1 commit
  12. 27 Feb, 2020 4 commits
  13. 26 Feb, 2020 2 commits
  14. 14 Feb, 2020 1 commit