LTS Changelog

The LTS changelog lists releases which are only accessible via a commercial subscription. All fixes and changes in LTS releases will be released the next minor release. Changes from LTS 1.4.x will be included in release 1.5.0.

1.6.21 (12.10.2021)

Search: When a full synchronization of the search indices was triggered, language specific indices were unnecessarily removed first. This has been changed, language specific indices will now be treated like all other indices during a full synchronization.

Core: When performing an update for role permissions, an event was published even if the update actually did not change anything. A check has been added to only publish the event if permissions are actually changed.

Core: When eventbus messages where published during execution of a job (e.g. a node migration), the events were not published and handled immediately, but were queued in memory and eventually published after the job execution. This caused high memory consumption during a node migration and also the elasticsearch indexing of migrated nodes to be delayed until after all nodes had been migrated. Execution of the jobs has been changed now, so that events will be published immediately to fix those issues.

Core: The overall memory consumption during a migration job has been reduced.

Clustering: Due to a bug in the vert.x eventbus system, elasticsearch sync operations were not only performed in the Mesh instance, were the causing data change actually happened, but on all Mesh instances, which caused unnecessary high load on the elasticsearch. This has been fixed with a workaround.

Core: When deleting old versions of nodes, the related binaries were not deleted from the disk. This has been fixed now. Credits to https://github.com/kdima001.

Core: When an OrientDB transaction repeatedly fails and runs into the retry limit, the original cause will now also be logged.

Server: When an OutOfMemory was caught or one of the plugins (permanently) failed to initialize, mesh was still considered to be live. This has been fixed now.

Clustering: When doing an offline update of Mesh in a cluster, the first instance of the cluster could not be started with the new Mesh version, because the new version should be written into OrientDB, which failed due to write quorum not reached. The initialization procedure has been changed now, so that executing the changelog and storing the Mesh version and DB revision will now only be started after the write quorum has been reached.

1.6.20 (23.09.2021)

Server: Mesh will now create a file mesh.live and touch it every 10 seconds as long as the instance is considered live. If an OutOfMemory is caught or one of the plugins (permanently) fails to initialize, mesh is considered no longer live and the file will not be touched any more.

Server: The readiness probe will now also check the status of the local OrientDB storage. A mesh instance will only be considered "ready" if the local OrientDB storage is "ONLINE".

GraphQL: The wait parameter will now only wait for elasticsearch to be ready when a query option in nodes is actively used. Previously it would wait for elasticsearch even if it wasn’t needed.

1.6.19 (22.09.2021)

Clustering: When recovering from a split-brain situation, the topology lock (which was raised, because nodes rejoined the cluster) was not always removed. This has been fixed, and some info log about the reason for the topology lock has been added.

1.6.18 (26.08.2021)

Core: The included Mesh UI has been updated to version 1.3.0, containing the stability improvements, as well as the new feature of the node status (draft/updated/published/archived etc) filtering.

1.6.17 (18.08.2021)

Clustering: The high level changelog system has been extended to allow for specific changes to be executed in cluster mode.

1.6.16 (10.08.2021)

Core: A bug preventing the string schema field restrictions from being cleared, has been fixed.

1.6.15 (21.06.2021)

Core: The included Hazelcast-Kubernetes library has been updated to version 1.5.6, containing a DNS resolving fix.

1.6.14 (17.06.2021)

AWS S3: A bug preventing the new image data from being stored into an existing s3binary container, has been fixed. AWS S3: An inability of changing permissions for the schema with an S3 field has been fixed.

1.6.13 (03.06.2021)

Core: Added support for storing/referencing the binary data at Amazon Web Services S3 container.

1.6.12 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.6.11 (12.05.2021)

OrientDB: The included OrientDB version has been updated to version 3.1.11.

1.6.10 (27.04.2021)

Plugins: An issue in the plugin environment has been fixed which prevents plugin REST handler starting over 0.0.0.0 host IP address, when the OS disallows it.

Upload: More user-friendly message + HTTP 400 error on an attempt to upload an empty file.

OrientDB: The included OrientDB version has been updated to version 3.1.10.

Upload: The document processing library tika has been updated to version 1.26 to fix the PDF parser failing on files with some Adobe fonts.

1.6.9 (11.03.2021)

Core: Added support for looking up the node field content by webroot path and a field name.

Rest: Added new endpoint for webroot path field lookup.

