<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2873" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=560121604-22042006><FONT face=Arial size=2>Just for the record.
I had the following problem:</FONT></SPAN></DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial size=2>I noticed that there
were lots of temporary directories filling up /tmp with random names on my RT
3.4.5 system. Names like those used by File::Temp. Also lots of errors in
syslog and apache error logs about not being able to delete these directories
because they weren't empty. These directories are temporary disk storage for
incoming emails into RT. I eventually traced the problem to the readdir()
function in File::Path which was returning the right number of entries for the
files in these directories but with the empty string as their name. So the
unlink's were failing and the subsequent rmdir() was failing because the files
in the dirs were still there. A related problem was that the RT OnlineDocs
module doesn't work - the index of modules isn't built. I didn't realise
that they were the same problem at first. Well, it's a known problem - this from
the mod_perl troubleshooting guide:</FONT></SPAN></DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial
size=2>----</FONT></SPAN></DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial size=2>If readdir() either
fails with an exception, or in the list context it returns the correct number of
items but each item as an empty string, you have a binary compatibility between
mod_perl and Perl problem. Most likely the two have been built against different
glibc versions, which have incompatible struct dirent.</FONT></SPAN></DIV>
<DIV> </DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial size=2>To solve this
problem rebuild mod_perl and Perl against the same glibc version or get new
binary packages built against the same glibc version.</FONT></SPAN></DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial
size=2>----</FONT></SPAN></DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial size=2>This was my problem.
It was horrible. Even the latest Activestate binary Perl release is linked
against the ancient glibc 2.1.3 wheras I built mod_perl2 with glibc
2.3.4. I had to rebuild Perl from scratch, including all of the RT required
modules. Thank heavens for the CPAN module. So, if you see odd readdir()
behaviour that you can't reproduce by just running the code in perl (this works
- it's when it's run under mod_perl that there is a problem), it's almost
certainly this.</FONT></SPAN></DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=560121604-22042006><FONT face=Arial
size=2>PK</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV align=left><FONT face=Arial size=2>--</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>Philip Kime</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>NOPS Systems Architect</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>310 401 0407</FONT></DIV>
<DIV> </DIV></BODY></HTML>