[JBoss JIRA] (ISPN-5664) Null is returned for a not expired entry in Hot Rod client
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-5664?page=com.atlassian.jira.plugin.... ]
William Burns commented on ISPN-5664:
-------------------------------------
I took a look at the original case and they were also using getWithMetadata which gave me the idea to tweak the test to use that as well. However I added assertions for everything and noticed that the metadata doesn't seem to have the correct value. I added asserts to verify the metadata is the proper number and it seems the entry was inserted with 100 milliseconds instead of seconds, which could cause a premature expiration.
> Null is returned for a not expired entry in Hot Rod client
> ----------------------------------------------------------
>
> Key: ISPN-5664
> URL: https://issues.jboss.org/browse/ISPN-5664
> Project: Infinispan
> Issue Type: Bug
> Components: Remote Protocols
> Affects Versions: 8.0.0.Beta2
> Reporter: William Burns
> Assignee: William Burns
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5664) Null is returned for a not expired entry in Hot Rod client
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-5664?page=com.atlassian.jira.plugin.... ]
William Burns edited comment on ISPN-5664 at 8/5/15 3:10 PM:
-------------------------------------------------------------
-Interestingly I am getting different results as I am seeing a null returned from the first put instead. I will dig deeper.-
Above was caused due to the fact that flags are cleared after invocation, which is totally different than embedded mode. With that fixed I am unable to reproduce this issue on the master branch.
was (Author: william.burns):
Interestingly I am getting different results as I am seeing a null returned from the first put instead. I will dig deeper.
> Null is returned for a not expired entry in Hot Rod client
> ----------------------------------------------------------
>
> Key: ISPN-5664
> URL: https://issues.jboss.org/browse/ISPN-5664
> Project: Infinispan
> Issue Type: Bug
> Components: Remote Protocols
> Affects Versions: 8.0.0.Beta2
> Reporter: William Burns
> Assignee: William Burns
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5664) Null is returned for a not expired entry in Hot Rod client
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-5664?page=com.atlassian.jira.plugin.... ]
William Burns edited comment on ISPN-5664 at 8/5/15 2:39 PM:
-------------------------------------------------------------
Interestingly I am getting different results as I am seeing a null returned from the first put instead. I will dig deeper.
was (Author: william.burns):
Interestingly I am getting different results as I am seeing a null returned from the first get instead. I will dig deeper.
> Null is returned for a not expired entry in Hot Rod client
> ----------------------------------------------------------
>
> Key: ISPN-5664
> URL: https://issues.jboss.org/browse/ISPN-5664
> Project: Infinispan
> Issue Type: Bug
> Components: Remote Protocols
> Affects Versions: 8.0.0.Beta2
> Reporter: William Burns
> Assignee: William Burns
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5664) Null is returned for a not expired entry in Hot Rod client
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-5664?page=com.atlassian.jira.plugin.... ]
William Burns commented on ISPN-5664:
-------------------------------------
Interestingly I am getting different results as I am seeing a null returned from the first get instead. I will dig deeper.
> Null is returned for a not expired entry in Hot Rod client
> ----------------------------------------------------------
>
> Key: ISPN-5664
> URL: https://issues.jboss.org/browse/ISPN-5664
> Project: Infinispan
> Issue Type: Bug
> Components: Remote Protocols
> Affects Versions: 8.0.0.Beta2
> Reporter: William Burns
> Assignee: William Burns
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5664) Null is returned for a not expired entry in Hot Rod client
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-5664?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration updated ISPN-5664:
------------------------------------------
Bugzilla Update: Perform
Bugzilla References: https://bugzilla.redhat.com/show_bug.cgi?id=1243671
> Null is returned for a not expired entry in Hot Rod client
> ----------------------------------------------------------
>
> Key: ISPN-5664
> URL: https://issues.jboss.org/browse/ISPN-5664
> Project: Infinispan
> Issue Type: Bug
> Components: Remote Protocols
> Affects Versions: 8.0.0.Beta2
> Reporter: William Burns
> Assignee: William Burns
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5664) Null is returned for a not expired entry in Hot Rod client
by William Burns (JIRA)
William Burns created ISPN-5664:
-----------------------------------
Summary: Null is returned for a not expired entry in Hot Rod client
Key: ISPN-5664
URL: https://issues.jboss.org/browse/ISPN-5664
Project: Infinispan
Issue Type: Bug
Components: Remote Protocols
Affects Versions: 8.0.0.Beta2
Reporter: William Burns
Assignee: William Burns
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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5523) Enabling eager caching can lead to sever throwing "OutOfMemoryError: Direct buffer memory"
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-5523?page=com.atlassian.jira.plugin.... ]
William Burns updated ISPN-5523:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Fix Version/s: (was: 8.0.0.Final)
Resolution: Done
> Enabling eager caching can lead to sever throwing "OutOfMemoryError: Direct buffer memory"
> -------------------------------------------------------------------------------------------
>
> Key: ISPN-5523
> URL: https://issues.jboss.org/browse/ISPN-5523
> Project: Infinispan
> Issue Type: Bug
> Components: Remote Protocols
> Affects Versions: 7.2.2.Final, 8.0.0.Alpha1
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
> Fix For: 7.2.4.Final, 8.0.0.CR1
>
>
> Some near caching tests are throwing:
> {code}
> [0m[31m04:11:24,499 ERROR [org.infinispan.server.hotrod.CacheDecodeContext] (HotRodServerWorker-43) ISPN005009: Unexpected error before any request parameters read: java.lang.OutOfMemoryError: Direct buffer memory
> at java.nio.Bits.reserveMemory(Bits.java:658) [rt.jar:1.7.0_75]
> at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123) [rt.jar:1.7.0_75]
> at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306) [rt.jar:1.7.0_75]
> at io.netty.buffer.PoolArena$DirectArena.newChunk(PoolArena.java:433) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.buffer.PoolArena.allocateNormal(PoolArena.java:179) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.buffer.PoolArena.allocate(PoolArena.java:168) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.buffer.PoolArena.allocate(PoolArena.java:98) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:241) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:155) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:146) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:107) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:106) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_75]
> {code}
> KeyValueVersionConverter allocates a byte buffer but does not release it. It could be the cause...
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5601) Merge ExtendedModuleCommandFactory into ModuleCommandFactory
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-5601?page=com.atlassian.jira.plugin.... ]
William Burns updated ISPN-5601:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Fix Version/s: 8.0.0.Beta3
Resolution: Done
> Merge ExtendedModuleCommandFactory into ModuleCommandFactory
> ------------------------------------------------------------
>
> Key: ISPN-5601
> URL: https://issues.jboss.org/browse/ISPN-5601
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.0.0.Alpha2
> Reporter: Radim Vansa
> Assignee: Ryan Emerson
> Fix For: 8.0.0.Beta3
>
>
> These are the docs for ExtendedModuleCommandFactory:
> {quote}
> Temporary workaround to avoid modifying ModuleCommandFactory interface. This interface should be merged with ModuleCommandFactory in 6.0.
> {quote}
> Seems that was forgotten in 6.0, 8.0 can fix that.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months
[JBoss JIRA] (ISPN-5517) JDBCBinaryStore size method should query count directly instead of iterating
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-5517?page=com.atlassian.jira.plugin.... ]
William Burns commented on ISPN-5517:
-------------------------------------
I apologize for not updating this soon. Unfortunately the JdbcStringBasedStore doesn't take into account for expired entries in the size method. We could only count buckets that don't have an expired timestamp before our current time and then the other buckets that can have an expired entry would have to be manually read through. This should be substantially faster than reading all entries though as JdbcBinaryBasedStore does currently.
> JDBCBinaryStore size method should query count directly instead of iterating
> ----------------------------------------------------------------------------
>
> Key: ISPN-5517
> URL: https://issues.jboss.org/browse/ISPN-5517
> Project: Infinispan
> Issue Type: Bug
> Components: Loaders and Stores
> Reporter: William Burns
> Assignee: Ryan Emerson
> Fix For: 8.0.0.Final
>
>
> JDBCBinaryStore size method iterates upon all of the rows in the database. We should instead use the getCountRowsSql from the table manipulation just like JDBCStringBasedStore.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 3 months