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

Jakov Varenina reassigned GEODE-10339:
--------------------------------------

    Assignee: Jakov Varenina

> 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
>            Assignee: 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)

Reply via email to