ArangoDB v3.4.0-rc.3 Release Notes

Release Date: 2018-10-23 // over 5 years ago
    • 🛠 fixed handling of broken Foxx services

    Installation now also fails when the service encounters an error when executed. Upgrading or replacing with a broken service will still result in the broken services being installed.

    • ⏪ restored error pages for broken Foxx services

    Services that could not be executed will now show an error page (with helpful information if development mode is enabled) instead of a generic 404 response. Requests to the service that do not prefer HTML (i.e. not a browser window) will receive a JSON formatted 503 error response instead.

    • ➕ added support for force flag when upgrading Foxx services

    Using the force flag when upgrading or replacing a service falls back to installing the service if it does not already exist.

    • The order of JSON object attribute keys in JSON return values will now be "random" in more cases. In JSON, there is no defined order for object attribute keys anyway, so ArangoDB is taking the freedom to return the attribute keys in a non-deterministic, seemingly unordered way.

    • 🛠 Fixed an AQL bug where the optimize-traversals rule was falsely applied to extensions with inline expressions and thereby ignoring them

    • 🛠 fix side-effects of sorting larger arrays (>= 16 members) of constant literal values in AQL, when the array was used not only for IN-value filtering but also later in the query. The array values were sorted so the IN-value lookup could use a binary search instead of a linear search, but this did not take into account that the array could have been used elsewhere in the query, e.g. as a return value. The fix will create a copy of the array and sort the copy, leaving the original array untouched.

    • disallow empty LDAP password

    • 🛠 fixes validation of allowed or not allowed foxx service mount paths within the Web UI

    • The single database or single coordinator statistics in a cluster environment within the Web UI sometimes got called way too often. This caused artifacts in the graphs, which is now fixed.

    • An aardvark statistics route could not collect and sum up the statistics of all coordinators if one of them was ahead and had more results than the others

    • 💻 Web UI now checks if server statistics are enabled before it sends its first request to the statistics API

    • 🛠 fix internal issue #486: immediate deletion (right after creation) of a view with a link to one collection and indexed data reports failure but removes the link

    • 🛠 fix internal issue #480: link to a collection is not added to a view if it was already added to other view

    • 🛠 fix internal issues #407, #445: limit ArangoSearch memory consumption so that it won't cause OOM while indexing large collections

    • ⬆️ upgraded arangodb starter version to 0.13.5

    • ✂ removed undocumented db.<view>.toArray() function from ArangoShell

    • prevent creation of collections and views with the same in cluster setups

    • 🛠 fixed issue #6770: document update: ignoreRevs parameter ignored

    • ➕ added AQL query optimizer rules simplify-conditions and fuse-filters

    • 👌 improve inter-server communication performance:

      • move all response processing off Communicator's socket management thread
      • create multiple Communicator objects with ClusterComm, route via round robin
      • adjust Scheduler threads to always be active, and have designated priorities.
    • 🛠 fix internal issue #2770: the Query Profiling modal dialog in the Web UI was slightly malformed.

    • 🛠 fix internal issue #2035: the Web UI now updates its indices view to check whether new indices exist or not.

    • 🛠 fix internal issue #6808: newly created databases within the Web UI did not appear when used Internet Explorer 11 as a browser.

    • 🛠 fix internal issue #2957: the Web UI was not able to display more than 1000 documents, even when it was set to a higher amount.

    • 🛠 fix internal issue #2688: the Web UI's graph viewer created malformed node labels if a node was expanded multiple times.

    • 🛠 fix internal issue #2785: web ui's sort dialog sometimes got rendered, even if it should not.

    • 🛠 fix internal issue #2764: the waitForSync property of a SatelliteCollection could not be changed via the Web UI

    • 🐎 dynamically manage libcurl's number of open connections to increase performance by reducing the number of socket close and then reopen cycles

    • recover short server id from agency after a restart of a cluster node

    this fixes problems with short server ids being set to 0 after a node restart, which then prevented cursor result load-forwarding between multiple coordinators to work properly

    this should fix arangojs#573

    • 0️⃣ increased default timeouts in replication

    this decreases the chances of followers not getting in sync with leaders because of replication operations timing out

    • include forward-ported diagnostic options for debugging LDAP connections

    • 🛠 fixed internal issue #3065: fix variable replacements by the AQL query optimizer in arangosearch view search conditions

    The consequence of the missing replacements was that some queries using view search conditions could have failed with error messages such as

    "missing variable #3 (a) for node #7 (EnumerateViewNode) while planning registers"

    • 🛠 fixed internal issue #1983: the Web UI was showing a deletion confirmation multiple times.

    • Restricted usage of views in AQL, they will throw an error now (e.g. "FOR v, e, p IN 1 OUTBOUND @start edgeCollection, view") instead of failing the server.

    • 👍 Allow VIEWs within the AQL "WITH" statement in cluster environment. This will now prepare the query for all collections linked within a view. (e.g. "WITH view FOR v, e, p IN OUTBOUND 'collectionInView/123' edgeCollection" will now be executed properly and not fail with unregistered collection any more)

    • Properly check permissions for all collections linked to a view when instantiating an AQL query in cluster environment

    • 👌 support installation of ArangoDB on Windows into directories with multibyte character filenames on Windows platforms that used a non-UTF8-codepage

    This was supported on other platforms before, but never worked for ArangoDB's Windows version

    • 🔀 display shard synchronization progress for collections outside of the _system database

    • 🔄 change memory protection settings for memory given back to by the bundled JEMalloc memory allocator. This avoids splitting of existing memory mappings due to changes of the protection settings

    • ➕ added missing implementation for DeleteRangeCF in RocksDB WAL tailing handler

    • 🛠 fixed agents busy looping gossip

    • 🖐 handle missing _frontend collections gracefully

    the _frontend system collection is not required for normal ArangoDB operations, so if it is missing for whatever reason, ensure that normal operations can go on.