Powered by Zoomin Software. For more details please contactZoomin

MarkLogic Bug Fixes

Issues fixed in MarkLogic Server 9.0-5

  • Last Updated: April 6, 2026
  • 14 minute read
    • MarkLogic Server
    • Documentation

Released: May 2, 2018

The following issues have been addressed in this release:

Platform Component Bug ID Details
all search BUG-48728

Having a protected path defined breaks search:suggest to work on a suggestion source based on a field

Having a protected path defined (any path, even a path does not apply to documents being searched) breaks (no result return) search:suggest to work on a suggestion source based on a field. It does not break search:suggest working on a suggestion source based on an element.

all Semantics BUG-48341

sem:database-nodes returns no nodes for unmanaged triples in JSON documents

If a triples was indexed because it is found in a JSON document of the proscribed form, that node will not be detected when running sem:database-nodes on the indexed triple.

all SQL BUG-48985

TDE variable shadowing breaks variable evaluation.

Variable evaluation fails when the TDE child template has a variable with the same name as its parent TDE template.

all search BUG-48877

cts:aggregate functions do not support a timezone=TZ option

cts:aggregate functions such as cts:min and cts:max do not support a timezone=TZ option for dateTime objects in the same way that cts:value-tuples does.

all Semantics BUG-48200

SPARQL ORDER BY DESC performance doesn't scale

SELECT * WHERE { ?S ?P ?O } ORDER BY DESC(?O) LIMIT 10 takes longer to execute, depending on graph size

all security BUG-49647

op:join-doc loads elements protected by element level security for users that do not have permission to view them

In some cases, the result from op:join-doc doesn't have elements properly concealed based on element level security for unprivileged users.

all MarkLogic REST API BUG-49217

500 error thrown for invalid input to REST API extension

The REST API supports resource service extensions so developers can expose new functionality on the /v1/resources endpoint. The extension can throw the RESTAPI-SRVEXERR error during execution to provide errors to the client. The resource service extension cannot handle an error thrown before or after the resource service extension executes. In particular, if the client sends an invalid JSON document to a resource service extension, the resource service extension cannot handle the error.

all Utility Computing BUG-49042

Unable to rename MarkLogic nodes on EC2

MarkLogic nodes on EC2 can't be renamed through Admin-UI or Admin-API.

all conversion BUG-49400

xdmp:host-status might show incorrect converter version

If the version of MarkLogicConverters installed along with MarkLogic Server is different from the version of MarkLogic Server, xdmp:host-status always shows server's version as converters-version.

all XSLT BUG-48811

XSLT current-group() not resolved properly

current-group() is not returning the correct sequence if there is another element preceding it.

all Optic API BUG-49370

exporting an Optic query with document joins from XQuery

An Optic query can be exported for later execution by POST to the /v1/rows endpoint of the REST API. If the query is constructed in XQuery containing an op:join-doc() or op:join-doc-uri() operation, the import generated an invalid serialisation that failed with a 500 error in the REST API.

all Encryption at REST BUG-49091

Improve robustness of Encryption

If an encrypted multi-forest database backup is taken by multiple hosts to a shared file location, some forests in the backup cannot be decrypted because different hosts used different encryption keys, but only one of the keys is saved in the shared BackupKEKLabel file. Now it allows all the hosts use the same key.

all Stemming and Tokenization BUG-49333

SPARQL filters using stemmed queries fail to return results

A SPARQL query with a filter of fn:contains with a stemmed query is not match values with language strings for the language given in the query.

all Backup/Restore BUG-49225

Backup purge removes backup from other databases

Each database should use a different backup directory. In other words, different databases should not share the same backup directory. Backup purge will remove the old backup regardless of which database the backup is for. The behavior in the description is expected.

all Stemming and Tokenization BUG-48278

Poor Chinese tokenization

Even when advanced language support is licensed, Chinese tokenization for both traditional and simplified Chinese (zh, zh-Hant) produces some poor results, splitting some words into two and combining other words together.

all Geospatial BUG-48962

cts:geopatial-region-query throws error XDMP-BADLINESTRING

cts:geopatial-region-query throws XDMP-BADLINESTRING when matching certain polygons.

OS X mlcp BUG-48854

Missing permissions in mlcp JavaScript transform.

Some user-specified permissions are missing in mlcp JavaScript transform.

all xdmp BUG-49482

MarkLogic Server is vulnerable to the "Billion Laughs" (XML Bomb) vulnerability

Loading the malicious file will capture CPU and memory resources. The query will not properly time out and cannot be canceled.

all Geospatial BUG-49728

