Skip to content

Redis: RedisScript (LuaScript) execution error - CultureInfo problem #162

Closed

Description

@bsr-ky

There is a CultureInfo problem when executing RedisScript (LuaScript). For CulturerInfo "tr-TR", a parameter named "@lockid" cannot be found in script text when disposing lock.

Reason:
The cause of issue is culture dependent regex named as ParameterExtractor at StackExchange.Redis. The issue (StackExchange/StackExchange.Redis#2350) is fixed at version 2.6.96 (https://stackexchange.github.io/StackExchange.Redis/ReleaseNotes).

Solution:
Version of StackExchange.Redis should be upgraded from 2.2.4 to 2.6.96.

Error Stack Trace:

System.ArgumentException: ps (Parameter 'Expected [lock] to be a field or gettable property on [<>f__AnonymousType02[[StackExchange.Redis.RedisKey, StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46],[StackExchange.Redis.RedisValue, StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46]]]') at StackExchange.Redis.LuaScript.ExtractParameters(Object ps, Nullable1 keyPrefix, RedisKey[]& keys, RedisValue[]& args) in //src/StackExchange.Redis/LuaScript.cs:line 117
at StackExchange.Redis.LuaScript.Evaluate(IDatabase db, Object ps, Nullable1 withKeyPrefix, CommandFlags flags) in /_/src/StackExchange.Redis/LuaScript.cs:line 148 at StackExchange.Redis.RedisDatabase.ScriptEvaluate(LuaScript script, Object parameters, CommandFlags flags) in /_/src/StackExchange.Redis/RedisDatabase.cs:line 1223 at Medallion.Threading.Redis.Primitives.RedisScript1.Execute(IDatabase database, TArgument argument, Boolean fireAndForget) in /
/DistributedLock.Redis/Primitives/RedisScript.cs:line 25
at Medallion.Threading.Redis.Primitives.RedisMutexPrimitive.Release(IDatabase database, Boolean fireAndForget) in //DistributedLock.Redis/Primitives/RedisMutexPrimitive.cs:line 35
at Medallion.Threading.Redis.RedLock.RedLockRelease.ReleaseAsync() in /
/DistributedLock.Redis/RedLock/RedLockRelease.cs:line 68
--- End of inner exception stack trace ---
at Medallion.Threading.Redis.RedLock.RedLockRelease.ReleaseAsync() in //DistributedLock.Redis/RedLock/RedLockRelease.cs:line 78
at Medallion.Threading.Redis.RedLock.RedLockHandle.DisposeAsync() in /
/DistributedLock.Redis/RedLock/RedLockHandle.cs:line 52
at Medallion.Threading.Internal.SyncViaAsync.<>c__3`1.<b__3_0>d.MoveNext() in /_/DistributedLock.Core/Internal/SyncViaAsync.cs:line 35

Activity

  1. madelson commented on Mar 1, 2023

    @madelson
    Owner

    Thanks for reporting @bsr-ky ! I will include the upgraded version in the next release.

    In the meantime, can you confirm that you can resolve this issue by adding a PackageReference to the higher version in your project?

  2. modified the milestone: 2.3.2 on Mar 1, 2023
  3. bsr-ky commented on Mar 1, 2023

    @bsr-ky
    Author

    Yes, I can confirm. I wrote a simple unit test for validation but could not push to a remote branch in this repository because of permission error.

  4. madelson commented on Jul 12, 2023

    @madelson
    Owner

    I wrote a simple unit test for validation but could not push to a remote branch in this repository because of permission error.

    To make a PR, you should be able to fork this repo, push the change to a branch in your fork, and then make a PR back to my repo. I'd love to take a look at it.

  5. madelson commented on Jul 17, 2023

    @madelson
    Owner

    I tried updating to both this version and the latest version (2.6.122); I'm seeing some test failures. I'll need to investigate further.

  6. jrgcubano commented on Sep 1, 2023

    @jrgcubano

    Hello @madelson. Any news in this regard? Thanks in advance!

  7. madelson commented on Sep 1, 2023

    @madelson
    Owner

    @jrgcubano is the workaround of just upgrading stackexchange.redis yourself not working for you?

    I do intend to get to this, but haven’t had time recently. My impression is that no one is blocked and so this is more of an inconvenience.

  8. jrgcubano commented on Sep 8, 2023

    @jrgcubano

    @madelson Sorry for the delay in answering.

    I interpreted the issue incorrectly. Everything works perfectly and the upgrade too.

    Thanks a lot for this library.

  9. added a commit that references this issue on Oct 2, 2023
    0094aa1
  10. added this to the 2.4 milestone on Feb 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency fileredis

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions