+++ This bug was initially created as a clone of Bug #222177 +++ When a ruby script running as root changes euid/egid, the results of File::writable?(f) and File::stat(f).writable? will differ because one uses glibc's eaccess while the other doesn't (and File::writable? is wrong). The attached program demonstrates the problem. This bug is ultimately caused by a bug in glibc's eaccess (http://sourceware.org/bugzilla/show_bug.cgi?id=3846) but it's a separate regression in ruby-1.8.5 (compared to earlier versions of the ruby RPM) since the ruby-1.8.5 rpm's now use eaccess where older ones used ruby's own code to simulate eaccess. A simple fix would be to build ruby w/o HAVE_EACCESS as it has been build in the past until the glibc bug is fixed. -- Additional comment from dlutter on 2007-01-10 14:09 EST -- Created an attachment (id=145276) Ruby script demonstrating the problem (run as root)
seems like got fixed in rawhide. it works fine now.