Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libc dependency while uplifting redis library from 6.2.12 to 6.2.13 #12580

Open
pavithra8j opened this issue Sep 14, 2023 · 6 comments
Open

libc dependency while uplifting redis library from 6.2.12 to 6.2.13 #12580

pavithra8j opened this issue Sep 14, 2023 · 6 comments

Comments

@pavithra8j
Copy link

pavithra8j commented Sep 14, 2023

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 ?

@pavithra8j
Copy link
Author

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

@sundb
Copy link
Collaborator

sundb commented Sep 15, 2023

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

@pavithra8j
Copy link
Author

@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

@sundb
Copy link
Collaborator

sundb commented Sep 16, 2023

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?

@pavithra8j
Copy link
Author

@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

@djassie
Copy link

djassie commented Sep 25, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants