6.3.0 Release Notes
Known and resolved issues for Red Hat JBoss Data Grid 6.3
Abstract
Chapter 1. Introduction to Red Hat JBoss Data Grid 6.3
1.1. About Red Hat JBoss Data Grid
1.2. Overview
1.3. Upgrading from JBoss Data Grid 6.2.1 to 6.3
In JBoss Data Grid 6.3, to support the new functionality (for example, security), the Hot Rod protocol for client server communication has been changed from version 1.3 to version 2.0. If the new Hot Rod client (JBoss Data Grid 6.3.0) is used against an earlier instance of the grid (for example, JBoss Data Grid 6.2.1), the Hot Rod protocol version must be explicitly configured as follows (defaults to version 2.0):
infinispan.client.hotrod.protocol_version=1.3
The classloader specified using org.infinispan.configuration.cache.ConfigurationBuilder.classLoader()
is ignored in JBoss Data Grid 6.3.x. Use one of the following alternatives to specify a custom classloader:
org.infinispan.configuration.global.GlobalConfigurationBuilder.classLoader(ClassLoader)
for a global configuration.org.infinispan.AdvancedCache.with(ClassLoader)
for a per call configuration.
For details about packages added, changed, and removed from JBoss Data Grid from the 6.2.1 release to the 6.3.0 release, see the JBoss Data Grid API Documentation.
Chapter 2. New Features and Enhancements
2.1. Data Security
2.1.1. User Authentication
2.1.2. Role-based Access Control
2.1.3. Node Authentication and Authorization
2.1.4. Encrypted Communication Within the Cluster
Note
2.2. Map/Reduce Enhancements
2.3. JBoss EAP Modules
2.4. Support in Apache Karaf
2.4.1. Remote Client-Server Mode
2.4.2. Library Mode
Note
- Querying, which is covered in the Infinispan Query Guide.
- JPA cache store. See Section 2.6, “JPA Cache Store”.
2.5. Hot Rod C# Client
2.6. JPA Cache Store
2.7. Remote Querying
2.8. Support in Oracle Weblogic 12c
Chapter 3. Supported Configurations
Chapter 4. Component Versions
Chapter 5. Known Issues
- BZ#807674 - JDBC Cache Stores using a JTA Data Source do not participate in cache transactions
- In Red Hat JBoss Data Grid's library mode, JDBC cache stores can be configured to use a JTA-aware datasource. However, operations performed on a cache backed by such a store during a JTA transaction will be persisted to the store outside of the transaction's scope. This issue is not applicable to JBoss Data Grid's Remote Client-Server mode because all cache operations are non-transactional.
- BZ#881080 - Silence SuspectExceptions
SuspectExceptions
are routinely raised when nodes are shutting down because they are unresponsive as they shut down. As a result, aSuspectException
error is added to the logs. TheSuspectExceptions
do not affect data integrity.No workaround is currently available for this issue.- BZ#881791 - Special characters in file path to JBoss Data Grid server are causing problems
- When special characters are used in the directory path, the JBoss Data Grid server either fails to start or a configuration file used for logging cannot be loaded properly. Special characters that cause problems include spaces,
#
(hash sign),!
(exclamation mark),%
(percentage sign), and$
(dollar sign).The only workaround for this issue is to avoid using special characters in the directory path. - BZ#1012036 - RELAY2 logs error when site unreachable
- When a site is unreachable, JGroups's
RELAY2
logs an error for each dropped message. Infinispan has configurable fail policies (ignore
/warn
/abort
), but the log is filled with errors despite theignore
policy. - BZ#1024373 - Default optimistic locking configuration leads to inconsistency
- Transactional caches are configured with optimistic locking by default. Concurrent replace() calls might return true under contention and transactions might commit even if they are not supposed to.Two concurrent commands, replace(key, A, B), replace(key, A, C) may both overwrite the entry. The command which is finalized later wins, overwriting an unexpected value with new value.As a workaround, enable REPEATABLE_READ isolation level and write skew check. This will result in concurrent replace operations working as expected.
- BZ#1076084 - RHQ server plugin: remote store cache child creation fails
- Currently, it is not possible to create a remote cache store child resource for a cache using the JBoss Data Grid Remote Client-Server plug-in for JBoss Operation Network. The operation subsequently fails and the JBoss Operations Network Agent records the failure in its log file. As a result, a remote cache store cannot be configured using the JBoss Operations Network user interface.As a workaround for this issue, modify the JBoss Data Grid server configuration file to manually configure the remote cache store.
- BZ#1092403 - JPA cachestore fails to guess dialect for Oracle12c and PostgresPlus 9
- JPA Cache Store does not work with Oracle12c and Postgres Plus 9 as Hibernate, an internal dependency of JPA Cache Store, is not able to determine which dialect to use for communication with the database.To work around this issue, you have to specify Hibernate dialect directly in our persistence.xml. You can do it by adding following element in our persistence.xml:
<property name="hibernate.dialect" value="${hibernate.dialect}" />
, where ${hibernate.dialect} should be set up to org.hibernate.dialect.Oracle10gDialect or org.hibernate.dialect.PostgresPlusDialect for Oracle12c or Postgres Plus 9, respectively. - BZ#1101512 - CLI UPGRADE command fails when testing data stored via CLI
- CLI upgrade command fails to migrate data from the old cluster to the new cluster if the data being migrated were stored in the old cluster via CLI (e.g. by issuing command
put --codec=hotrod key1 val1
). This issue does not occur if data were store via Hot Rod or REST clients directly. - BZ#1118204 - Infinispan Query - Concurrency problem with WeakIdentityHashMap in FullTextIndexEventListener
- When using put/remove operations via Hot Rod, some objects might not be indexed if the system is under heavy load. These object will not be returned by Remote Query or returned based on their previous state. This also affects embedded querying when the cache is NOT transactional.This bug may also cause loss of update and delete operations, so while it is true that subsequent queries might miss results of newly inserted objects, they might also contain results which are not supposed to be returned. The problem on missed delete operations only affects usage of projection, as when the user asks to return the object from the grid we remove the missing ones from the results.The workaround is to mark the cache transactional, regardless of the cache being accessed over Hot Rod (note that then every single operation is enclosed in a transaction) or locally as an embedded cache.
- BZ#1113585 - LevelDBStore.stop() crashes JVM in native code
- When a cache using LevelDB cache store is stopped (for example, as a consequence of stopping the cache manager), the LevelDB native implementation can cause segmentation fault in the JVM process. This results in crashing the whole process.
Chapter 6. Resolved Issues
- BZ#1043434 - L1 entry added by state transfer when already invalidated
- In distributed cache mode with L1 enabled and
onRehash=true
, when an entry was overwritten during state transfer, the overwrite was often ignored. This node would then report an outdated value of the entry, and after the L1 timeout, the entry was completely removed.This issue is now resolved in JBoss Data Grid 6.3.0. - BZ#1054165 - JBoss Operations Network (3.2.0) -- lib plug-in AVAILABILITY CHECK for cache manager failed -- app deployed on JBoss EAP 6.2
- In the JBoss Data Grid Library and JBoss Operations Network integration, the default
5000
millisecond timeout period for an availability check operation was not sufficient to monitor an application that used JBoss Data Grid libraries deployed on a JBoss EAP server. As a result, the availability of the embedded Infinispan cache manager was inaccurately reported as alternating betweenUP
andDOWN
. Additionally, the monitoring of cache statistics was affected by this issue.This issue is now resolved in JBoss Data Grid 6.3.0. - BZ#1072349 - Server plugin for JBoss Operations Network needs extensions in management/monitoring
- The Red Hat JBoss Data Grid server plug-in for JBoss Operations Network did not cover a full set of management operations. Therefore, a subset of management operations was not accessible from the JBoss Operations Network user interface.This issue is now resolved in JBoss Data Grid 6.3.0.
- BZ#1096877 - Hot Rod client RequestBalancingStrategy backwards compatibility issue
- The
org.infinispan.client.hotrod.impl.transport.tcp.RequestBalancingStrategy
interface has changed although it is considered part of public API. If the application using JBoss Data Grid directly uses (implements) this interface, upgrading to JBoss Data Grid 6.3 was not possible without changing the application code.This issue is now resolved in JBoss Data Grid 6.3.0. - BZ#1097197 - Unable to store custom objects via Hot Rod in Karaf
- A Hot Rod client running in Karaf could not store or retrieve user-defined objects. This was because custom classes were packaged in the client's bundle and the Hot Rod client could not see these classes.This issue is now resolved in JBoss Data Grid 6.3.0.
- BZ#1099055 - Authentication configuration builder requires CallbackHandler also when subject it set
- The Hot Rod Java client configuration validator did not accept a configuration where the SASL callback handler was not set. However, if a valid client Subject is supplied instead, the validator accepts the configuration. As a result, the configuration validator threw a org.infinispan.commons.CacheConfigurationException exception with the following error message:
ISPN004030: Cannot enable authentication without specifying a Callback Handler.
This issue is now resolved in JBoss Data Grid 6.3.0. - BZ#1099156 - Handle storeMetadata=false in JpaStore.process and JpaStore.purge methods
- If JPA Cache Stores were used with the metadata storage attribute disabled, the cache store executed the queries for the metadata when other operations occured. As a result, if the metadata class was disabled in the
persistence.xml
file, other operations failed to execute or did not perform optimally.This issue is now resolved in JBoss Data Grid 6.3.0. - BZ#1100741 - LevelDB tests fail on Red Hat Enterprise Linux 5
- The native LevelDB JNI library used by the LevelDB store was built using the C++ compiler available in Red Hat Enterprise Linux 6, which made the resulting binary ABI-incompatible with Red Hat Enterprise Linux 5. As a result, the LevelDB JNI library failed to load with a linker error reporting a missing version symbol (
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
).This issue is now resolved in JBoss Data Grid 6.3.0. - BZ#1115229 - Loading cache with LevelDB store enabled causes concurrency errors
- When the LevelDB expire queue filled up, the queue-size parameter was not parsed. As a result, write operations were blocked because the queue is considered full.This issue is now resolved in JBoss Data Grid 6.3.0. The parser has been fixed and it is now possible to configure the queue-size.
Appendix A. Revision History
Revision History | |||||
---|---|---|---|---|---|
Revision 6.3.0-7 | Wed Dec 2 2015 | Christian Huffman | |||
| |||||
Revision 6.3.0-6 | Wed Oct 22 2014 | Misha Husnain Ali | |||
| |||||
Revision 6.3.0-5 | Tue Jul 15 2014 | Gemma Sheldon | |||
| |||||
Revision 6.3.0-4 | Thu Jul 10 2014 | Misha Husnain Ali | |||
| |||||
Revision 6.3.0-3 | Tue Jul 01 2014 | Gemma Sheldon | |||
| |||||
Revision 6.3.0-2 | Wed May 28 2014 | Misha Husnain Ali | |||
| |||||
Revision 6.3.0-1 | Tue May 27 2014 | Misha Husnain Ali | |||
| |||||
Revision 6.3.0-0 | Mon Apr 28 2014 | Gemma Sheldon | |||
|