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

Jakov Varenina updated GEODE-10339:
-----------------------------------
    Description: 
{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}

  was:
{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}


> 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
>
> {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.7#820007)

Reply via email to