[Logwatch] logwatch is DOA - strace -f output included from test.pl

Dale Morin dale at mustanginternetservices.com
Thu Oct 2 14:41:03 MST 2008


MrC,

>> stat64("/usr/share/logwatch/default.conf/services", 
>> {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
>> open("/usr/share/logwatch/default.conf/services", 
>> O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 3
> 
> The directory /usr/share/logwatch/default.conf/services is opened...

agreed.

>> fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
>> fcntl64(3, F_GETFD)                     = 0
>> fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
>> getdents64(3, /* 93 entries */, 4096)   = 3280
> 
> and 93 entries are read.

again, agreed.

> Later, another attempt to read another 4k buffer hangs and doesn't
> return (until you Ctrl
> 
>> getdents64(3, /* 0 entries */, 4096)    = 0
>>
> 
> How many actual entries are in that directory including . and .. ?

There are 94 entries in /usr/share/logwatch/default.conf/services 
including . and .. (by running "ls -la | wc -l").

Hmmmmm.  94 vs 93?  That's interesting.  Does gendents include . and .. 
in the count of files?  There are no dirs in the services directory, 
just files.

> This could be caused by a corrupted file system.  Have you force fsck'd
> that file system?

No, it's a relatively new box, has been running less a month or so.  The 
odds of a corrupted filesystem on a lightly loaded dns server are slim, 
but they are not zero.  I can if needed.

> If clean, it could also be a bug somewhere in the getdents64() call path
> down to the file system-specific code.  There have been numerous reports
> over the years of getdnents* hangs.  Which file system type is
> /usr/share/logwatch/default.conf/services ?

It is ext3.

Thanks.


-- 
Dale Morin, Mustang Internet Services, Inc.



More information about the Logwatch mailing list