7.1 Release Notes
Known and Resolved Issues for JBoss Data Grid 7.1
Abstract
Chapter 1. Introduction to JBoss Data Grid 7.1
1.1. Introduction to Red Hat JBoss Data Grid 7.1
Welcome to Red Hat JBoss Data Grid 7.1. 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 documentation suite, available at the Red Hat Customer Service Portal’s JBoss Data Grid documentation page.
1.2. 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.3. Overview
This document contains information about the known issues of Red Hat JBoss Data Grid 7.1. Customers are requested to read this documentation prior to installing this version.
Chapter 2. New Features and Enhancements
2.1. Performance enhancements
Red Hat JBoss Data Grid (JDG) 7.1.0 features core performance improvements, especially in clustered write operations. Current tests have shown up to 60% increase in write throughput under load.
2.2. HTTP session externalization from JBoss Web Server (Tomcat) and Spring Session support
JDG 7.1 features the ability to externalize HTTP sessions from JBoss Web Server (JWS) nodes to a remote JDG cluster. This feature helps make the JWS Layer stateless, and enables a rolling update of the application layer while retrieving the session data from the JDG layer.
Additionally, JDG 7.1 features Spring Session support, which enables you to externalize HTTP sessions from a Spring (or Spring Boot) deployment to a remote JDG cluster.
2.3. Apache Spark 2.x Integration
JDG 7.0 introduced a Resilient Distributed Dataset (RDD) and Discretized Stream (DStream) integration with Apache Spark 1.6. JDG 7.1 adds a new connector for Apache Spark 2.x.
2.4. Remote querying enhancements.
JDG 7.1 introduces a new string-based querying language, Ickle, as Technology Preview, which enables you to specify combinations of relational and full-text predicates (based on Apache Lucene). This enhances the querying feature-set available in Client-Server mode by bringing several additional operations that were previously available only in Library mode, and provides a new querying language for Library mode.
2.5. Administration Console for standalone Server deployments
JDG 7.1 enables you to update and save applicable node-level configurations, via the Administration Console, when JDG Server is used in Standalone mode. Atomic clustered operations are unavailable via the Administration Console in standalone mode. These require the JDG Server deployed in Domain Mode, similar to JDG 7.0.
2.6. RPM distribution for Hot Rod C++ client
JDG 7.1 distributes and supports the Hot Rod C++ clients for Red Hat Enterprise Linux (RHEL) 6 and 7 as RPMs instead of ZIP archives.
2.7. Hot Rod Java client enhancements
JDG 7.1 introduces the following enhancements to the Hot Rod Java client, which are expected to be fully supported:
- Streaming of large-sized objects in chunks from JDG Server to the client. This is useful for client web applications that run in smaller JVMs and handle multiple concurrent sessions.
- Addition of Server Name Indication (SNI) support in TLS-based communication between client and server.
2.8. Hot Rod C++ client enhancements
JDG 7.1 introduces the following enhancements to the Hot Rod C++ client, which are expected to be fully supported:
- Cross-site failover
- TLS-based encryption of communication between client and JDG Server with SNI
Additionally, the following enhancements are expected to be Technology Preview in JDG 7.1:
- Remote querying
- Remote events/listeners
- Near caching
- Asynchronous operations
- Remote script execution
2.9. Hot Rod C# client enhancements
JDG 7.1 introduces the following enhancements to the Hot Rod C# client, which are expected to be fully supported:
- Cross-site failover
- TLS-based encryption of communication between client and JDG Server with SNI
Additionally, the following enhanceemnts are expected to be Technology Preview in JDG 7.1:
- Remote querying
- Remote events/listeners
- Near caching
- Asynchronous operations
- Remote script execution
2.10. Hot Rod Node.js client enhancements
JDG 7.1 introduces the following enhancements to the Hot Rod Node.js client, which are expected to be fully supported:
- Cross-site failover
- TLS-based encryption of communication between client and JDG Server with SNI
Chapter 3. Supported Configurations
3.1. Supported configurations
Supported hardware and software configurations for JDG 7.1 are available on the Customer Portal at https://access.redhat.com/articles/2435931.
Chapter 4. Component Versions
4.1. Component Versions
The full list of component versions used in Red Hat JBoss Data Grid 7.1 are available on the Customer Portal at https://access.redhat.com/site/articles/488833.
Chapter 5. Known Issues
5.1. Known Issues
- JDG-96 - Cache events are incompatible with CDI 1.1 in JDG 7
When using CDI annotations with the CDI 1.1 API, such as the version found within JBoss EAP 7, a
java.lang.RuntimeException
is thrown; this exception is thrown as the cache events used by JBoss Data Grid 7.1 include content that has been removed by CDI 1.1.This is a known issue in JBoss Data Grid 7.1. This issue is resolved in the CDI 1.2 API; to workaround this issue attach the listeners manually, as outlined in the following steps:
-
Remove CDI annotations from the listener bean, including removing all
@Observes
annotations from methods. -
Add Listener annotations on desired methods; for example,
@CacheStarted
. -
Manually register listeners using
AdvancedCache#addListener
.
-
Remove CDI annotations from the listener bean, including removing all
- JDG-436 - JMX operation ClusterCacheStats.resetStatistics() not working
When executing the JMX operation
ClusterCacheStats.resetStatistics()
none of the cluster statistics are reset.This is a known issue in JBoss Data Grid 7.1, and to workaround this issue execute
Statistics.resetStatistics()
on each server individually.- JDG-474 - CLI - container and cache commands don’t work in domain mode
When executing
container
orcache
based commands through the CLI in domain mode the following message is displayed:Container does not exists
This is a known issue in JBoss Data Grid 7.1, and no workaround exists at this time.
- JDG-244 - Spark connector fails with CCE when compatibility mode is enabled
When attempting to insert values into a cache using the Spark connector while compatibility mode is enabled the request will fail with a
ClassCastException
.This is a known issue in JBoss Data Grid 7.1, and to workaround this issue disable compatibility mode.
- JDG-826 - Deadlock during stopping CacheManager
When a new cache is started during server shutdown it can result in a deadlock.
This is a known issue in JBoss Data Grid 7.1, and to workaround this issue do not start any caches while the server is shutting down.
- JDG-841 - Rolling Upgrades from JDG 6.6.0 or earlier ignore cache store
The rolling upgrade procedure from JBoss Data Grid 6.6.0 and before records all the keys in the source cluster and transfers these keys to the target cluster. This operation does not persist the entry in the cache store.
This is a known issue in JBoss Data Grid 7.1, and no workaround exists at this time.
- JDG-840 - Rolling Upgrades from JDG 6.6.0 or ealier migrates all data to a single node
When performing a rolling upgrade from JBoss Data Grid 6.6.0 or before all of the data is migrated to a single node instead of being distributed across the cache.
This is a known issue in JBoss Data Grid 7.1, and no workaround exists at this time.
- JDG-831 - Rolling Upgrade from 6.1 to 7 not working
When attempting to synchronize data during a rolling upgrade the following error is thrown:
[standalone@localhost:10990 /] /subsystem=datagrid-infinispan/cache-container=clustered/replicated-cache=sample-cache:synchronize-data(migrator-name=hotrod) { "outcome" => "failed", "failure-description" => "DGISPN0118: Failed to invoke operation: java.lang.ClassNotFoundException: org.infinispan.util.ByteArrayKey from [Module \"org.infinispan.persistence.remote:main\" from local module loader @42f30e0a (finder: local module finder @24273305 (roots: /opt/jboss-datagrid-7.0.0-server/modules,/opt/jboss-datagrid-7.0.0-server/modules/system/layers/base))]", "rolled-back" => true }
This is a known issue in JBoss Data Grid 7.1, and no workaround exists at this time.
- JDG-529 - NPE in CacheNotifierImpl by LIRS eviction listener
When attempting to use an eviction listener with the
LIRS
eviction strategy a NullPointerException is thrown.This is a known issue in JBoss Data Grid 7.1, and to workaround the issue it is recommended to use one of the
LRU
orUNORDERED
eviction strategies.- JDG-873 - Cross-Site Replication: inconsistent data with multiple site masters in ASYNC mode
When attempting to configure cross-site replication with multiple site masters, data inconsistencies are possible due to updates being routed differently for each request. This can result in the same key traversing two separate routes, leading to differing values.
This is a known issue in JBoss Data Grid 7.1, and to workaround the issue ensure that the
site-master
is set to 1.- JDG-869 - Deploying a task requires server reload
After deploying a task to the server any attempts to call this task result in an
Unknown task 'localScript_throwingException'
error.After restarting or reloading the server the task executes without issue.
This is a known issue in JBoss Data Grid 7.1, and no workaround exists at this time.
- jdg-823 - JPA cache store in weblogic and Postgresql 9.3 produces error
Any attempts to use the JPA cache store with weblogic and Postgresql 9.3 results in a
NoSuchMethodError
:java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index; [java] at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:1100) [java] at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:772) [java] at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:245) [java] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:222) [java] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:265) [java] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847) [java] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874) [java] at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:135) [java] at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:50) [java] at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:461) [java] at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:454) [...]
This is a known issue in JBoss Data Grid 7.1, and no workaround exists at this time.
- JDG-885 - Administration console - Indexing tab allows invalid configuration to be set
Indexing is not a valid configuration for invalidation caches; however, it is possible to define this element using the Administration console.
This is a known issue in JBoss Data Grid 7.1, and no workaround exists at this time.
Chapter 6. Resolved Issues
6.1. Resolved Issues
- JDG-1104 - XSite Replication Commands Should Unwrap Security
When enabling security on a cache, cross-site replication did not work.
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-435 - JDBC store configuration is not copied when creating new template from basic configuration
When creating a new template the JDBC cache store configuration was not copied over, and must have been manually entered instead.
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-477 - The C# client does not have asynchronous versions of cache operations
Unlike the C++ and Java Hot Rod clients, the C# client did not include asynchronous versions of cache operations.
The asynchronous versions of cache operations have been included, and this issue is resolved as of JBoss Data Grid 7.1.
- JDG-447 - Changing transport configuration results in restarting wrong cluster
When updating one server group’s transport configuration through the Administration Console, and accepting the prompt to restart, the server group remained running. Instead, a second server group was restarted in its place.
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-448 - Endpoints column on cache container page shows wrong ports
When examining the port for containers in the Administration Console the
port-offset
was not considered, causing multiple containers to show at the same port.This issue is resolved as of JBoss Data Grid 7.1.
- JGRP-2088 - ArrayIndexOutOfBoundsException on ClassConfigurator.get()
When attempting to use the JGroups
ENCRYPT
protocol anArrayIndexOutOfBoundsException
was thrown.This issue is resolved as of JBoss Data Grid 7.1.
- JDG-642 - PutAll and GetAll failover not working in the Hot Rod client
When using
putAll()
orgetAll()
during a topology change there was the possibility for data being lost, resulting in fewer entries placed or retrieved than expected.This issue is resolved as of JBoss Data Grid 7.1.
- JDG-546 - Cannot retrieve entry via Hot Rod client stored in MSSQL
When attempting to store entries in MS SQL 2012 or 2008R2 servers, any string-based cache store would fail if the data was stored using a Hot Rod client, as these SQL servers did not support UTF-8 encoding.
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-799 - simple-tls-client-auth and simple-tls-sni-client-auth failures on Windows
When attempting to use TLS authentication on Windows 7 no connection could be made to the server. Instead, the connection attempt would error out with the following message:
**** Error 0x80092004 returned by CertCreateCertificateContext. Cannot create certificate. File corrupted?
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-762 - NodeJS client version incorrect
The version of the Hot Rod Node.js client was
infinispan-0.4.0-redhat-SNAPSHOT
, instead of the0.3.0-ER6-redhat-1
expected by the hotrod-endpoint-js quickstart.This issue is resolved as of JBoss Data Grid 7.1.
- JDG-700 - TLS tests fail on Windows
When attempting to use TLS authentication on Windows, the server was unable to read certificates through the filesystem.
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-828 - Administration console doesn’t work in standalone non-clustered mode
When attempting to access the Administration Console in standalone mode, using the
standalone.xml
configuration file, errors were repeatedly thrown.This issue is resolved as of JBoss Data Grid 7.1.
- JDG-886 - Hot Rod Rolling Upgrade: use of Remote Store in mode read-only causes data inconsistencies
When performing a rolling upgrade the remote-store was placed into read-only mode, resulting in issues if applications expected consistent access to data during the rolling upgrade process.
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-846 - Rolling upgrade fails with ClassCastException: SimpleClusteredVersion cannot be cast to NumericVersion
When performing a rolling upgrade a
ClassCastException
was thrown.This issue is resolved as of JBoss Data Grid 7.1.
- JDG-842 - Rolling upgrades: JDG 7 incorrectly assumes JDG 6.6.1 does not support remote iteration
When performing a rolling upgrade from JBoss Data Grid 6.6.1 to JBoss Data Grid 7.x, remote iteration was not used as it required a Hot Rod protocol version of 2.5, even though JBoss Data Grid 6.6.1 supports remote iteration.
This issue is resolved as of JBoss Data Grid 7.1.
- JDG-833 - SimpleDateFormat is not thread safe
The
org.infinispan.rest.Server
class has an instance ofSimpleDateFormat
, which resulted in errors during concurrent access.This issue is resolved as of JBoss Data Grid 7.1, as the instance has been adjusted to
DateTimeFormatter
.- JDG-818 - REST Interface Security Can No Longer Be Applied To JDG 7.0
When attempting to implement security on the REST interface in JBoss Data Grid 7.0 the settings were ignored, allowing clients to access this interface without providing the required credentials.
This issue is resolved as of JBoss Data Grid 7.1.