-
Language:
English
-
Language:
English
7.1.1 Release Notes
Known and Resolved Issues for JBoss Data Grid 7.1.1
Abstract
Chapter 1. Introduction to JBoss Data Grid 7.1.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. Applying Patches to JBoss Data Grid
2.1. Patching Existing Server Instances
Micro releases for the JBoss Data Grid server are distributed as a patch. This is for your convenience, as the new version will not completely replace the installation. The base version to be patched is the x.y.0 release, and the patches x.y.# (micro release or cumulative patch) may be applied to that instance. The patch can be rolled back (including the configuration) if there is any issue during the patching process, and any subsequent patches may be applied in the same way.
JBoss Data Grid provides patches for server instances only (Remote Client-Server mode). All other distributions, such as EAP modules, clients, and JBoss Data Grid Library mode, are provided as full releases.
To avoid issues with classloading, you should not apply patches to JBoss Data Grid while the server is running.
To apply a patch to JBoss Data Grid, do the following:
- Download the patch from the Red Hat Customer Portal at https://access.redhat.com/downloads/
Stop the server instance that you want to patch if it is running.
Either use the Administration Console to stop the server or enter Ctrl-C in the terminal where JBoss Data Grid is running.
Open a terminal and change to the JDG_HOME directory.
$ cd JDG_HOME
Apply the patch as follows:
$ bin/cli.sh "patch apply /path/to/jboss-datagrid-7.1.x-server-patch.zip"
Start the server with either the standalone.sh or domain.sh script, for example:
bin/standalone.sh -c clustered.xml
2.2. Rolling Back the Server Version
You can roll back patches to revert the JBoss Data Grid server to the previously installed version.
You should roll back patches only after applying a patch that results in unexpected behavior or undesirable effects. Rolling back patches is not intended for general uninstall functionality.
To revert a JBoss Data Grid patch, do the following:
Stop the server instance that you want to roll back if it is running.
Either use the Administration Console to stop the server or enter Ctrl-C in the terminal where JBoss Data Grid is running.
Open a terminal and change to the JDG_HOME directory.
$ cd JDG_HOME
Find the ID of the patch that you want to roll back.
$ bin/cli.sh "patch history"
Roll back the server version as follows:
$ bin/cli.sh "patch rollback --patch-id=PATCH_ID --reset-configuration=false"
WarningUse caution when specifying the
reset-configuration
option.--reset-configuration=false
does not revert the server configuration. Because applying patches can change the server configuration, it is possible that the server does not restart if you roll back the patch but do not roll back the configuration. In this case, you should verify the server configuration and manually adjust it as needed before starting the server.--reset-configuration=true
reverts the server configuration to the pre-patch state. Any changes to the server configuration after the patch was applied are removed.If conflicts exist when you attempt to roll back the patch, the operation fails and warnings occur. Enter
patch --help
to list available arguments that you can use to resolve the conflicts.- Start the server with either the standalone.sh or domain.sh script.
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.1 include content that has been removed by CDI 1.1.This is a known issue in JBoss Data Grid 7.1.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.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.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.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.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.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.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.1, and no workaround exists at this time.
- 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.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.1, and no workaround exists at this time.
Chapter 6. Resolved Issues
6.1. Resolved Issues
- JDG-521 - CVE-2016-0750 hotrod client: unchecked deserialization in marshaller util [jdg-7]
The Hot Rod Java client in JBoss Data Grid automatically deserialized byte array message contents in certain events. A malicious user could exploit this flaw by injecting a specially-crafted serialized object to attain remote code execution or conduct other attacks.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-875 - 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 issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-878 - Administration console - remote sites are not displayed correctly on cache container page
When two caches were configured each with a different remote site, after clicking on a cache container, both remote sites were displayed on both cache cards.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-885 - Administration console - Indexing tab allows invalid configuration to be set
Indexing is not a valid configuration for invalidation caches; however, it was possible to define this element using the Administration console. The indexing tab is not available for the invalidation-cache now.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-951 - LDAP Authorization Common RoleName Mapper Case Insensitive CN extraction
Previously, when enabling security with JBoss Data Grid with an LDAP backend using
common-role-name-mapper
for authorization, the role name failed to extract when its attribute in the distinguished name wascn
instead ofCN
.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-964 - Administration console - Incorrect data field columns used on cache nodes page
Previously, in the
Nodes
table of the Administration Console, an average read time value was displayed under the following columns:Total reads
,Total failed reads
,Total writes
, andTotal failed writes
. With this update,Total failed writes
is removed and the correct data forTotal reads
,Total failed reads
, andTotal writes
is displayed.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-966 - Administration console - going back to General status tab from Nodes tab loses cache context
After navigating to the
Nodes
tab of a non-default cache, when going to theGeneral Status
tab a redirect to theGeneral Status
tab of the default cache occured, not the non-default cache, as expected.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1001 - JDG modules for EAP does not include all necessary indexes
The CDI Quickstart Guide demontrates injection of Infinispan caches into a web application using CDI. Previously, the guide instructed the reader to bundle the JBoss Data Grid EAP modules with the application. However, this is not the recommended way to setup CDI. The quickstart now specifies the JDG EAP modules be installed directly on the server.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1042 - Refuse to store an index on an ASYNC Cache
When ASYNC caches were in use JBoss Data Grid could not handle out-of-order operations.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1044 - Conditional remove doesn’t work with storeAsBinary
When using
storeAsBinary
if the stored value was aMarshalledValue
and it didn’t match the passed in unmarshalled value, the conditionalRemoveCommand
would fail.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1055 - Improve Compatibility between Rest and HotRod for text content
With text based content, writing via Hot Rod and reading via Rest worked, but not the other way around. Writing via Rest and reading via Hot Rod required deploying a modified StringMarshaller in the server.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1150 - API docs states incorrectly ‘Experimental’
Methods
buildQueryBuilderForClass
andgetClusteredQuery
were both listed as experimental in the API docs. This was corrected.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1180 - Rest Server should allow custom maxContentLength
Previously, JBoss Data Grid did not allow a custom
maxContentLength
. With this update, a new attribute namedmax-content-length
has been added that allows the maximum content length of a POST/PUT request to be specified.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1211 - WARN messages shown during startup for JDG (EAP) CDI modules
The following warning messages were shown if an application with module dependencies was started:
WARN [org.jboss.as.weld] JBAS016017: Using deployment classloader to load proxy classes for module org.infinispan.jcache:jdg-7.1. Package-private access will not work. To fix this the module should declare dependencies on [org.jboss.weld.core, org.javassist] WARN [org.jboss.as.weld] JBAS016017: Using deployment classloader to load proxy classes for module org.infinispan.cdi.embedded:jdg-7.1. Package-private access will not work. To fix this the module should declare dependencies on [org.jboss.weld.core, org.javassist]
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1212 - Package 3rd party licenses content
Add licensing information for third party packages used by JBoss Data Grid. In
jboss-datagrid-7.1.1-server.zip
, there is adocs/licenses
directory. Under that directory, the filesjdg/licenses.html
andjdg/licenses.xml
document the licenses of third party packages used by JDG.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1215 - Rest logging handler category is wrong in infinispan-logging.xml
In the JBoss Data Grid sources zip archive,
infinispan-logging.xml
did not set the correct category for the rest logging handler. It wasRestAccessLoggingHandler
when it should have beenorg.infinispan.rest.logging.RestAccessLoggingHandler
.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1217 - Remove log4j from uber jars
Previously, log4j was enabled by default. However, JBoss Data Grid supports multiple logging methods and is logging agnostic. As such, it is no longer enabled by default. It should be a manually provided dependency if needed.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1219 - "org.hibernate.search.exception.SearchException: Not a valid ScoreDoc index" under high load
Using a spatial query in library mode with a web application under high load could cause an exception.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1220 - JDG 7.1.0 logging is not compatible with EAP 7.1.0.DR16+
JBoss Enterprise Application Platform 7.1.0 included jboss-logging 3.3.1, but JBoss Data Grid 7.1.0 includes jboss-logging 3.3.0. Update jboss-logging in JDG 7.1.1 to 3.3.1 to be compatible with EAP 7.1.0.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1240 - Do not require a trust store for the HotRod server configuration builder
When configuring the Hot Rod server for SSL the validation code required a trust store to be enabled when one wasn’t actually needed.
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1262 - DSL queries filtering only on type are always executed without index
In a query if the WHERE clause was empty, or a tautology (true), the query was wrongly executed unindexed even though the index should at least be used for filtering on type. Example queries that could cause this are below:
FROM org.infinispan.test.Person // and: qf.from(Person.class).build();
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1277 - @public packages missing from API documentation
The following packages were missing from the API documentation:
- org.infinispan.cdi.common
- org.infinispan.objectfilter
- org.infinispan.persistence.leveldb
- org.infinispan.persistence.leveldb.configuration
org.infinispan.scripting
This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1283 - Quickstart spark issues
In the Spark Quickstart
README.md
file there were references toispn-cli.sh
andispn-cli.bat
but the filesnames are actualycli.sh
andcli.bat
. Additionally, the Spark version referenced was 1.6+ but the quickstart actually works with version 2.0.2+.This issue is resolved as of JBoss Data Grid 7.1.1.
- JDG-1311 - CVE-2017-12629 lucene: Solr: Code execution via entity expansion [jdg-7.1.0]
It was found that Apache Lucene would accept an object from an unauthenticated user that could be manipulated through subsequent post requests. An attacker could use this flaw to assemble an object that could permit execution of arbitrary code if the server enabled Apache Solr’s Config API.
JBoss Data Grid included only the Lucene components relevant to this flaw, and was not vulnerable to the second portion of the vulnerability, the code execution exploit. As such, the impact of this flaw was determined to be Moderate.
This issue is resolved as of JBoss Data Grid 7.1.1.