[ https://issues.apache.org/jira/browse/KAFKA-3968?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ismael Juma updated KAFKA-3968: ------------------------------- Labels: reliability (was: ) > fsync() is not called on parent directory when new FileMessageSet is flushed > to disk > ------------------------------------------------------------------------------------ > > Key: KAFKA-3968 > URL: https://issues.apache.org/jira/browse/KAFKA-3968 > Project: Kafka > Issue Type: Bug > Components: log > Affects Versions: 0.9.0.1, 0.10.0.0 > Environment: Linux, ext4 filesystem > Reporter: Andrey Neporada > Labels: reliability > > Kafka does not call fsync() on directory when new log segment is created and > flushed to disk. > The problem is that following sequence of calls doesn't guarantee file > durability: > fd = open("log", O_RDWR | O_CREATE); // suppose open creates "log" > write(fd); > fsync(fd); > If system crashes after fsync() but before parent directory have been flushed > to disk, the log file can disappear. > This is true at least for ext4 on Linux. > Proposed solution is to flush directory when flush() is called for the first > time. -- This message was sent by Atlassian JIRA (v6.3.4#6332)