I have found a problem when trying to use syslog (sysklogd-1.4.1) for
writing log files to GFS-mounted filesystem, as only timestamp gets logged.
After searching and tracing with strace, it seems that problem is
somewhere in GFS filesystem writev implementation.
Here is strace of what happens when logging to file on ext3 FS (using
logger -p user.notice "test-ext3 filesystem" to force logging):
recv(3, "<13>Mar 27 18:27:57 root: test-e"..., 1022, 0) = 46
time(NULL) = 1175012877
writev(4, [{"Mar 27 18:27:57", 15}, {" ", 1}, {"pantelija", 9}, {"
", 1}, {"root: test-ext3 filesystem", 26}, {"\n", 1}], 6) = 53
fsync(4) = 0
And now, when trying to log to file on GFS FS (using logger -p
user.notice "test-gfs filesystem") - we have got 45 bytes to write,
syslog is properly formatting text string into 6 array entries, but only
the first is written - as could be seen from writev return code:
recv(3, "<13>Mar 27 18:28:49 root: test-g"..., 1022, 0) = 45
time(NULL) = 1175012929
writev(4, [{"Mar 27 18:28:49", 15}, {" ", 1}, {"pantelija", 9}, {"
", 1}, {"root: test-gfs filesystem", 25}, {"\n", 1}], 6) = 15
fsync(4) = 0
Kernel is 2.6.20.2 and GFS-kernel is 1.04.00
Nenad
--
Linux-cluster mailing list
Linux-cluster@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/linux-cluster