Jakov Varenina created GEODE-10339:
--------------------------------------

             Summary: The server fails to start because the .crf of 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


{color:#0e101a}The server fail with following:{color}

 

{color:#0e101a}{"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":""}}}{color}

 

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

Reply via email to