Bug 1243671

Summary: Null is returned for a not expired entry in Hot Rod client
Product: [JBoss] JBoss Data Grid 6 Reporter: Osamu Nagano <onagano>
Component: InfinispanAssignee: William Burns <wburns>
Status: CLOSED UPSTREAM QA Contact: Martin Gencur <mgencur>
Severity: high Docs Contact:
Priority: high    
Version: 6.4.0CC: chuffman, jdg-bugs, ttarrant
Target Milestone: ER1   
Target Release: 6.5.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
When using the HotRod client to update the lifespan of an expirable entry so that it will be immortal (i.e. performing <methodname>put</methodname> with <parameter>lifespan</parameter> set to -1), the entry was unexpectedly removed from the cache. This issue is resolved as of Red Hat JBoss Data Grid 6.5.1.
Story Points: ---
Clone Of:
: 1253052 (view as bug list) Environment:
Last Closed: 2025-02-10 03:47:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1253052    
Attachments:
Description Flags
expiration-test.zip none

Description Osamu Nagano 2015-07-16 05:22:50 UTC
Created attachment 1052542 [details]
expiration-test.zip

Description of problem:
For a mortal entry (lifespan > -1), overwriting it with lifespan=-1 (make it immortal) unexpectedly removes the entry like follows.

~~~
    cache.put(key, "value1", 100, TimeUnit.SECONDS, 100, TimeUnit.SECONDS);
    cache.get(key); // returns "value1"
    cache.put(key, "value2", -1, TimeUnit.SECONDS, 100, TimeUnit.SECONDS);
    cache.get(key); // returns null, expected "value2"
    cache.put(key, "value3", -1, TimeUnit.SECONDS, 100, TimeUnit.SECONDS);
    cache.get(key); // returns "value3"
~~~

In library mode, the 2nd get returns non-null as expected.  The same behaviour is observed for a transient (maxIdle > -1) entry also.


Steps to Reproduce:
1. Start a standalone JDG server.
2. Run the attached reproducer.
~~~
$ unzip expiration-test.zip
$ cd expiration-test
$ mvn compile dependency:copy-dependencies
$ java -cp 'target/dependency/*:target/classes' \
       -Djava.util.logging.manager=org.jboss.logmanager.LogManager \
       -Dlogging.configuration=file:logging.properties \
       com.example.App
~~~

Comment 5 Red Hat Bugzilla 2025-02-10 03:47:53 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.