[JBoss JIRA] Created: (ISPN-784) In Memcached, negative items sizes in set/add should return CLIENT_ERROR
by Galder Zamarreño (JIRA)
In Memcached, negative items sizes in set/add should return CLIENT_ERROR
------------------------------------------------------------------------
Key: ISPN-784
URL: https://jira.jboss.org/browse/ISPN-784
Project: Infinispan
Issue Type: Bug
Components: Cache Server
Affects Versions: 4.2.0.BETA1, 4.1.0.Final
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Fix For: 4.2.0.CR1, 4.2.0.Final
our server:
$ echo -e "set issue70 0 0 -1\r" | nc localhost 11211
SERVER_ERROR org.infinispan.server.core.ServerException: java.lang.NegativeArraySizeException
original memcached implementation:
$ echo -e "set issue70 0 0 -1\r" | nc localhost 11212
CLIENT_ERROR bad command line format
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-797) NumberFormatException when creating a new GlobalConfiguration
by Galder Zamarreño (JIRA)
NumberFormatException when creating a new GlobalConfiguration
-------------------------------------------------------------
Key: ISPN-797
URL: https://jira.jboss.org/browse/ISPN-797
Project: Infinispan
Issue Type: Bug
Components: Configuration
Affects Versions: 4.2.0.CR1
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Priority: Blocker
Fix For: 4.2.0.CR2
This only happens in the CR1 tag, it seems like once we switched the versions, it started to fail then.
Test:
@Test(testName = "config.GlobalConfigurationTest", groups = "functional")
public class GlobalConfigurationTest {
public void testEmptyConstructor() {
new GlobalConfiguration();
}
}
Result:
java.lang.ExceptionInInitializerError
at org.infinispan.config.GlobalConfigurationTest.testEmptyConstructor(GlobalConfigurationTest.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:641)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:677)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:850)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1154)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
at org.testng.TestRunner.runWorkers(TestRunner.java:1108)
at org.testng.TestRunner.privateRun(TestRunner.java:737)
at org.testng.TestRunner.run(TestRunner.java:596)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:315)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:310)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:272)
at org.testng.SuiteRunner.run(SuiteRunner.java:221)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1027)
at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
at org.testng.TestNG.run(TestNG.java:896)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:89)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:144)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:85)
Caused by: java.lang.NumberFormatException: For input string: "CR1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at org.infinispan.Version.getVersionShort(Version.java:130)
at org.infinispan.Version.getVersionShort(Version.java:114)
at org.infinispan.config.GlobalConfiguration.<clinit>(GlobalConfiguration.java:66)
... 26 more
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-734) Support of atomic accesses to collection values.
by Tobias Sarnowski (JIRA)
Support of atomic accesses to collection values.
------------------------------------------------
Key: ISPN-734
URL: https://jira.jboss.org/browse/ISPN-734
Project: Infinispan
Issue Type: Feature Request
Reporter: Tobias Sarnowski
Assignee: Manik Surtani
Redis supports atomic access to values of type list and set. It would be great to have a similar functionality in infinispan. It enables infinispan to replace some database architectures completly.
http://code.google.com/p/redis/
"Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets. All this data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and so forth."
I think sorting is not interesting but the atomic collection accesses are.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-798) NumberFormatException when parsing version.
by Paul Ferraro (JIRA)
NumberFormatException when parsing version.
-------------------------------------------
Key: ISPN-798
URL: https://jira.jboss.org/browse/ISPN-798
Project: Infinispan
Issue Type: Bug
Reporter: Paul Ferraro
Assignee: Manik Surtani
Priority: Blocker
This prevents creation of a GlobalConfiguration object (causing a NoClassDefFoundError). Here's the stacktrace:
java.lang.ExceptionInInitializerError
at org.jboss.ha.ispn.DefaultCacheContainerRegistryTest.defaults(DefaultCacheContainerRegistryTest.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: java.lang.NumberFormatException: For input string: "CR1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:481)
at java.lang.Integer.parseInt(Integer.java:514)
at org.infinispan.Version.getVersionShort(Version.java:130)
at org.infinispan.Version.getVersionShort(Version.java:114)
at org.infinispan.config.GlobalConfiguration.<clinit>(GlobalConfiguration.java:66)
... 30 more
Seems to be a problem with the release script?
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-782) In Memcached, read full line before sending errors
by Galder Zamarreño (JIRA)
In Memcached, read full line before sending errors
--------------------------------------------------
Key: ISPN-782
URL: https://jira.jboss.org/browse/ISPN-782
Project: Infinispan
Issue Type: Bug
Components: Cache Server
Affects Versions: 4.2.0.BETA1, 4.1.0.Final
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Fix For: 4.2.0.CR1, 4.2.0.Final
In Memcached server, make sure full line is read before sending errors to clients.
i.e. If you send this:
$ export KEY300=<key with length 300 chars>
$ echo -e "add $KEY300 0 0 1\r\nget a\r" | nc localhost 11212
The first command should be considered an error but the second part should be consumed without problems.
Original Memcached server would return:
CLIENT_ERROR bad command line format
END
Whereas Infinispan one returns this and the GET is ignored:
CLIENT_ERROR org.infinispan.server.core.ServerException: java.io.IOException: Key length over the 250 character limit
More info in linked JBPAPP issue.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-776) Add configurable properties for each configuration lookup class
by Paul Ferraro (JIRA)
Add configurable properties for each configuration lookup class
---------------------------------------------------------------
Key: ISPN-776
URL: https://jira.jboss.org/browse/ISPN-776
Project: Infinispan
Issue Type: Feature Request
Reporter: Paul Ferraro
Assignee: Manik Surtani
Priority: Minor
See ISPN-379.
Currently, most pluggable components can only be specified by a lookup class name. While some accept a configurable Properties object (e.g. JGroupsChannelLookup), not all do (e.g. MBeanServerLookup). Consequently, it is very awkward to implement a parameterized MBeanServerLookup implementation (e.g. to find the server using a jmx agent id, use an injected mbean server instance, etc.).
I can think of 2 ways to improve this:
1. Add the ability to specify properties objects for each pluggable component. e.g. GlobalConfiguration.setMBeanServerProperties(...), MBeanServerLookup.getMBeanServer(Properties properties)
2. Allow the user to define the instance directly. e.g. GlobalConfiguration.setMBeanServerLookup(MBeanServerLookup lookup)
Ideally, Infinispan could support both mechanisms. The 1st allows flexible declarative configuration. The 2nd allows even more flexible programmatic configuration.
Thinking this through a bit more - we can support both approaches using the following (using MBeanServerLookup as an example):
* Leave MBeanServerLookup interface as is
* Replace GlobalConfiguration.setMBeanServerLookup(String) with GlobalConfiguration.setMBeanServerLookup(MBeanServerLookup lookup)
* Create generic implementation of MBeanServerLookup that delegates to an instance constructed via class name and java bean properties
* If lookup class is specified in the xml, construct generic MBeanServerLookup object accordingly (using class name + properties)
Just a thought. Approach #1 is good enough.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-789) BdbjeCacheStore purges all mortal entries
by Frank Knorr (JIRA)
BdbjeCacheStore purges all mortal entries
-----------------------------------------
Key: ISPN-789
URL: https://jira.jboss.org/browse/ISPN-789
Project: Infinispan
Issue Type: Bug
Components: Loaders and Stores
Affects Versions: 4.2.0.BETA1
Reporter: Frank Knorr
Assignee: Manik Surtani
purgeInternal in class BdbjeCacheStore uses tailMap on map of expire time of entries. The SortedStoredMap expiryMap uses SerialBinding so entries are sorted by expire time (SerialBinding --> DataOutputStream --> writeLong)
Due to javadoc of tailMap it returns all entries with expire time greater than System.currentTimeMillis()
"Returns a view of the portion of this sorted map whose elements are strictly greater than fromKey, optionally including fromKey."
But all entries which expire in future have an expire time greater than System.currentTimeMillis().
I guess headMap should be used instead of tailMap
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month