cts.referenceParse() does not handle cts.geospatialPathReference

cts.referenceParse() throws XDMP-RANGEINDEXNODE when it is passed cts.geospatialPathReference

linux(64-bit) XQuery BUG-48176

Allow entries in the spelling dictionary to be longer than 64 characters

In some cases, a dictionary may need to hold specific words that exceed 64 characters in length. Currently, this is not allowed, and words longer than 64 characters will trigger a schema error.

all search BUG-49484

Incorrect application of use-db-config option on cts:distinctive-terms and cts:similar-query

The use-db-config option is not being correctly applied on cts:distinctive-terms and cts:similar-query, leading to inappropriate results.

all BUG-49734

Query by Example including a query with ampersand in value throws XDMP-ENTITYREF

Evaluating a Query by Example with value comparisons which includes a query with ampersand in text value throws XDMP-ENTITYREF - Invalid entity reference

windows(64-bit) conversion BUG-36570

Extra spaces are introduced when some pdf file is filtered using xdmp:document-filter

When using xdmp:document-filter parsing PDF files in some cases extra spaces are added.

all SQL BUG-46786

Ttriples, Encryption and RAM

Many triples on encrypted databases uses large amounts of RAM

all conversion BUG-48536

No option for destination collection or directory for OpenXML pipeline

The OpenXML is missing support for destination collection or directory for generated files.

all SQL BUG-48858

Confusing error message from mlodbcinst during odbcdriver installation

When "odbcinst" is not installed, installation of odbcdriver throws error that is confusing. /opt/MarkLogic/bin/mlodbcinst: line 5: which:: command not found odbcinst: command not found Install unixODBC in /usr/local or /usr

all opsdirector BUG-48473

Unable to install OpsDirector on cluster with no account called admin

If the user called 'admin', with role 'admin' does not exist, installation of OpsDirector fails with an error. This problem has been resolved in Ops Director 1.1-1 by selecting a user with the admin role irrespective of the name of that user.

all JSON BUG-49170

boolean-node constructor has "true" value unexpectedly

The boolean-node constructor should behave consistently with number-node. The original version is unexpected.

all Query Console BUG-49058

Query console not showing error on result tab

When using xdmp.httpGet in a query, if the response returns a SVC-SOCCONN error, it is not rendered in the Result tab.

all adminGUI BUG-47916

Admin UI is missing a force bulk replication in database replication

There is no option to stop and restart a database replication temporarily nor you can force a bulk replication after a cluster disconnection to bring the master and replica back in sync quickly.

all MarkLogic REST API BUG-49498

SEC-PRIV returned from REST request on ssl enabled App-Services

When ssl is enabled on the App Services (port 8000) app server and a REST call is made to that port, SEC-PRIV error is returned for a rest-reader user.

all Replication BUG-47923

cannot pause or suspend database replication from Admin UI

There is no option to stop and restart a database replication temporarily nor you can force a bulk replication after a cluster disconnection to bring the master and replica back in sync quickly.

EC2 Utility Computing BUG-48980

EBS volumes not mounted to data directory on C5 and M5 instances

Because C5 and M5 instances expose NVMe device directly, which is different from other instance families, the EBS volumes attached are not correctly mounted to MarkLogic data directory.

all security BUG-50019

Documented privilege (xdmp-filesystem-file-get-time) missing from MarkLogic Server

xdmp-filesystem-file-get-time is not installed with a clean install of MarkLogic Server, so if you run xdmp:filesystem-file-get-time with a user with the "filesystem-access" role, you'll hit an exception citing the missing privilege.

all SQL BUG-49206

SQL left joins sometimes return incorrect results

In some cases where LEFT JOIN clauses are used, the SQL optimiser can chose an algorithm that returns incorrect results when the join condition is against a nullable column.

all jsearch BUG-49349

Query by Example with null value in JSON property throws XDMP-AS

Query by Example with null value in JSON property throws an XDMP-AS error - Invalid coercion: () as xs:string

all xdmp BUG-49070

Segmentation faults in position handling code in query processing

If a database is configured with phrase arounds, and phrase throughs or element word query throughs, and these elements may nest in the actual data, stored positions may be incorrect, leading to segmentation faults in position handling code, or incorrect results.

all xdmp BUG-48799

Creating a REST API server after renaming the Schemas database causes error

The /v1/rest-apis endpoint on port 8002 creates the REST API server and, potentially, content and modules databases for the server. Previously, if the Schemas database had been renamed, the request returned an error. Now, the request succeeds. You should use the Admin UI, the Admin API, or the REST Management API to specify the schemas database for the content database after the request finishes.

all JavaScript BUG-43599

