7.1 Release Notes

Red Hat JBoss Data Grid 7.1

Known and Resolved Issues for JBoss Data Grid 7.1

Red Hat Customer Content Services

Abstract

The JBoss Data Grid 7.1.0 Release Notes list and provide descriptions for a series of bugzilla bugs. The bugs highlight issues that are known problems and resolved issues for the release.

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:

  1. 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.
  2. 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:

  1. Cross-site failover
  2. 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:

  1. Remote querying
  2. Remote events/listeners
  3. Near caching
  4. Asynchronous operations
  5. 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:

  1. Cross-site failover
  2. 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:

  1. Remote querying
  2. Remote events/listeners
  3. Near caching
  4. Asynchronous operations
  5. 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:

  1. Cross-site failover
  2. 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:

  1. Remove CDI annotations from the listener bean, including removing all @Observes annotations from methods.
  2. Add Listener annotations on desired methods; for example, @CacheStarted.
  3. Manually register listeners using AdvancedCache#addListener.
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 or cache 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 or UNORDERED 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 an ArrayIndexOutOfBoundsException 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() or getAll() 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 the 0.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 of SimpleDateFormat, 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.

Legal Notice

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
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.