Issues fixed in MarkLogic Server 9.0-7
- Last Updated: April 6, 2026
- 9 minute read
- MarkLogic Server
- Documentation
Released: Sep 27, 2018
The following issues have been addressed in this release:
| Platform | Component | Bug ID | Details |
|---|---|---|---|
| all | mlcp | BUG-50663 | MLCP ingestion transforms error cause subsequent document rejections Errors in MLCP transforms during ingestion result in the rejection of subsequent documents. |
| all | security | BUG-50447 | Admin UI throws SEC-BADPERMPROTECTEDPATH when creating a protected-path with a permission other than read On Admin UI, if you try to create a protected-path with either insert, update, execute or node-update permission, it gives 'SEC-BADPERMPROTECTEDPATH' error. |
| linux(64-bit) | adminGUI | BUG-50164 | multipart/form-data form on certificate-authority-forms.xqy sends a "file" part even if no file is chosen on the GUI On certificate-authority-forms.xqy, if no file is chosen and its content is empty, a file part is still sent when the form is submitted. |
| all | xdmp | BUG-48907 | Elasticity, HA and DR Performance improvement Algorithm efficiency improvement with rebalancing and asynchronous replication. In certain circumstances, entire stands are copied. To disable stand copying for Database Replication, use trace event "DBRep no index". To disable stand copying for rebalancing, use trace event "Rebalancer No Stand Copy". |
| all | security | BUG-50492 | HTTP server digest auth failure when multiple AWS load balancer are used HTTP clients get Unauthorized failure when the HTTP request uses valid nonce from server and passes through a different ELB, because server doesn’t distinguish forwarded from non-forwarded clients |
| all | adminGUI | BUG-50347 | Minor HTML presentation issue with accept-joiner-confirm.xqy Layout is broken when adding hosts to the cluster. |
| all | Semantics | BUG-50461 | Variable evaluation causes segmentation fault in XQuery/SPARQL query In an XQuery let statement, under some circumstances running a call to a function (such as fn:count) immediately after binding the results of a sem:sparql call to a variable can result in a segmentation fault due to the fact that the binding (of the previous call) has not already taken place. |
| all | SQL | BUG-50210 | Allow usage of fn:data function in TDE templates fn:data has been added to TDE dialect and can now be called inside a template's `<val/>` element. |
| all | adminGUI | BUG-50353 | appserver-status.xqy contains hard-coded 'http://' paths for stack and cancel links, so these break over SSL (https) connections When attempting to cancel a long running query, or get the request stack (Configure > Default > App Servers > App Services > Status Tab > show more) over an SSL connection the URL will break away to http:// |
| all | BUG-50496 | Flexrep Status Page not displayed In the Admin UI, If a flexrep domain has a total number of documents that exceeds the maximum value for an xs:unsignedInt, Flexrep Status Page will not work. |
|
| all | JavaScript | BUG-50495 | JS-OOM error with large objects When multiple large objects are created with JS and they exceed 1GB, v8 will report a JS-OOM error. |
| all | Search API | BUG-50642 | support for cached-incremental option in the Search API The cached-incremental option executes range queries in parallel and caches results for better performance. Previously, the search:range-option in the Search API didn't support the cached-incremental value. Now, the cached-incremental value can be specified for range queries using the search:range-option. |
| all | SQL | BUG-49950 | ODBC Driver Advanced Options page 2 is functional now |
| all | xdmp | BUG-50139 | CPF Alerting Pipelines do not support JSON CPF Alerting Pipelines previously did not provide support for JSON documents out of the box. This has now been addressed with this release of MarkLogic Server. |
| all | xdmp | BUG-50322 | Adjust default in-memory sizes for new databases Lowered maximum default in-memory-list-size from 512MB to to 256MB. Lowered maximum default in-memory-tree size from 128MB to 64MB |
| all | security | BUG-50501 | Multiple Security Databases Improved administration for multiple security databases. |
| all | Config Management | BUG-50361 | Cluster Coupling in the Admin GUI may fail In the Admin UI, Cluster configuration makes use of HTTP GET requests to connect the master and "foreign" clusters; this can lead to the generation of long URLs. Some browsers have restrictions on the length of a URL in a GET request, causing the process to fail. |
| linux(64-bit) | xdmp | BUG-49127 | Log file rotation happens at wrong time on DST transition date. On the date DST time makes the transition, the log file rotation happens at wrong time, for example at 23:00 of November 5, 2017 and 01:00 of March 13, 2017. Now it's fixed by using timezone information and system databases to determine if it is DST. |
| all | MarkLogic REST API | BUG-50324 | numeric values in JSON query text and search responses in the REST API When the REST API processes query text or search results containing a string value that resembles a serialized exponential double, INF, -INF, or NaN, the REST API attempts to treat the value as a number. This approach could result in XDMP-JSONCHAR errors on output. Now the REST API doesn't convert string values in results to numbers. In addition, the REST API doesn't convert a query text to a single numeric value. |
| all | Replication | BUG-48911 | Database Replication: Index data out of sync on replica When a replica database's index configuration is different from the index configuration on the master database, index data stored in the replica database may be out of sync from the master database. Previously, Index data was generated on the replica. Now, master Index data is replicated. Resource Impact is higher network utilization, but less work (cpu, io, memory) required on the replica. To keep the original behavior, use trace event "DBRep no index". |
| all | Encryption at REST | BUG-50467 | Moving pem files and switching KMS Moving pem files while using internal Key Management System prevents MarkLogic Server from coming online when switching back to external Key Management System. |
| all | DMC | BUG-50719 | "Get Developer License" button throws error Visiting http(s)://<hostname>:8001/license.xqy and clicking on "Get Developer License" throws an XDMP-CAST error. |
| linux(64-bit) | Optic API | BUG-50761 | OPTIC API groupBy changes results Using OPTIC API groupBy with two columns returns less data in some cases |
| all | SQL | BUG-49841 | SQL Query with Externally Authenticated User Externally authenticated users return no results from SQL query against ODBC AppServer. |
| all | Geospatial | BUG-50725 | Geospatial region index gets dropped Geospatial region index gets dropped after making a configuration change when there is document with a null value present in the database |
| linux(64-bit) | Optic API | BUG-50683 | Optic groupby query false negatives Optic query with memory data, groupBy & two columns, followed by select are returning false negatives |
| all | Backup/Restore | BUG-50226 | Scheduled backup of database with no forests In the event where a scheduled backup is run for a database with no forests an XDMP-NODIR exception can be observed in the ErrorLogs. This behaviour has been noted in cases where a forest is added before the backup starts. |
| all | Config Management | BUG-50473 | Configuration Manager fails with sc:particles(sc:particles($sc)) -- Invalid coercion: () as schema-component() In some cases, application server XML exported by Configuration manager fail to be imported with the ultimate exception message indicating an Invalid coercion: () as schema-component() exception. |
| OS X | Common API | BUG-48092 | GET /manage/v2/logs misses a line GET /manage/v2/logs doesn't return the last entry in each log file. |
| all | Semantics | BUG-50338 | Long SPARQL DESCRIBE statement throws XDMP-STACKOVERFLOW A SPARQL DESCRIBE statement containing a very large list of urns can cause a stack overflow while the statement is being iterated. This issue appears to be a regression that was introduced in the 9.0-3 release. |
| all | mlcp | BUG-50664 | DHF MLCP Transform errors lead to failure of the rest of the batch DHF MLCP Transform errors lead to failure of the rest of the batch |
| all | xdmp | BUG-50413 | CPU bottleneck on NUMA Unbalanced NUMA assignment of xdqp server session tasks limits cpu utilization |
| all | Semantics | BUG-50670 | cts:triple-range-query with literal value repeating exactly 16 times returns unexpected results in some cases cts:triple-range-query() containing a literal value repeating exactly 16 times in one of the subject, predicate or object position will return unexpected result when they are run withinin the context of a multi statement transaction containing atleast one more cts:triple-range-query(). |
| all | xdmp | BUG-50379 | xdmp.email sends invalid addresses In prior releases of MarkLogic Server, a call to xdmp.email attempted to send emails even when the address was not fully formed. Now xdmp.email throws the expected "501 5.1.3 Invalid address" error for the message (in JSON format). |
| all | Common API | BUG-49833 | Untis of geospatial-region-path-index defaults to miles with REST Management API The units property of a payload that created a geospatial-region-path-index using REST Management API are ignored; the resulting region always uses miles. |
| linux(64-bit) | Upgrade | BUG-50600 | segfault in xdmp::ForestCheckSchemaDBChangeTask::run Server restarts with a segfault inside xdmp::ForestCheckSchemaDBChangeTask::run |
| all | security | BUG-50743 | LDAP authentication fails with LDAP attribute set to mail Add support for configuring an External Authentication profile using the "mail" and all other attributes. |
| all | search | BUG-50637 | Query-plan annotations missing In some cases, Search API will show a query plan without annotations. |
| all | xdmp | BUG-50462 | SMTP relay API accepts out of range port values When the port number is out of valid port range, SMTP relay API doesn't throw an error message and accepts it. |
| all | SQL | BUG-50533 | SQL queries with cast on a column containing null value was failing with XDMP-CAST error SQL queries with cast on a column to any data type containing null value was failing with XDMP-CAST error. |
| all | Optic API | BUG-50250 | An error is raised when the value expression of an object node constructor returns the empty sequence. An error is raised when the value expression of an object node constructor returns the empty sequence, rather than adding an object property with a null node as a value. |
| all | adminGUI | BUG-49876 | Admin UI Backup Passphrase Length Warning Length required for a passphrase to be valid is not described next to field on the database backup screen. |
| all | Optic API | BUG-49947 | Optic API outer joins with null 'left' value return unexpected results Outer joins in Optic API now use SQL joins rather than SPARQL join semantics. |
| all | xdmp | BUG-50786 | "Unauthorized" thrown when http-* through proxy to HTTP url with digest authentication An "Unauthorized" (401) HTTP exception is thrown when some of the standard http functions (such as xdmp:http-get and xdmp:http-post) are used through a proxy to an HTTP endpoint configured with digest authentication |
| OS X | JavaScript | BUG-50682 | fn.head(Node.xpath()) returns a sequence if the result is of length 1 fn.head(Node.xpath()) returns a sequence if the result is of length 1 |
| all | Encryption at REST | BUG-50427 | mlecat space separated arguments mlecat does not correctly read in space separated arguments. |
| all | Optic API | BUG-49381 | XDMP-DOCNOTFOUND for where() on lexicon URIs after joinDoc() in the Optic API Previously, the following sequence of operations produced a XDMP-DOCNOTFOUND error: 1. the fromLexicons() accessor on the URI lexicon 2. the joinDoc() operation on the URIs 3. the where() operation on the URIs Now, the rows are correctly filtered. IMPORTANT NOTE: While this sequence of operations now works, the workaround is in fact the best practice because more efficient. |
| all | opsdirector | BUG-49949 | OpsDirector installation with LDAP fails OpsDirector installation does not complete when Admin appserver is configured with LDAP for authentication and authorization |
| all | Search API | BUG-50541 | support the eager and lazy options in the Search API The cts.values() request has added the eager and lazy options. Using eager and lazy options in search:facet-option gives error message Invalid <facet-option>: eager |
| all | xdmp | BUG-50651 | User cannot create multiple path indexes with different predicates In cases where a user creates multiple path range indexes with different predicates (and which contain spaces/commas), the admin UI throws an exception (index already exists). |
| all | SQL | BUG-49957 | Optic query containing a group by in a subquery of a join Optic/SQL queries containing a group by in the subquery of a join clause was returning wrong/unexpected results when all the aggregated columns in the subquery are projected in the outer query's select clause. |
| all | Optic API | BUG-50258 | op.sqlCondition() with SQL style timestamp A SQL style timestamp literal used in op.sqlCondition() raises an error |
| all | Query Console | BUG-43455 | Query Console: Refresh Firefox with multiple long-running queries going locks browser Under some circumstances, where a large number of queries run concurrently within a Query Console session, refreshing the page in the browser (Firefox) can cause the browser to hang. |
| windows(64-bit) | SQL | BUG-50763 | Performance improvement on a sequential scan on SQL queries All the SQL queries involving a sequential scan of the data will show an improvement in performance, so - for example - queries that make use of the LIMIT statement should see improved performance in this release of MarkLogic Serer. |
| all | Optic API | BUG-49892 | Add support for Temporal arithmetic in Optic API expressions Previously, the arithmetic functions in the Optic API only accepted Numeric arguments. As a result, arithmetic with dates and durations failed. Now, the arithmetic functions support both Numeric and Temporal values. |
| all | xdmp | BUG-50333 | XDMP-PATHRIDXNOTFOUND for a path index that contains function call Adding path index that contains function call (supported by Restricted XPath) through Admin UI gives XDMP-PATHRIDXNOTFOUND |
| all | security | BUG-50297 | LDAP User Authorization should have configurable option to allow and disable Nested Group Lookup Previously, LDAP User Authorization would perform a nested lookup across the directory and under some circumstances this could add significant overhead to a request. In this release of MarkLogic Server, nested LDAP lookups can be disabled in the admin GUI so the nested group lookup when connecting to a LDAP server can be controlled more effectively. |
| all | xdmp | BUG-49784 | Recurring merge blackouts crossing midnight not honored Recurring merge blackouts are not honored if the duration of the blackout spans midnight. |
| all | xdmp | BUG-50050 | Unordered near queries may be incorrect Unordered near queries involving complex subqueries may fail to match when the matches to the subclauses are in fact out of order and the distance is close to the limit. |
| all | documentation | BUG-50547 | mlcp with transform in another database or different root fails Unable to run mlcp with transform module in another modules database or under different root |
| all | documentation | BUG-50730 | Documentation: Windows service parameters for MarkLogic are reset on upgrades The steps to upgrade MarkLogic on Windows include uninstalling the old version. Uninstalling the old version deletes the old Windows service parameters. Installing the new version initializes the service parameters to the default values. So changes to service parameters are lost on upgrade. This behavior has now been documented at http://docs.marklogic.com/guide/installation/procedures. |