MarkLogic doesn’t have proper support for AppServer error handler in JavaScript

MarkLogic doesn’t have proper support for AppServer error handler in JavaScript

all conversion BUG-44617

Incorrect PDF document-filter results

xdmp:document-filter() result for some pdf files are garbled

all xdmp BUG-48658

Segmentation fault in X509_subject_name_cmp() from lib/libcrypto.so.1.0.0

In some cases a segmentation fault (in X509_subject_name_cmp() from lib/libcrypto.so.1.0.0) has been observed in situations where multiple users are performing ldap authentication with simple bind and ssl configured

all Semantics BUG-49147

Wrong value reported for XDQP transfer rates

Values reported for XDQP transfer rates are about 10x too high.

all Semantics BUG-49184

SPARQL UPDATE [INSERT/DELETE] clause locks the default graph when a WITH clause is not used

In a situation where an insert or a delete is evaluated by SPARQL UPDATE, if the graph is not specified within the statement (using a WITH clause), the default graph is locked until that update has completed.

all Encryption at REST BUG-49542

New database's encryption key not saved

When creating a new database while on external kms, if you entered a key ID to encrypt the database, it would not be saved.

all Optic API BUG-49613

triple deduplication for Optic queries in XQuery

The Optic op:from-triples() accessor takes a options parameter, which can specify deduplication of triples. An XQuery call passed the deduplication option without also passing the fragment id argument, the option was ignored and duplicate triples were returned.

linux(64-bit) Usage/Perf Metrics BUG-49398

Host memory-process-swap-size and memory-file-size incorrect

Host metrics memory-process-swap-size and memory-file-size report wrong data. This effects error logging, xdmp.hostStatus and host metrics in Meters database.

all search BUG-49151

cts:near-query-options returning incorrect values when query is serialised as XML then back to a cts:query

In some cases, a call to cts:near-query-options returns the "distance" value in addition to the options sequence. This has been observed when the query is serialised as an XML element and then the cts:near-query-options is called on the transformed content.

all Common API BUG-49186

Management API ignores 'X-Error-Accept'

Management API port 8002 ignores the 'X-Error-Accept' option. Will return message REST-REQUIREDPARAM: (err:FOER0000) Required parameter: uri

all search BUG-48597

Some wildcard queries producing incorrect results with limited wildcard indexing enabled

On a database with limited support for wildcard indexes (trailing wildcards only, no word lexicons), simple one and two character wildcard queries (e.g. "a*") produce query plans that are missing annotations and produce incorrect results.

all xdmp BUG-49078

ADMIN-INVALIDCONFIG host is missing host-mode

Host rename results in ADMIN-INVALIDCONFIG Invalid configuration: host is missing host-mode

windows(64-bit) xdmp BUG-49257

Windows jemalloc purge decay

Environment variable JE_MALLOC_CONF was not set to purge:decay during MarkLogic installation on Windows.

all xdmp BUG-48851

Module cache performance improvement

Performance improvement when there is an update or delete to a modules database.

all conversion BUG-46420

xdmp:document-filter() fails to filter word-art text from specific Microsoft Excel file formats (.xls and .xlsx)

In cases where Excel spreadsheets contain "Word Art" objects, calls to xdmp:document-filter will fail to filter word-art text from files with an .xls file extension, while for the .xlsx file format xdmp:document-filter filters word-art text successfully.

all mlcp BUG-49550

Default permission not applied to documents imported with mlcp transform

With XQuery transform modules, default permissions or collections are not applied to documents imported with mlcp transformation. With JavaScript transform modules, default permissions are not applied to documents imported with mlcp transformation.

all xdmp BUG-48782

Quotes around boundary string in multipart/form-data header produce incorrect results

When MarkLogic receives a multipart/form-data payload with a Content-Type header that wraps a boundary token in quotes, it fails to decode the payload into parts.

all Search API BUG-49084

apply values options to aggregates in Search API

In the Search API, the values-options element can specify options to apply to lexicon lookups. Under certain circumstances some of these options (timezone definition) are ignored and result in wrong results.

EC2 Utility Computing BUG-49263

Unable to use EC2 instance's IAM role when MARKLOGIC_EC2_HOST is disabled

