• Nick Craver's avatar
    Fix SentinelGetMasterAddressByName · e898ec45
    Nick Craver authored
    This is interesting, and may explain some other hangs. Previously, arr was null, and the .Length call in the MultiBulk case was throwing a null ref. This doesn't throw externally through, it just runs forever. While there's a timeout guard against this on the ExecuteSync path, there's not on ExecuteAsync. This is easy to reproduce for example add this at the top of the result processor:
    
    if (result.Type == ResultType.MultiBulk) throw new Exception("Woops");
    
    ...and we'll only see timeouts on sync and forever runs on async. I left this code in (commented) for an easy repro case.
    
    /cc @mgravell
    e898ec45
Name
Last commit
Last update
..
Booksleeve Loading commit data...
Helpers Loading commit data...
Issues Loading commit data...
AdhocTests.cs Loading commit data...
AsyncTests.cs Loading commit data...
BasicOps.cs Loading commit data...
BatchWrapperTests.cs Loading commit data...
Bits.cs Loading commit data...
Cluster.cs Loading commit data...
Commands.cs Loading commit data...
Config.cs Loading commit data...
ConnectByIP.cs Loading commit data...
ConnectFailTimeout.cs Loading commit data...
ConnectToUnexistingHost.cs Loading commit data...
ConnectingFailDetection.cs Loading commit data...
ConnectionFailedErrors.cs Loading commit data...
ConnectionReconnectRetryPolicyTests.cs Loading commit data...
ConnectionShutdown.cs Loading commit data...
DatabaseWrapperTests.cs Loading commit data...
Databases.cs Loading commit data...
DefaultPorts.cs Loading commit data...
ExceptionFactoryTests.cs Loading commit data...
Expiry.cs Loading commit data...
Failover.cs Loading commit data...
FloatingPoint.cs Loading commit data...
GeoTests.cs Loading commit data...
GlobalSuppressions.cs Loading commit data...
HyperLogLog.cs Loading commit data...
Keys.cs Loading commit data...
KeysAndValues.cs Loading commit data...
Lex.cs Loading commit data...
Lists.cs Loading commit data...
Locking.cs Loading commit data...
MassiveOps.cs Loading commit data...
Migrate.cs Loading commit data...
MultiAdd.cs Loading commit data...
MultiMaster.cs Loading commit data...
Naming.cs Loading commit data...
PreserveOrder.cs Loading commit data...
Profiling.cs Loading commit data...
PubSub.cs Loading commit data...
PubSubCommand.cs Loading commit data...
README.md Loading commit data...
RawResultTests.cs Loading commit data...
RealWorld.cs Loading commit data...
RedisValueEquivalency.cs Loading commit data...
SSDB.cs Loading commit data...
SSL.cs Loading commit data...
Scans.cs Loading commit data...
Scripting.cs Loading commit data...
Secure.cs Loading commit data...
Sentinel.cs Loading commit data...
Sets.cs Loading commit data...
StackExchange.Redis.Tests.csproj Loading commit data...
TaskTests.cs Loading commit data...
TestBase.cs Loading commit data...
TestInfoReplicationChecks.cs Loading commit data...
TransactionWrapperTests.cs Loading commit data...
Transactions.cs Loading commit data...
VPNTest.cs Loading commit data...
Values.cs Loading commit data...
WithKeyPrefixTests.cs Loading commit data...
WrapperBaseTests.cs Loading commit data...
xunit.runner.json Loading commit data...