6.3.0 Release Notes

Red Hat JBoss Data Grid 6.3

Known and resolved issues for Red Hat JBoss Data Grid 6.3

Gemma Sheldon

Red Hat Engineering Content Services

Abstract

The Red Hat JBoss Data Grid 6.3 Release Notes list and provide descriptions for a series of bugzilla bugs. The bugs highlights issues that are known problems for the relevant release.

Chapter 1. Introduction to Red Hat JBoss Data Grid 6.3

Welcome to the Red Hat JBoss Data Grid 6.3. As you become familiar with the newest version of JBoss Data Grid, these Release Notes provide you with information about new features, as well as known and resolved issues. Use this document in conjunction with the entire JBoss Data Grid 6.3 documentation suite, available at the Red Hat Customer Service Portal's JBoss Data Grid documentation page.

1.1. About Red Hat JBoss Data Grid

Red Hat's JBoss Data Grid is an open source, distributed, in-memory key/value data store built from the Infinispan open source software project. Whether deployed in client/server mode or embedded in a Java Virtual Machine, it is built to be elastic, high performance, highly available and to scale linearly.
JBoss Data Grid is accessible for both Java and Non-Java clients. Using JBoss Data Grid, data is distributed and replicated across a manageable cluster of nodes, optionally written to disk and easily accessible using the REST, Memcached and Hot Rod protocols, or directly in process through a traditional Java Map API.

1.2. Overview

This document contains information about the new features, known and resolved issues of Red Hat JBoss Data Grid version 6.3. Customers are requested to read this document prior to installing this version.

1.3. Upgrading from JBoss Data Grid 6.2.1 to 6.3

The following information is useful for users upgrading from Red Hat JBoss Data Grid 6.2.1 to 6.3.
Hot Rod Protocol

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
Classloader

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.
API Package Changes

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

Red Hat JBoss Data Grid 6.3 has several new features to increase security of data stored in the grid.

2.1.1. User Authentication

The Hot Rod protocol has been enhanced in Red Hat JBoss Data Grid 6.3 to support user authentication via Simple Authentication and Security Layer (SASL) framework. With this feature, you can require a user who executes a remote application to authenticate before attempting an operation on a secured cache.
In Library mode, user authentication is delegated to the container in which the application is running.

2.1.2. Role-based Access Control

Red Hat JBoss Data Grid 6.3 features role-based access control for operations on designated secured caches. This enables you to assign roles to the users who access your application, and further, specify a mapping of roles to permissions for cache and cache-manager operations. For such secured caches, authenticated users can only perform those operations for which their role is authorized.
Role-based access control is available in both Library and Remote Client-Server modes.

2.1.3. Node Authentication and Authorization

JBoss Data Grid 6.3 provides the ability to require new nodes or merging partitions to authenticate before joining a cluster. Only authenticated nodes that are authorized to join the cluster are permitted to join. This protects your data by not allowing unauthorized servers to store your data. This feature is available in both Library and Remote Client-Server modes.

2.1.4. Encrypted Communication Within the Cluster

JBoss Data Grid 6.3 increases data security through support for encryption of communication between the nodes comprising the cluster, using user-specified cryptography algorithm as supported by the JCA (Java Cryptography Architecture). This feature is available in both Library and Remote Client-Server modes.

Note

Encryption of communication between Hot Rod Client and JBoss Data Grid Server using TLS/SSL is available already in JBoss Data Grid 6.2.

2.2. Map/Reduce Enhancements

The scalability of Map/Reduce has been improved by allowing storage of results in a distributed cache, instead of returning results to the calling application. Map/Reduce has been also enhanced with parallel execution at each node and improved handling of intermediate results.

2.3. JBoss EAP Modules

The JBoss Data Grid 6.3 Library mode distribution and the Hot Rod client are available as separate modules for Red Hat JBoss Enterprise Application Platform 6. This improves the deployment and upgrade experience for JBoss Data Grid on JBoss EAP 6 by specifying the single location of the JBoss Data Grid module in the application's manifest file, instead of embedding JBoss Data Grid libraries in each application.

2.4. Support in Apache Karaf

2.4.1. Remote Client-Server Mode

The Hot Rod client is supported in Apache Karaf versions 2.3 and 3.0 . This enables use of JBoss Data Grid as a remote, distributed cache for integration flows in JBoss Fuse.

2.4.2. Library Mode

JBoss Data Grid 6.3 is also supported in Library in Apache Karaf versions 2.3 and 3.0. This enables use of JBoss Data Grid as an embedded, distributed cache for integration flows in JBoss Fuse.

Note

In Apache Karaf, transactions are supported in Library mode with the Apache Aries transaction manager.
The following features are not supported in Library Mode in Apache Karaf:

2.5. Hot Rod C# Client

JBoss Data Grid 6.3 introduces a new Hot Rod C# client, as Technology Preview. The Hot Rod C# client is based on .NET 4.

2.6. JPA Cache Store

JBoss Data Grid 6.3 features a new JPA cache store, which preserves the schema of an entry when persisting to a relational database. This enables you to access this data directly from the database, from applications that do not use JBoss Data Grid. The JPA cache store is available only in Library mode.

2.7. Remote Querying

Remote Querying (Querying over Hot Rod) has been enhanced with the option to query entries on the remote cluster without requiring indexing of the entries. Remote Querying remains a Technology Preview feature for JBoss Data Grid 6.3.

2.8. Support in Oracle Weblogic 12c

JBoss Data Grid 6.3 Library mode and Hot Rod client are supported in Oracle Weblogic Server 12c application server, version 12.1.2.

Chapter 3. Supported Configurations

For supported hardware and software configurations, see the Red Hat JBoss Data Grid Supported Configurations reference on the Customer Portal at https://access.redhat.com/site/articles/115883.

Chapter 4. Component Versions

The full list of component versions used in Red Hat JBoss Data Grid is available at the Customer Portal at https://access.redhat.com/site/articles/488833.

Chapter 5. Known Issues

The following issues are known to exist in Red Hat JBoss Data Grid 6.3 and will be fixed in a subsequent releases.
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, a SuspectException error is added to the logs. The SuspectExceptions 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 the ignore 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

The following issues have been resolved in Red Hat JBoss Data Grid 6.3.
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 between UP and DOWN. 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-7Wed Dec 2 2015Christian Huffman
BZ-1210074: Corrected typos in resolved issues.
Revision 6.3.0-6Wed Oct 22 2014Misha Husnain Ali
Updated the resolved issues page.
Revision 6.3.0-5Tue Jul 15 2014Gemma Sheldon
BZ-1067224: Updated formatting and wording for Features and Enhancements chapter.
Updated list of Known and Resolved issues.
Revision 6.3.0-4Thu Jul 10 2014Misha Husnain Ali
BZ-1118087: removed mapreduce information.
Revision 6.3.0-3Tue Jul 01 2014Gemma Sheldon
Removed "Beta" wording from introductory material.
Added placeholder "Resolved Issues" chapter.
BZ-1107341: Added migration information.
Revision 6.3.0-2Wed May 28 2014Misha Husnain Ali
Updated subtitle.
Revision 6.3.0-1Tue May 27 2014Misha Husnain Ali
Updated with introductory content and added all known issues for review.
Revision 6.3.0-0Mon Apr 28 2014Gemma Sheldon
New book for 6.3.0 Beta.

Legal Notice

Copyright © 2015 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.