On Fri, 16 Oct 2015, Kendall Green wrote:

The bug doesn't seem to be the file system driver, because the fuse-dfs
mount reports the error as random write operation. The error message is
from the driver library which validates sequential writes are used, but is
caused from rsyslog changing from sequential to random write operations.

When rsyslog first writes file output is sequential, then at the point when
some other process writes to a different file, or simply ls the directory
rsyslog is writing to, then rsyslog starts attempting unsupported write
operations and process batch deletion as if write error retry was
successful when it is not. ​

Rsyslog doesn't know that any other program accessed the file, so it doesn't switch from one type of write to another.

What I think is happening is that the fuse driver is getting confused. the other program that accesses the file is doing something that makes the fuse driver think that it may write to it or otherwise sets a pointer somewhere internally. Then when rsyslog does it's next write to the file (note that rsyslog has kept the file open all the time, and never issues a seek/lseek command, it's just writing to the next spot int he file) the fuse driver thinks that this is now a randmom write because it's gotten confused about where it should be in the file.

as Rainer says, an strace of rsyslog will show that it's writes are not any different before or after the other program accessed the file, same flags, etc.

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to