[ https://issues.apache.org/jira/browse/CASSANDRA-5535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-5535: -------------------------------------- Affects Version/s: (was: 1.1.12) (was: 1.2.5) Fix Version/s: 1.2.5 1.1.12 +1 (setting affects-version to when this was introduced) > Manifest file not fsynced > ------------------------- > > Key: CASSANDRA-5535 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5535 > Project: Cassandra > Issue Type: Bug > Environment: RHEL 6.4 > java -version > java version "1.6.0_31" > Java(TM) SE Runtime Environment (build 1.6.0_31-b04) > Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode) > Reporter: Terry Cumaranatunge > Assignee: Marcus Eriksson > Priority: Minor > Fix For: 1.1.12, 1.2.5 > > Attachments: 0001-CASSANDRA-5535-fsync-leveled-manifest.patch > > > We had several cases where the the manifest file would get corrupted when > doing power reset tests or iLO resets to mimic power failure scenarios, > ungraceful resets, kernel panics etc. It wasn't clear at the time where the > problem was, but I think the data below shows that Cassandra is missing an > fsync call to the manifest file prior to closing it. This particular stack > trace from below is on Cassandra 1.2.4. > The trace was captured using strace options: > strace -f -p 2200 -e trace=open,close,write,fsync,fdatasync,rename > [pid 9710] > open("/opt/mp/storage/persistent/cassandra/cassandra-lib/data/MSA/subinfo/subinfo-tmp.json", > O_WRONLY|O_CREAT|O_TRUNC, 0666) = 238 > [pid 9710] write(238, "{\n \"generations\" : [ {\n \"gen"..., 3996) = 3996 > [pid 9710] write(238, "14, 263161, 263484, 270816, 2593"..., 3996) = 3996 > [pid 9710] write(238, "275136, 275137, 275138, 275139, "..., 1173) = 1173 > [pid 9710] close(238) = 0 > [pid 9710] > rename("/opt/mp/storage/persistent/cassandra/cassandra-lib/data/MSA/subinfo/subinfo.json" > , > "/opt/mp/storage/persistent/cassandra/cassandra-lib/data/MSA/subinfo/subinfo-old.json") > = 0 > [pid 9710] > rename("/opt/mp/storage/persistent/cassandra/cassandra-lib/data/MSA/subinfo/subinfo-tmp.j > son", > "/opt/mp/storage/persistent/cassandra/cassandra-lib/data/MSA/subinfo/subinfo.json") > = 0 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira