NHibernate.Caches.Redis
NHibernate.Caches.Redis copied to clipboard
Lua script attempted to access a non local key in a cluster node
Hi,
I am having issues getting keys from a cluster node. The below is the exception i am getting.
Any ideas ???
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> NHibernate.Caches.Redis.RedisCacheException: Failed to get item from cache. See inner exception. ---> StackExchange.Redis.RedisServerException: ERR Error running script (call to f_cc7714ec6575efa50255574fa61586c11611ab0e): @user_script:2: @user_script: 2: Lua script attempted to access a non local key in a cluster node
at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor1 processor, ServerEndPoint server) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 2052 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.ScriptEvaluate(String script, RedisKey[] keys, RedisValue[] values, CommandFlags flags) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisDatabase.cs:line 891
at StackExchange.Redis.RedisDatabase.ScriptEvaluate(LuaScript script, Object parameters, CommandFlags flags) in C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisDatabase.cs:line 902
at NHibernate.Caches.Redis.RedisCache.Get(Object key)
--- End of inner exception stack trace ---
at NHibernate.Caches.Redis.RedisCache.Get(Object key)
at NHibernate.Cache.ReadOnlyCache.Get(CacheKey key, Int64 timestamp)
at NHibernate.Event.Default.DefaultLoadEventListener.LoadFromSecondLevelCache(LoadEvent event, IEntityPersister persister, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.ImmediateLoad(String entityName, Object id)
at NHibernate.Proxy.AbstractLazyInitializer.Initialize()
at NHibernate.Proxy.DefaultLazyInitializer.Intercept(InvocationInfo info)
at ApplicationInstanceProxy.get_Hierarchy()
at Tio.Web.Express.InstanceSetup.SetDataTokensForInstance(String instanceName, ApplicationInstance instance) in D:\dev\Web\Tio.Web.Express\Tio.Web.Express\App_Start\InstanceSetup.cs:line 96
at Tio.Web.Express.InstanceSetup.Initialize() in D:\dev\Web\Tio.Web.Express\Tio.Web.Express\App_Start\InstanceSetup.cs:line 75
at Tio.Web.Express.InstanceSetup.Configure() in D:\dev\Web\Tio.Web.Express\Tio.Web.Express\App_Start\InstanceSetup.cs:line 33
at Tio.Web.Express.MvcApplication.Application_BeginRequest() in D:\dev\Web\Tio.Web.Express\Tio.Web.Express\Global.asax.cs:line 70
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at System.Web.Util.ArglessEventHandlerProxy.Callback(Object sender, EventArgs e)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
@imrancharania81 Hmm, I think it might be related to this StackExchange.Redis issue, so we might need to change how we evaluate the scripts. Can you confirm this? I don't use Redis in a clustered environment. Can you provide a sample of your setup?