Bug 441429
| Summary: | gethostid fails when linked against libbind | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 5 | Reporter: | Anthony Harris <anthony> | ||||
| Component: | bind | Assignee: | Adam Tkac <atkac> | ||||
| Status: | CLOSED WONTFIX | QA Contact: | |||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | low | ||||||
| Version: | 5.1 | CC: | ovasik, sghosh, sputhenp | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2010-03-30 11:48:25 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
Anthony Harris
2008-04-08 01:54:37 UTC
Created attachment 301589 [details]
bash shell script to reproduce fault
That's not surprising when libbind overrides many glibc symbols, a lot of them incompatibly. NSS modules glibc loads (gethostid queries hostname) then bind to incompatible symbols. Either libbind needs to use some bind specific prefix for all symbols it exports (and tweak headers to redirect its symbols), or it simply must not be used in any program that ever uses NSS. Will you be following this bug up either internally or with ISC? Also, is there any workaround you can propose? The software must use libbind (dynamic DNS updates) and also must use nss (hostname resolution for database connection). Regards, Anthony This is pretty bad problem. I think ISC and glibc upstreams have to negotiate who will use that symbols and who not. I guess there is big flamewar ahead and ISC will never modify their libbind because as far as I know glibc's libresolv is modified ISC's libbind. Also I'm not sure about fix for rhel. It is impossible modify library symbols because it breaks ABI compatibility. I think best way how solve this is link software statically against libbind.a and dynamically against other libraries. (In reply to comment #4) > This is pretty bad problem. I think ISC and glibc upstreams have to negotiate > who will use that symbols and who not. I guess there is big flamewar ahead and > ISC will never modify their libbind because as far as I know glibc's libresolv > is modified ISC's libbind. Also I'm not sure about fix for rhel. It is > impossible modify library symbols because it breaks ABI compatibility. I think > best way how solve this is link software statically against libbind.a and > dynamically against other libraries. But surely this problem is actually just a problem with the 64bit build, perhapse an incorrect compile flag in the rpm or something, or some other subtle bug. The 32bit version of the packages work fine (ie RHEL5 32bit x86 the same code works no problems, why is their no symbol errors their?, it is only the 64bit x86_64 version that doesnt) (In reply to comment #4) > I think > best way how solve this is link software statically against libbind.a and > dynamically against other libraries. That is not an option. There were security problems with libbind already in past, and in case we would link anything statically if could cause us big trouble. This issue will be never fixed. Main problem is that glibc's libresolv and ISC's libbind libraries define same symbols. None of those libraries can be changed because of their long tradition and ABI stability. You cannot expect predictable behaviour when executable is linked against two libraries with same symbols. I recommend you to change your program to use only one of them (even if that means you will have to copy & paste parts of libbind library). Or you might try to use dlopen/dlsym/dlclose to get needed functions from libbind library, in my opinion it will work. |