[Gluster-devel] Wrong behavior on fsync of md-cache ?

Xavier Hernandez xhernandez at datalab.es
Mon Nov 24 17:35:57 UTC 2014


Hi,

I have an issue in ec caused by what seems an incorrect behavior in 
md-cache, at least in NetBSD (on linux this doesn't seem to happen).

The problem happens when multiple writes are sent in parallel and one of 
them fails with an error. After the error, an fsync is issued, before 
all pending writes are completed. The problem is that this fsync request 
is not propagated through the xlator stack: md-cache automatically 
answers it with the same error code returned by the last write, but it 
does not wait for all pending writes to finish.

As I see it, if there are pending writes when an fsync is received, an 
xlator should wait until all these writes have completed.

Setting performance.stat-prefetch to off, the problem disappears (ec 
receives fsync and waits for all pending writes to finish before returning).

Is this a bug or I'm missing something ?

Thanks,

Xavi


More information about the Gluster-devel mailing list