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

Mario Ivanac updated GEODE-7145:
--------------------------------
    Attachment: pdx_deadlock.tgz

> Geode native client PDX deadlock when not reading all data
> ----------------------------------------------------------
>
>                 Key: GEODE-7145
>                 URL: https://issues.apache.org/jira/browse/GEODE-7145
>             Project: Geode
>          Issue Type: Improvement
>          Components: native client
>            Reporter: Mario Ivanac
>            Priority: Major
>         Attachments: pdx_deadlock.tgz
>
>
> A plausible thread deadlock in geode-native C++ library (versions 1.8 and 
> 1.9) has been found. It seems to happen in the following circumstances:
>  * A reader program continuously reads objects in a region, objects 
> deserialized with PDX.
>  * The reader program is NOT consuming all fields in the objects, so some 
> information is left in the cache.
>  * PdxIgnoreUnreadFields is set to FALSE.
>  
> With previous setup, it has been observed that after around 20 seconds of 
> first object read, the reader program gets stuck.
>  
> A program source that reproduces the problem is attached (pdx_deadlock.tgz). 
> This program is based on geode’s native example 
> (geode-native/examples/cpp/pdxserializable/) with some minor modifications.
>  
> Procedure
>  # Build pdx_deadlock program using cmake and copy binary to test machine.
>  # Use gfsh to create region with command: create region 
> --name="custom_orders" --type=PARTITION
>  # Execute pdx_deadlock once in create mode to add just one order entry in 
> region: ./pdx_deadlock <locator_host> <locator_port> create
>  # Execute pdx_deadlock in read loop mode with command: ./pdx_deadlock 
> <locator_host> <locator_port>
>  # Check in output the order object is being read. In less than 30 seconds 
> the deadlock shall happen, and iteration loop will not finish.
>  
> Additionally, if program is executed with these arguments:
> ./pdx_deadlock <locator_host> <locator_port> ignore-unread-fields
> It will set geode client cache factory configuration value 
> PdxIgnoreUnreadFields to TRUE, and NO deadlock would occur, and the program 
> will finish all iterations.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to