Stackexchange.redis: NullReferenceException on IDatabase calls

Created on 17 Jun 2016  Â·  11Comments  Â·  Source: StackExchange/StackExchange.Redis

const string name = "xxxx";
const string key = "xxxx";
var connection = $"{name}.redis.cache.windows.net,abortConnect=false,ssl=true,password={key}";

var redisManager = ConnectionMultiplexer.Connect(connection);

var database = redisManager.GetDatabase();
database.StringSet("34", "343"); // Throws NullRefEx
var keyExists = database.KeyExists("xeer"); // Throws NullRefEx

Stacktrace:

System.NullReferenceException was unhandled by user code
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=StackExchange.Redis
  StackTrace:
       at StackExchange.Redis.ServerEndPoint.get_LastException() in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ServerEndPoint.cs:line 102
       at StackExchange.Redis.ExceptionFactory.GetServerSnapshotInnerExceptions(ServerEndPoint[] serverSnapshot) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ExceptionFactory.cs:line 99
       at StackExchange.Redis.ExceptionFactory.NoConnectionAvailable(Boolean includeDetail, RedisCommand command, Message message, ServerEndPoint server, ServerEndPoint[] serverSnapshot) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ExceptionFactory.cs:line 88
       at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 1944
       at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisBase.cs:line 81
       at StackExchange.Redis.RedisDatabase.StringSet(RedisKey key, RedisValue value, Nullable`1 expiry, When when, CommandFlags flags) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisDatabase.cs:line 1567

Am I am doing something wrong?

bug needs-info Azure

Most helpful comment

Hi,

I've had the same issue today. In my case I tried to connect to Redis after it's gone offline. I've created a pull request with the fix.

All 11 comments

Huh, that's odd. Any chance you have a .StackTrace from the exception?
On 17 Jun 2016 3:29 p.m., "Alex" [email protected] wrote:

const string name = "xxxx";
const string key = "xxxx";
var connection = $"{name}.redis.cache.windows.net,abortConnect=false,ssl=true,password={key}";

var redisManager = ConnectionMultiplexer.Connect(connection);

var database = redisManager.GetDatabase();
database.StringSet("34", "343"); // Throws NullRefEx
var keyExists = database.KeyExists("xeer"); // Throws NullRefEx

Am I am doing something wrong?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/StackExchange/StackExchange.Redis/issues/424, or mute
the thread
https://github.com/notifications/unsubscribe/AABDsNq2H_aEu7XfFewZsJBnrpnuQlqJks5qMq8-gaJpZM4I4acp
.

@mgravell I tried exactly the same code today and it is working now. So there was something wrong in Azure.

I think the "bug" is in the getter of ServerEndPoint.LastException.

tmp2.LastException.Data["Redis-FailureType"] can be null.

Hi,

I've had the same issue today. In my case I tried to connect to Redis after it's gone offline. I've created a pull request with the fix.

Can you please merge this pull request? We're getting the same error :)

i am also getting the same error . Can you plese provide the solution

We're also getting this error... Just in case here is the stack trace:

System.NullReferenceException: Object reference not set to an instance of an object. → StackExchange.Redis.ServerEndPoint.get_LastException() in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ServerEndPoint.cs:102 → StackExchange.Redis.ExceptionFactory.GetServerSnapshotInnerExceptions(ServerEndPoint[] serverSnapshot) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ExceptionFactory.cs:102 → StackExchange.Redis.ExceptionFactory.NoConnectionAvailable(Boolean includeDetail, RedisCommand command, Message message, ServerEndPoint server, ServerEndPoint[] serverSnapshot) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ExceptionFactory.cs:88 → StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor 1 processor, ServerEndPoint server) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:1944 → StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor 1 processor, ServerEndPoint server) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisBase.cs:81 → StackExchange.Redis.RedisDatabase.StringGet(RedisKey key, CommandFlags flags) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisDatabase.cs:1449

Is anyone else seeing this in current code, after the fix in #426 went in?

JFYI: we haven't seen this error for 6 months+, so I suppose it was fixed.

Hi, for your information, I just have got the same error without any specific reason :

Object reference not set to an instance of an object. -    at StackExchange.Redis.ServerEndPoint.get_LastException() in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ServerEndPoint.cs:line 104
   at StackExchange.Redis.ExceptionFactory.GetServerSnapshotInnerExceptions(ServerEndPoint[] serverSnapshot) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ExceptionFactory.cs:line 104
   at StackExchange.Redis.ExceptionFactory.NoConnectionAvailable(Boolean includeDetail, RedisCommand command, Message message, ServerEndPoint server, ServerEndPoint[] serverSnapshot) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ExceptionFactory.cs:line 89
   at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 1965
   at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisBase.cs:line 81
   at StackExchange.Redis.RedisDatabase.StringGet(RedisKey key, CommandFlags flags) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisDatabase.cs:line 1449

Nevermind, my StackExchange version is anterior to the fix #426.

Fixed in #426, closing out to cleanup.

Was this page helpful?
0 / 5 - 0 ratings