ArangoDB v3.4.1 Release Notes

Release Date: 2018-12-19 // over 5 years ago
    • 🛠 fixed issue #7757: Using multiple filters on nested objects produces wrong results

    • 🛠 fixed issue #7763: Collect after update does not execute updates

    • 🛠 fixed issue #7586: a running query within the user interface was not shown if the active view was Running Queries or Slow Query History.

    • 🛠 fixed issue #7749: AQL Query result changed for COLLECT used on empty data/array

    • 🛠 fixed a rare thread local dead lock situation in replication: If a follower tries to get in sync in the last steps it requires a lock on the leader. If the follower cancels the lock before the leader has succeeded with locking we can end up with one thread being deadlocked.

    • 🛠 fix thread shutdown in _WIN32 builds

    Previous versions used a wrong comparison logic to determine the current thread id when shutting down a thread, leading to threads hanging in their destructors on thread shutdown

    • ⏪ reverted accidental change to error handling in geo index

    In previous versions, if non-valid geo coordinates were contained in the indexed field of a document, the document was simply ignored an not indexed. In 3.4.0, this was accidentally changed to generate an error, which caused the upgrade procedure to break in some cases.

    • 🛠 fixed TypeError being thrown instead of validation errors when Foxx manifest validation fails

    • 🚚 make AQL REMOVE operations use less memory with the RocksDB storage engine

    the previous implementation of batch removals read everything to remove into memory first before carrying out the first remove operation. The new version will only read in about 1000 documents each time and then remove these. Queries such as

      FOR doc IN collection FILTER ... REMOVE doc IN collection
    

    will benefit from this change in terms of memory usage.

    • 👉 make --help-all now also show all hidden program options

    Previously hidden program options were only returned when invoking arangod or a client tool with the cryptic --help-. option. Now --help-all simply retuns them as well.

    The program options JSON description returned by --dump-options was also improved as follows:

    • the new boolean attribute "dynamic" indicates whether the option has a dynamic default value, i.e. a value that depends on the target host capabilities or configuration

    • the new boolean attribute "requiresValue" indicates whether a boolean option requires a value of "true" or "false" when specified. If "requiresValue" is false, then the option can be specified without a boolean value following it, and the option will still be set to true, e.g. --server.authentication is identical to --server.authentication true.

    • the new "category" attribute will contain a value of "command" for command-like options, such as --version, --dump-options, --dump-dependencies etc., and "option" for all others.

      • 🛠 Fixed a bug in synchroneous replication intialization for, where a shard's db server is rebooted during that period