I am using Oracle Linux 7, which is similar to redhat 7. In this, the default supported libc version is libc-2.17.so. With the above setup, when we install Redis 6.2.12 version, everything seems to be working properly. Recently, I have uplifted to Redis 6.2.13 and there is a direct dependency on libc library. It specifically requires libc-2.28.so instead of libc-2.17.so. However, in the previous version of Redis i.e 6.2.12, the libc used was libc-2.17.so.

NOTE : From what I understand, libc-2.28.so is generally available from linux 8 onwards. So, can someone please let me know if the dependency on libc-2.28.so is added intentionally for Redis 6.2.13? If not, how this dependency can be resolved ?

Comment From: pavithra8j

Hi Team, can you please help us with this issue. It is quite an urgent requirement for our project right now.

Comment From: sundb

Redis does not specify the minimum libc version, it depends on how the distribution is built. You can try the following methods to solve it: 1. Compile the Redis from source code 2. Use another libc-2.17 compatible distribution

Comment From: pavithra8j

@sundb Thanks for the response.

  1. We are building two versions of Redis (redis-6.2.12 and redis-6.2.13 ) from source code on a setup with Oracle Linux 7 and has libc-2.17.so.
  2. Yum repository provides libc-2.17.so by default for Linux 7.
  3. When we install our application which was compiled with redis-6.2.12, it gets installed successfully.
  4. However, when we install the application which was compiled with redis-6.2.13, we get the following error and installation fails. Error: Package: ocsm-5.0.0.8.0-101.x86_64 (/ocsm-5.0.0.8.0-101.x86_64) Requires: libc.so.6(GLIBC_2.28)(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

  5. Strangely, both the Redis versions (redis-6.2.12 and redis-6.2.13 ) were built on the same environment i.e Oracle Linux 7 which supports libc-2.17.so. But the error indicates that it required libc-2.28.so which is only supported from Oracle Linux 8 onwards.

Can you please give us some insights on this ?

Thanks Pavithra

Comment From: sundb

By comparing between 6.2.12 and 6.2.13 (https://github.com/redis/redis/pull/12400/files) I don't see any changes related to the dependency library. I have no way of knowing what the problem is, but have you tried compiling it on the failed server?

Comment From: pavithra8j

@sundb Yes, after building the redis 6.2.13, we included it in our application as a third party library and compiled the application.
The compilation was successful and after that we were able to build the final package as well i.e the rpm. We then used this package(rpm) to upgrade our application. During the upgrade procedure we are seeing this libc issue.

To check this, if we use a package which has redis 6.2.12, then the upgrade is successful.

Thanks Pavithra

Comment From: djassie

This is actually - the Vendor(Oracle Linux) problem, if you are facing any. None to do with Redis.

And - what groundbreaking feature you get upgrading redis version. Enterprises requires stable application.

I think when minor dependency issues, you better use whats available. However, adding the dependency and building - Redis is not so difficult. But it is another problem, to maintain the self-built project.