[
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)