[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Linux-cluster] writev does not work properly on GFS filesystem



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]