Description of problem: Since the update to glibc-2.3.6-2, automount fails. strace reports: [pid 10696] writev(2, [{"/usr/sbin/automount", 19}, {": ", 2}, {"relocation error", 16}, {": ", 2}, {"/lib/libresolv.so.2", 19}, {": ", 2}, {"symbol __res_iclose, version GLI"..., 97}, {"", 0}, {"", 0}, {"\n", 1}], 10) = 158 restarting autofs fixes the problem.
Have you restarted the daemon? Mixing some libraries from old and some libraries from new glibc obviously doesn't work. __res_iclose is certainly provided by the new glibc package: readelf -Ws /lib/libc.so.6 | grep res_iclose@; echo; readelf -Ws /lib/libresolv.so.2 | grep res_iclose@ 1685: 00bace24 244 FUNC GLOBAL DEFAULT 11 __res_iclose@@GLIBC_PRIVATE 129: 00000000 229 FUNC GLOBAL DEFAULT UND __res_iclose@GLIBC_PRIVATE (10) 325: 00000000 229 FUNC GLOBAL DEFAULT UND __res_iclose@@GLIBC_PRIVATE
> restarting autofs fixes the problem. But this was not done automatically, and in fact can be tricky to do if any mounts are in use, so this will be a problematic update.
Of course glibc upgrade doesn't want to reboot your box, that's admin's responsibility to decide if that's really needed and when to do that. You can just restart services that are needed. The only thing glibc does as part of its upgrade is to restart sshd (so that if you do a remote upgrade, you can still log in and fix things up) and init (so that the system can shut down or reboot cleanly). In your case, if you don't restart the daemon, it most likely has libc.so.6 already loaded, but in case the first DNS query from the app happens only after the upgrade, it will load new libresolv.so.2 and you end up with mixing two incompatible libs.
All I'm suggesting is a release note that this update will break autofs/automount (and ?) until restarted. I suppose this is possible with any glibc update, but certainly doesn't happen with every one of them so folks might forget.
Confirmed that glibc-2.3.6-3 provides a smooth upgrade. Thanks!