1.6.8 (21.12.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.6.

OrientDB: A bug in the startup order has been fixed which prevented opening of databases via OrientDB Studio.

Core: Binary upload processing failed for binaries with brackets in the metadata key. This has been fixed now.

GraphQL: Queries, that take longer than the configured threshold will be logged now. See GraphQL Slow Query Log for details.

1.6.7 (20.11.2020)

Jobs: A race condition within the job processing mechanism has been fixed. In some cases newly created jobs would not be automatically invoked. This has been fixed now.

Search: Fixed potential NullPointerException that could occur during search index synchronization.

1.6.6.1 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.6.6 (11.11.2020)

GraphQL: The breadcrumb field now accepts the lang parameter which will be used for additional fallback languages.

1.6.5 (04.11.2020)

Upload: A potential error within the PDF parsing code has been patched.

1.6.4 (27.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.4.

Clustering: The coordination feature will now be automatically disabled whenever clustering is disabled.

Core: The link renderer now tries to use url fields to render the link if it cannot be constructed using segment fields.

1.6.3 (21.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.3.

Clustering: Internal caches will now be cleared when cluster topology changes occur.

Backup: The ?consistencyCheck query parameter was added to the /api/v2/admin/backup endpoint. When set to true it will run the consistency check before invoking the backup. The call will fail when inconsistencies were detected.

Clustering: An additional check has been added which will prevent nodes from joining a cluster which contains an outdated database. The -initCluster flag needs to be used for a single instance to migrate the cluster. This is done to prevent concurrency issues during changelog execution and cluster formation.

Tests: The path handling for the MeshContainer test container class has been updated. Container data will now be placed in the target/mesh-containers folder.

1.6.2 (06.10.2020)

Additional log output and checks have been added to the auth plugin mapping code. This fix also addresses the Null keys are not supported error which was thrown when handling mappings which provide no group and role names. #1138

OrientDB: The included OrientDB version has been updated to version 3.0.34.

Rest: The webroot cache error handling has been improved.

1.6.1 (24.09.2020)

Search: The memory footprint of the differential sync mechanism has been reduced. The sync operations will now be split into buckets. The size of the buckets can be influenced via the search.syncBatchSize setting.

The new sync mechanism requires a reindex of all documents. The Elasticsearch indices will be automatically cleared and re-synced during the first startup of this version.

Core: Fixed a bug that which prevented to update a node reference of a user if the user already had one set. #1114

Core: It is now possible to disable extracting of metadata or content from binaries on a per-field basis. See schema field types documentation for more information.

Plugins: The default plugin timeout has been increased from 15 seconds to two minutes.

Monitoring: The readiness probe will now also check for plugin status. Failed plugin deployments will let the readiness probe fail.

Monitoring: The readiness probe will now no longer fail when a plugin is not registered. Instead it will only fail when a plugin deployment has failed.

Monitoring: The liveness probe will now check for plugin status. Failed plugin deployments will let the liveness probe fail.

Clustering: The webroot handler no longer uses the cluster-wide write lock.

Logging: Failing readiness checks are now logged using the WARN level.

1.5.17 (23.09.2021)

GraphQL: The wait parameter will now only wait for elasticsearch to be ready when a query option in nodes is actively used. Previously it would wait for elasticsearch even if it wasn’t needed.

1.5.16 (22.09.2021)

Clustering: When recovering from a split-brain situation, the topology lock (which was raised, because nodes rejoined the cluster) was not always removed. This has been fixed, and some info log about the reason for the topology lock has been added.

1.5.15 (26.08.2021)

Core: The included Mesh UI has been updated to version 1.3.0, containing the stability improvements, as well as the new feature of the node status (draft/updated/published/archived etc) filtering.

1.5.14 (10.08.2021)

Core: A bug preventing the string schema field restrictions from being cleared, has been fixed.

1.5.13 (21.06.2021)

Core: The included Hazelcast-Kubernetes library has been updated to version 1.5.6, containing a DNS resolving fix.

1.5.12 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.5.11 (12.05.2021)

OrientDB: The included OrientDB version has been updated to version 3.1.11.

1.5.10 (27.04.2021)

Plugins: An issue in the plugin environment has been fixed which prevents plugin REST handler starting over 0.0.0.0 host IP address, when the OS disallows it.

OrientDB: The included OrientDB version has been updated to version 3.1.10.

Upload: The document processing library tika has been updated to version 1.26 to fix the PDF parser failing on files with some Adobe fonts.

1.5.9 (18.12.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.6.

OrientDB: A bug in the startup order has been fixed which prevented opening of databases via OrientDB Studio.

Core: Binary upload processing failed for binaries with brackets in the metadata key. This has been fixed now.

GraphQL: Queries, that take longer than the configured threshold will be logged now. See GraphQL Slow Query Log for details.

1.5.8 (20.11.2020)

Jobs: A race condition within the job processing mechanism has been fixed. In some cases newly created jobs would not be automatically invoked. This has been fixed now.

1.5.7 (13.11.2020)

Search: Fixed potential NullPointerException that could occur during search index synchronization.

1.5.6 (22.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.4.

Clustering: The coordination feature will now be automatically disabled whenever clustering is disabled.

Clustering: Internal caches will now be cleared when cluster topology changes occur.

Backup: The ?consistencyCheck query parameter was added to the /api/v2/admin/backup endpoint. When set to true it will run the consistency check before invoking the backup. The call will fail when inconsistencies were detected.

Clustering: An additional check has been added which will prevent nodes from joining a cluster which contains an outdated database. The -initCluster flag needs to be used for a single instance to migrate the cluster. This is done to prevent concurrency issues during changelog execution and cluster formation.

1.5.5 (06.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.0.34.

Rest: The webroot cache error handling has been improved.

1.5.4 (24.09.2020)

Core: It is now possible to disable extracting of metadata or content from binaries on a per-field basis. See schema field types documentation for more information.

Monitoring: The readiness probe will now no longer fail when a plugin is not registered. Instead it will only fail when a plugin deployment has failed.

Monitoring: The liveness probe will now check for plugin status. Failed plugin deployments will let the liveness probe fail.

Clustering: The webroot handler no longer uses the cluster-wide write lock.

Logging: Failing readiness checks are now logged using the WARN level.

1.4.23 (21.06.2021)

Core: The included Hazelcast-Kubernetes library has been updated to version 1.5.6, containing a DNS resolving fix.

1.4.22 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.4.21 (12.05.2021)

OrientDB: The included OrientDB version has been updated to version 3.1.11.

1.4.20 (27.04.2021)

Plugins: An issue in the plugin environment has been fixed which prevents plugin REST handler starting over 0.0.0.0 host IP address, when the OS disallows it.

OrientDB: The included OrientDB version has been updated to version 3.1.10.

Upload: The document processing library tika has been updated to version 1.26 to fix the PDF parser failing on files with some Adobe fonts.

1.4.19 (17.12.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.6.

OrientDB: A bug in the startup order has been fixed which prevented opening of databases via OrientDB Studio.

Core: Binary upload processing failed for binaries with brackets in the metadata key. This has been fixed now.

GraphQL: Queries, that take longer than the configured threshold will be logged now. See GraphQL Slow Query Log for details.

1.4.18 (18.11.2020)

Jobs: A race condition within the job processing mechanism has been fixed. In some cases newly created jobs would not be automatically invoked. This has been fixed now.

1.4.17 (27.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.4.

Clustering: The coordination feature will now be automatically disabled whenever clustering is disabled.

Clustering: Internal caches will now be cleared when cluster topology changes occur.

Backup: The ?consistencyCheck query parameter was added to the /api/v2/admin/backup endpoint. When set to true it will run the consistency check before invoking the backup. The call will fail when inconsistencies were detected.

Clustering: An additional check has been added which will prevent nodes from joining a cluster which contains an outdated database. The -initCluster flag needs to be used for a single instance to migrate the cluster. This is done to prevent concurrency issues during changelog execution and cluster formation.

1.4.16 (06.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.0.34.

Rest: The webroot cache error handling has been improved.

1.4.15 (23.09.2020)

Monitoring: The readiness probe will now no longer fail when a plugin is not registered. Instead it will only fail when a plugin deployment has failed.

Monitoring: The liveness probe will now check for plugin status. Failed plugin deployments will let the liveness probe fail.

Clustering: The webroot handler no longer uses the cluster-wide write lock.

Logging: Failing readiness checks are now logged using the WARN level.

1.4.14 (02.09.2020)

Core: Fixed a bug that which prevented to update a node reference of a user if the user already had one set. #1114

1.4.13 (26.08.2020)

Plugins: The default plugin timeout has been increased from 15 seconds to two minutes.

Monitoring: The readiness probe will now also check for plugin status. Failed plugin deployments will let the readiness probe fail.

1.4.12 (17.07.2020)

Clustering: The cluster coordinator will now detect changes caused by the OAuth token mapping and will redirect the request if necessary. Thus this change allows the use of the CUD mode when using request coordination in combination with authentication plugins.

Clustering: When using the cluster coordinator, forwarded requests will now contain the X-Mesh-Forwarded-From header.

1.4.11 (23.06.2020)

Plugins: A potential resource leak could cause thread exhaustion when using new REST Clients for each request. This has been fixed now.

1.4.10 (12.05.2020)

Plugins: Fixed an error which was triggered when trying to un-deploy a not yet deployed plugin.

Plugins: Fixed a bug in the plugin registration process in which plugin deployments would fail due to timeouts in clustered environments.

1.4.9 (07.05.2020)

Plugins: The plugin registration process was changed. Plugins will now no longer be directly registered when deployed. Instead the plugins will remain in a pre-registration status util Gentics Mesh is able to deploy them. This is especially useful when running plugins in clustered mode. Plugins will only be registered once the write quorum has been reached. Additionally the plugin deployment process will now utilize a lock in clustered mode to prevent concurrent deployments of plugins. The plugin status was added to the plugin endpoint response.

Clustering: The write lock was removed from the DELETE /api/v2/admin/plugins/:id and POST /api/v2/admin/plugins endpoints to prevent potential deadlocks.

1.3.4 (11.05.2020)

Microschema migrations since version 1.2.0 are very likely to cause a loss of data in nodes that contain micronodes of the migrated schema. This bug has been fixed in this version. At the first start with this version or higher, Gentics Mesh will try to restore affected nodes in projects with a single branch. However, because some data cannot be restored, we advise to restore a backup of a moment before the microschema migration, if possible. We apologize for the inconvenience.