[ https://issues.apache.org/jira/browse/GEODE-10339?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jakov Varenina updated GEODE-10339: ----------------------------------- Summary: The server fails to start because the .crf or the .drf file is missing (was: The server fails to start because the .crf of the .drf file is missing) > The server fails to start because the .crf or the .drf file is missing > ---------------------------------------------------------------------- > > Key: GEODE-10339 > URL: https://issues.apache.org/jira/browse/GEODE-10339 > Project: Geode > Issue Type: Bug > Reporter: Jakov Varenina > Priority: Major > Labels: needsTriage > > {color:#0e101a}The server fails with following:{color} > {code:java} > {"timestamp":"2022-05-16T08:25:35.708Z","severity":"error","message":"Cache > initialization for GemFireCache[id = 776315735; isClosing = false; > isShutDownAll = false; created = Mon May 16 08:25:33 UTC 2022; server = > false; copyOnRead = false; lockLease = 120; lockTimeout = 60] failed because: > java.lang.IllegalStateException: The following required files could not be > found: *.crf files with these ids: > [33].","metadata":{"function":"KVDB"},"version":"1.1.0","service_id":"eric-udr-kvdb-ag","extra_data":{"thread_info":{"thread_name":"main","thread_id":"1"},"e":{"exception":""}}} > {code} > > {color:#0e101a}As a last compaction step, the server deletes the compacted > .crf file. The deletion is done in the following way:{color} > # {color:#0e101a}Write delete operation (delete ".crf" file) in the ".if" > file. {color} > # {color:#0e101a}Delete .crf file{color} > {color:#0e101a}The problem with server startup happens in the following > scenario:{color} > # {color:#0e101a}The server writes the delete operation (for .crf file) in > the ".if" file. The write is not immediately flushed to the ".if" file, but > it goes to the async write buffer.{color} > # {color:#0e101a}The server deletes the ".crf" file.{color} > # {color:#0e101a}The forceful restart happens before the async write buffer > is flushed to the ".if" file. This scenario leaves the ".if" file not > updated, and therefore server startup fails later on.{color} > > {color:#0e101a}To avoid the above issue, we can use the existing parameter in > a geode that forces the server to write synchronously to the ".if" > file:{color} > {code:java} > --J=-Dgemfire.syncMetaDataWrites=true > {code} > {color:#0e101a}This parameter is not mentioned anywhere in the documentation. > So it would be good to add it to the following document:{color} > {color:#0e101a}[https://geode.apache.org/docs/guide/114/managing/disk_storage/managing_disk_buffer_flushes.html]{color} > > {color:#0e101a}Changing this parameter's default value to true would also be > good. {color}{color:#0e101a}This parameter should not affect performance as > the ".if" file is not updated frequently.{color} -- This message was sent by Atlassian Jira (v8.20.7#820007)