Setting MARKLOGIC_EC2_HOST to 0 in /etc/marklogic.conf, disables all AWS related feature, including using EC2 instances' IAM role to do S3 backup and restore. With the current changes, MARKLOGIC_EC2_HOST is still the global switch for "EC2 awareness". If this flag is set to 0 (disabled), all of AWS related feature will not be used. MarkLogic will not access instance metadata by any means. By default, this flag is set to enable (1). A new environment variable MARKLOGIC_MANAGED_NODE is introduced. This variable is to control managed cluster feature. If disabled, MarkLogic will NOT automatically mount volumes, report instance status to DynamoDB or automatically join a cluster. By default, this flag is set to enable (1). In order to leverage the functionality of IAM role without Managed Cluster, the variables should be set to MARKLOGIC_EC2_HOST=1 and MARKLOGIC_MANAGED_NODE=0. Since MARKLOGIC_EC2_HOST is enabled by default the only mandatory change is to use MARKLOGIC_MANAGED_NODE=0.

all Encryption at REST BUG-49442

Database files are not encrypted with the database level key

The database files are encrypted with the cluster level key and not the database level key

all search BUG-48849

Track and limit registered query memory

Track registered query memory as memory-registry-size in host-status and as "registry=" in the "Memory" log message. Limit registered query memory to 1/8 of physical memory by aging out old entries. This can be increased to 1/4 of physical memory by enabling the "Registry Size Double" trace event.

linux(64-bit) Usage/Perf Metrics BUG-49939

Host memory-process-swap-size and memory-file-size incorrect

Host metrics memory-process-swap-size and memory-file-size report wrong data. This effects error logging, xdmp.hostStatus and host metrics in Meters database.

all BUG-49764

JSON Query By Example (QBE) fails to match

A JSON QBE specifying a query for a property or element name having an underscore fails to match.

all xdmp BUG-49509

Wrong values are reported for cache hits/misses sometimes.

Wrong values are reported for cache hits/misses sometimes in xdmp.serverStatus, xdmp.forestStatus and in performance metrics in the Meters database for forest, database and app servers.

all security BUG-49405

Documented privilege (xdmp-filesystem-file-get-time) missing from MarkLogic Server

xdmp-filesystem-file-get-time is not installed with a clean install of MarkLogic Server, so if you run xdmp:filesystem-file-get-time with a user with the "filesystem-access" role, you'll hit an exception citing the missing privilege.

all JavaScript BUG-49727

missing AppServer Javascript "error" property

There is no "errors" property in the context of the app server handler in javascript (whereas it exists in xquery context)

all Config Management BUG-37508

Configuration Manager - Showing invalid difference count between current and imported configurations

In some cases, when comparing an imported package with an existing one using configuration manager it shows the total difference as 1 but when we expand it we can't see any difference in the details view. This is attributed to a miscalculation in the diff count.

all Geospatial BUG-47979

cts:geospatial-region-query times out

cts:geospatial-region-query using "crosses" operation times out in wgs84 coordinates when matching a linestring with a linestring

all Semantics BUG-49267

The sem:isIRI() function raises an error when passed the empty sequence

An error is returned if an empty sequence is passed to see:isIRI().

all Admin API BUG-49338

/admin/v1 Endpoints Unavailable in Admin Server of New Groups

When a new group is created (either in the Admin UI or via the Mgmt REST API), then the newly create Admin server in that group does not have the “url rewriter” value set to “rewriter.xqy”, resulting in the /admin/v1 endpoints being unavailable (return 404).

windows(64-bit) Encryption at REST BUG-47838

xdmp.filesystemFile cannot read encrypted file on remote host.

xdmp.filesystemFile cannot read an encrypted file on a remote host, giving error "ReadFile File is not in UTF-8".

all search BUG-49664

fn:contains throws SVC-UTF8SEQ

With three-character-searches on, fn:contains throws SVC-UTF8SEQ when dealing with certain high-codepoint characters.

linux(64-bit) Geospatial BUG-49198

cts:geospatial-region-query throws error XDMP-BADPOLYGON

cts:geospatial-region-query throws XDMP-BADPOLYGON for certain polygons

all Query Console BUG-49305

Setting the environment-ui/ui-message element to empty of cluster-ui-settings.xml causes Query Console XDMP-OBJCONSTRUCTCHILDSEQ error

When attempting to set an environment without a pop-up message, for example: <env-ui:environment-ui xml:lang="zxx" xmlns:env-ui="http://marklogic.com/environment-ui"> <env-ui:ui-active>{fn:true()}</env-ui:ui-active> <env-ui:ui-label>banner_text</env-ui:ui-label> <env-ui:ui-header-color>#FFA500</env-ui:ui-header-color> <env-ui:ui-header-text-color>#FFFFFF</env-ui:ui-header-text-color> <env-ui:ui-message></env-ui:ui-message> </env-ui:environment-ui> Reloading the Query Console results in a 500 XDMP-OBJCONSTRUCTCHILDSEQ error.

