You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/09/01 07:37:00 UTC

[jira] [Updated] (GEODE-10339) The server fails to start because the .crf or the .drf file is missing

     [ https://issues.apache.org/jira/browse/GEODE-10339?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ASF GitHub Bot updated GEODE-10339:
-----------------------------------
    Labels: pull-request-available  (was: )

> 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: pull-request-available
>
> {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 (of the machine where the server resides) 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 from the persisted region data.{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.10#820010)