RedisModulesSDK icon indicating copy to clipboard operation
RedisModulesSDK copied to clipboard

undefined symbol: RedisModule_ReplySetArrayLength

Open LevitatingBusinessMan opened this issue 4 years ago • 6 comments

450850:M 23 Sep 2020 22:14:20.938 # Module ./module.so failed to load: ./module.so: undefined symbol: RedisModule_ReplySetArrayLength

Since commit 7028f206c9bd2438a27eb61b2339dffd43d1f929 I have been getting this error with newly compiled modules on both redis 5 and 6.

When going back to an older version of redismodule.h I can build for redis 5 again.

LevitatingBusinessMan avatar Sep 23 '20 20:09 LevitatingBusinessMan

Any progress here ? I'm getting the same error

Tried commenting all the function definitions that I don't use in the include file and it gives me the same error on a function I use.

Clement-Jean avatar Jul 06 '21 13:07 Clement-Jean

I found a solution! SDK/redismodule.h replaced with redis/src/redismodule.h

www008 avatar Jan 10 '22 14:01 www008

Any updates on this issue? Could not resolve it with @www008 solution

dchukmasov avatar Jan 28 '22 11:01 dchukmasov

The header in the 6.2 folder seems outdated, the header to /redis-6.2.6/src/redismodule.h indeed works

mortensi avatar Mar 03 '22 09:03 mortensi

Any updates on this issue? Could not resolve it with @www008 solution

@dchukmasov You need to copy the redismodule.h file from the src file of the Redis server you're running into the root folder of your clone of this repository. That's what www008 wrote, just in more detail. Is that what you tried? I had the same issue with Redis 6.2.6 (the latest stable version at the time of writing) and this solved it. Make sure that the Redis version you're running is the one from which you take this file (redis-server shows its version when it starts).

As for an actual fix, that would be to update the file in this repo. I also believe that whichever file is at the repo root should also be in its own folder specifying the version it corresponds to, and that the README.md file should be modified to specify that when you build it, you should use the one in the folder that matches the Redis version you're running. I'd put that as a note in the Quick Start Guide section at the end, and it might also be a good idea to add another small "Troubleshooting" section that says the same thing.

TomerGodinger avatar Mar 03 '22 10:03 TomerGodinger

SOLUTION:

  1. Go to Redis repo: https://github.com/redis/redis
  2. Choose the branch corresponding to redis version you have e.g. currently 7.0
  3. Use the "redismodule.h" file in /src folder

AachoLoya avatar Nov 07 '22 11:11 AachoLoya