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

Wendy Cheng wcheng at redhat.com
Tue Mar 27 16:51:36 UTC 2007


Nenad Opsenica wrote:
> 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
>
>    
Yeah... an oversight. I'll fix this soon.

-- Wendy




More information about the Linux-cluster mailing list