linux(64-bit) mlcp BUG-49273

mlcp can't connect with AppServer requiring TLSv1.2.

mlcp can't connect with AppServer requiring TLSv1.2 as it defaults to SSLv3.

all SQL BUG-49240

TDE: A TDE nullable column should not error out on a JSON null node

When a TDE column is nullable, it should not error out on a JSON null node. The original code throws an error on a JSON null node.

all security BUG-49371

There is no option to disable external system entities from being processed by XML parser

If an XML document contains a system entity with a URI that references the local file system, and the MarkLogic process has permissions to read that file, loading the XML document will cause the entity to be dereferenced and included. There is no option to disable system entities.

all xdmp BUG-49776

Subtraction of xs:time values on Windows incorrect

Subtraction of untimezoned xs:time values on Windows may give incorrect answers when the time value is within the timezone offset after midnight. Example: xs:time("24:00:00")-xs:time("23:59:59")

all adminGUI BUG-49316

MarkLogic instances are not restarted when configuration is updated.

If a configuration change is made on hosts in a particular group, other hosts will not restart if they are in the same cluster but in different groups. These other hosts will subsequently not pick up the configuration change initiated on the original host.

all security BUG-49059

CA certificates missing

Required CA certificates may be missing depending on the bootstrap installation method used when installing the MarkLogic server

all Search API BUG-49242

term options for the default query in the Search API

The query options for the Search API can specify options for terms that aren't tagged with a constraint. Such options were not used if the query options also specified a default query for such terms. This returns unexpected search results.

all Geospatial BUG-48510

Duplicate configuration keys for certain configurations of Geospatial Region Indexes

For certain configurations of Geospatial Region Indexes duplicate configuration keys are generated. Note: Upgrade to ML 9.0-5 may cause the server to reindex if it has Geospatial Region Indexes configured.

all mlcp BUG-49600

Specifying a transform_module with a MLCP command using output_permissions removes the "read permission

When mlcp is invoked specifying a -transform_module and -output_permissions the "read" permission is removed.

all security BUG-48474

LDAP authentication/authorization can use case sensitivity on LDAP DN

MarkLogic matches User/Group external name with DN with case-sensitive comparison which can fail in some circumstances.

all Encryption at REST BUG-49309

Encrypted forests become un-encrypted when migrated to another host in the cluster.

During migration of a forest from one node to another in a cluster an encrypted forests become un-encrypted on the destination host in the cluster.

all security BUG-49814

Documented privilege (xdmp-filesystem-file-get-time) missing from MarkLogic Server

xdmp-filesystem-file-get-time is not installed with a clean install of MarkLogic Server, so if you run xdmp:filesystem-file-get-time with a user with the "filesystem-access" role, you'll hit an exception citing the missing privilege.

all Search API BUG-49599

JSON serialization of a cts:query in a REST search response

The Search API provides a return-query flag that provides the executed cts:query in the search response. When serializing the search response to JSON, the REST API didn't emit the cts:query in the standard JSON serialization for the query. As a result, the value of the "query" property in the search response could not be passed to the cts:query() constructor to construct an executable cts:query.

all Geospatial BUG-48262

cts:geospatial-region-query returns incorrect results

cts:geospatial-region-query returns incorrect results when matching certain linestrings with points within tolerance of its boundary points

all MarkLogic REST API BUG-49391

cts:range-query incorrectly applies collation option or default collation

cts:range-query should use the collation associated with the reference and not the query options (or the default collation). In some cases the query may fail to return results.

all SQL BUG-48977

Union queries surrounded by a group by operator doesn't return the correct results

When the group by operator surrounds the union clause, the distinct operation as part of the union clause only acts on the columns present in the group by clause

all SQL BUG-47815

SQL queries with sub-query in HAVING clause are slow

SQL queries with sub-query in HAVING clause are slow

all security BUG-47528

Incorrect fragment-count in reindex-protected-paths element of forest-count api

The fragment-count in reindex-protected-paths element of forest-count api does not work correctly. It should show the total number of fragments to be reindexed, while the original version always show 0.

all Bi-Temporal BUG-49533

Loading bi-temporal documents from the past

Loading bi-temporal documents from the past using system-time results in incorrect system time range

all SQL BUG-48765

MarkLogic ODBC connector causes "out of memory while reading tuples" with Microsoft Access 2016 (32-bit) on large datasets

When the 32-bit version of Microsoft Access is used on 32-bit Windows to connect (over ODBC) to MarkLogic, the process of linking larger tables causes Microsoft Access to throw an OOM exception.

TitleResults for “How to create a CRG?”Also Available inAlert