Powered by Zoomin Software. For more details please contactZoomin

MarkLogic Bug Fixes

Issues fixed in MarkLogic Server 9.0-4

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

Released: Jan 19, 2018

The following issues have been addressed in this release:

Platform Component Bug ID Details
all Common API BUG-48048

Set option namespace with options-ns when defining pipeline in json format

When defining a pipeline in json MANAGE-INVALIDPAYLOAD error is thrown if there is an options key in the definition

all security BUG-47893

Invalid coercion: certificate template status after CA loaded

Exception with certificate template status after loading a CA instead of a certificate

all MarkLogic REST API BUG-47284

REST API: document patch replacement in SJS

Document patch requests in the REST API can specify replacement functions installed previously on the enode to provide custom services for replacing document nodes in response to patch requests. Previously, libraries with such replacement functions could be written only in XQuery. Now, libraries with replacement functions can be written in SJS.

all adminGUI BUG-48158

Admin UI: Support request slow for large clusters

In the Admin UI, generating a support request will be slow for large clusters.

all JavaScript BUG-48162

Transactions hang and can't be cancelled

In rare circumstances, there are transactions that hang and which cannot be cancelled.

all xdmp BUG-48659

Monitoring history hourly and daily multi-forest database metrics incorrect

The hourly and daily metrics displayed in monitoring history are calculated incorrectly for databases that have more than one forest.

all Geospatial BUG-47819

cts:geospatial-region-query false negatives

Results are missing in cts:search with cts:geospatial-region-query executed using raw coordinate system

all Geospatial BUG-48089

geo:geohash-encode throws XDMP-BADGEOMETRY error

geo:geohash-encode throws XDMP-BADGEOMETRY error for certain polygons at double precision with minimum tolerance

windows(64-bit) Monitoring Dashboard BUG-47428

No error message in Monitoring History when Meters forest inaccessible

The charts in Monitoring History do not appear when the Meters database forest runs out of space or is otherwise inaccessible. No message appears in the UI to describe the problem.

all XQuery BUG-48263

Calling normalize-unicode in NFKD mode may cause server restart

Calling normalize-unicode on a long string with NFKD mode may cause a server restart.

all search BUG-47650

Proximity boost scores may vary when data reloaded or reindexed

The score of a word-query with distance weight can be inconsistent, even over the same data when it is reloaded or reindexed.

all Geospatial BUG-47685

Memory leak in geospatial region queries

On MarkLogic Server version 9.0-3, there is a memory leak resulting from calls to cts:geospatial-region-query when using the "intersects" operation.

linux(64-bit) SQL BUG-46165

SQL Subqueries

Supporting SQL subqueries.

all xdmp BUG-48587

Transactions neither timeout or cancel

Rare internal locking issue results in a transaction hanging. The transaction does not timeout and cannot be cancelled.

all Common API BUG-48062

manage-admin and Security roles for REST Management API

The manage-admin and Security roles are required roles for accessing full functionality of the REST Management API. For read-only access use the manage-user role.

all Query Console BUG-43108

Super databases: Duplicate URIs on Query Console Explore

If a forest contains duplicate URIs, Query Console throws an error when "Explore" button clicked.

all Common API BUG-47866

REST Management API support for xdqp ssl disabled protocols on servers

Manage specific server xdqp ssl settings, via REST Management API, by enabling or disabling any of the following properties to false. xdqp-ssl-disable-sslv3 xdqp-ssl-disable-tlsv1 xdqp-ssl-disable-tlsv1-1 xdqp-ssl-disable-tlsv1-2 For example, curl -v -X PUT --anyauth --user $user:$pass --header "Content-Type:application/json" -d'{"xdqp-ssl-disable-sslv3":false, "xdqp-ssl-disable-tlsv1":true,"xdqp-ssl-disable-tlsv1-1":true,"xdqp-ssl-disable-tlsv1-2":false}' http://${host}:8002/manage/v2/servers/myServer/properties?group-id=Default&format=json

all Common API BUG-47579

REST Management API: Enable database field meta data

Enable a database field meta data by setting metadata properties to true, for example: PUT manage/v2/databases/myLovelyDatabase/properties { "field": [ { "field-name": "", "include-root": true }, { "field-name": "myLovelyField", "metadata": "true" } ]}

all SQL BUG-47904

Optic after UNION statement on fromSQL

Unable to use Optic operations after some UNION statement on fromSQL()

all Bi-Temporal BUG-48424

temporal:collection-set-options XDMP-ARGTYPE

temporal:collection-set-options throws XDMP-ARGTYPE when there are multiple options passed in to the function.

all Bi-Temporal BUG-48392

Previous version of temporal document deleted

temporal.documentLoad will delete the previous version of a temporal document when a new version is inserted

all Optic API BUG-47978

Default casting for parameters of row requests

An Optic query can specify placeholder parameters for query criteria or paging offset values, making it possible to optimize the query once but retrieve different row sets for different values. In the REST API, the values for such placeholder parameters within the query are specified with URI parameters for the /v1/rows endpoint. Previously, where such URI parameters didn't specify the data type explicitly, the data type defaulted to xs.numeric Now, the data type default to xs.double, xs.integer, xs.duration, xs.dateTime, xs.date, or xs.time if castable to one of those types. Otherwise, the data type defaults to sem.iri.

all search BUG-48180

Lexicon calls return nothing instead of error

When lexicon calls that take reference arguments (cts:values, for example) are passed references created via cts:reference-parse or references created with the "unchecked" option, they return nothing instead of raising an error if the reference is to a non-existent index.

all xdmp BUG-48104

Meters Database cleanup task failure

In some rare circumstances, MarkLogic task to clean up old entries in the meters database fails. The ErrorLog will show the error "Error: CleanupMeterTask::run: SVC-BAD: Bad Hash128Table::put".

all Common API BUG-47945

REST Management API: set memberOf and member attributes in LDAP External Security definition

Add the following additional attributes to the External Security REST Management API call to allow memberOf and member attributes to set. ldap-memberof-attribute ldap-member-attribute

all Query Console BUG-40135

XQuery syntax highlighting fails on quoted JSON

Editor highlighting failed after quoted JSON in query.

all xdmp BUG-48178

Unexpected "Module cannot be found in a module database" error

XDMP-MODNOTFOUND - "Module cannot be found in a module database" can occur if multiple module databases have modules with same name.

all SQL BUG-48361

MarkLogic ODBC connector is currently unable to work with Microsoft Access 2016

While an ODBC connection between Excel 2016 and MarkLogic will allow the user to import a tabular SQL view directly into the spreadsheet, the same ODBC feature currently stops after the chosen table has been selected in Microsoft Access (with Access reporting an error 7).

all xdmp BUG-48253

map and array string values do not change

map and array string values do not change when the map or array is changed let $x := map:map() let $_ := map:put($x,"1","1") let $s := fn:string($x) let $_ := map:put($x,"2","2") let $t := fn:string($x) return ($s,$t); let $x := json:array() let $_ := json:array-push($x,"1") let $s := fn:string($x) let $_ := json:array-push($x,"2") let $t := fn:string($x) return ($s,$t)

all Common API BUG-47843

database backup/restore password via REST Management API

Secure backups of a database via the REST Management API by setting a password. POST manage/v2/databases/myDatabase { "operation":"backup-database", "backup-dir":"/home/tmp", "password":"myLovelyAndLongPassword" } To restore the backup you would then need to supply the same password POST manage/v2/databases/myDatabase { "operation": "restore-database", "backup-dir": "/home/tmp", "password":"myLovelyAndLongPassword" }

all Admin API BUG-48577

XDMP-CAST in admin:database-get-reindexer-timestamp

When a reindexer timestamp is set to any reasonable time, admin:database--get-reindexer-timestamp throws XDMP-CAST.

all mlcp BUG-48078

MLCP: space character in transform_param

When mlcp command contains spaces in transform_param, mlcp is not able to parse the command.

linux(64-bit) Semantics BUG-47373

SPARQL query continues parallel work beyond the end of query execution

Some SPARQL queries continue needless work in parallel threads beyond the end of query execution.

all SQL BUG-47635

TDE template validation uses namespaces declared outside the template itself.

An invalid template can pass validation because tde:validate() uses namespaces declared in surrounding XQuery code and does not reject invalid templates where the namespace declaration is missing from the template itself.

all adminGUI BUG-47419

Admin User Interface: Failure modifying geospatial path region index

Modifying geospatial path region indexes through the admin User Interface might incorrectly flag two different geo path region indexes as identical. The admin console would show the following warning: "Invalid input: Two or more geospatial region indexes are identical." When the 2 paths contain white spaces, the path expressions are incorrectly tokenized and could be considered identical if they have matching tokens. For example the following two paths might be considered identical: path1 = /a/b/box[@attr1 = "1"] path2 = /a/b/box[@attr1 = "2"]

all Backup/Restore BUG-47391

Elastic Backup - Restore backup Forest list incorrect

Elastic Backup - Admin UI Restore backup's Forest list may contains forests which are no longer attached to the database

all JavaScript BUG-48405

Segmentation Fault: valueOf on empty sequence

MarkLogic segmentation fault and restart when valueOf is called on an empty sequence.

all Optic API BUG-47892

converting Optic AST to Optic source code

The Optic API can export a built query to an AST (Abstract Syntax Tree) in JSON format to persist or transport a query as a document. Previously, the AST representation could only be imported to recreate the built query prior to executing it. Now, the toSource() function makes it possible to transform the AST representation into the SJS or XQuery source code representation of the same query. Thus, the toSource() function makes it possible to move an Optic query from a Java or Node.js Optic client routine to an SJS or XQuery enode routine.

all xdmp BUG-48623

SSL XDQP client - recurring "SVC-SOCRECV: Socket receive error: BIO_read" errors

Debug level XDQPClientListener errorlog message "SVC-SOCRECV: Socket receive error: BIO_read ..." followed by an XDQPClientConnection restart. Messages recur until successful connection is achieved.

all Geospatial BUG-48090

geo:geohash-encode throws SVC-EXTIME error

geo:geohash-encode throws SVC-EXTIME error for certain polygons at double precision with minimum tolerance

all search BUG-48336

Synonym scoring with score-simple does not work correctly

Synonym scoring with score-simple does not give the correct results in all cases. Example query: cts:search(/, cts:or-query(( cts:element-word-query(xs:QName("name1"), "example"), cts:element-word-query(xs:QName("name2"), "example") ), "synonym"), "score-simple" )

all Upgrade BUG-48483

Upgrade Error Logging

Upgrade errors not sufficiently exposed in errorlog.

all Geospatial BUG-46875

geo:geohash-encode throws XDMP-BADGEOMETRY error

geo:geohash-encode throws XDMP-BADGEOMETRY error for certain polygons that have edges coincident with edges of the Goehash box

all Geospatial BUG-48020

geo:geohash-encode throws XDMP-BADGEOMETRY error

geo:geohash-encode throws XDMP-BADGEOMETRY error for certain polygons at lower tolerance values

all xdmp BUG-48517

Upgrading from MarkLogic Server 9.0-1 to later release loses language baseline setting

Upgrading from 9.0-1 to a later release omits the language-baseline configuration element from clusters.xml. This will cause clusters to use legacy tokenization and stemming, and in partially upgraded clusters may cause inconsistent tokenization and stemming.

linux(64-bit) adminGUI BUG-47896

Duplicate localnames can be entered for a Word Query Included/Excluded Element

The Admin UI allows the entry of duplicate localnames for a Word Query Included/Excluded Element. As a result of such an entry, a future Configuration Manager import of a configuration that includes the duplicate localnames may be unsuccessful – an error is thrown similar to: Info: Manage: ADMIN-DUPLICATECONFIGITEM: (err:FOER0000) Database resource 'excluded-element-test-db' already contains 'Excluded Element'

all opsdirector BUG-48556

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.

all BUG-47716

Segmentation fault in xdmp::BackupManager::findRemainingBackupForests

Manual forest reassignments, by editing assignments.xml, may lead to segmentation fault in xdmp::BackupManager::findRemainingBackupForests.

all security BUG-48595

Unfiltered fn:subsequence results not concealed by Element Level Security

In certain cases, the return value from a fn:subsequence call in an unfiltered search results are not properly concealed based on protected-path definitions. This does not apply to the first item in the subsequence but does apply to all subsequent items.

all xdmp BUG-48491

Unable to cancel resource consuming queries, query not timing out

Some runaway queries can cause excessive load on the server and don't time out. Cancelling them also doesn't work.

all xdmp BUG-47647

xdmp:validate does not recogine mixed="true" on extended type

When validating a document against a schema holding a complexType with just attributes defined and extended by a complexType with mixed content MarkLogic incorrectly returns a validation error.

all Common API BUG-47651

Attach subdatabase when creating a database via REST Management API

When creating a database, attach a subdatabase by setting the subdatabase property, making sure to supply cluster-name if the database is on a coupled foreign cluster. curl -X POST --anyauth --user $user:$pass --header "Content-Type:application/json" -d'{"database-name": "myNewSuperDatabase","subdatabase": [{ "cluster-name":"myClusterName","database-name": "Documents"}]}' http://${host}:8002/manage/v2/databases

all Upgrade BUG-47690

Upgrade changes app-server rewriter path

If a user's app-server rewriter setting included 'rest-api', the upgrade changed the setting to '/MarkLogic/rest-api/rewriter.xml'.

all Geospatial BUG-47077

The global reindex-fragment-count missing geospatial region reindexing

The reindex fragment count for geospatial region indexes is not included in the global "reindex-fragment-count". The following might not return the correct fragment count if reindexing related to geospatial region indexes is taking place. - xdmp:forest-counts(xdmp:forest("Documents"), ("reindex-fragment-count")) - Admin UI: Database->Documents->Status->Reindexing/Refragmenting State

all SQL BUG-48171

Windows: mlsqlodbc-1.3 and mlsqlodbc-1.1 show same version

mlsqlodbc-1.3 and mlsqlodbc-1.1 show the same version in Control Panel on MS Windows.

all Upgrade BUG-48489

Upgrade to 9.0-3.1 for AS@8001 fails with "XDMP-AS"

Upgrading from any MarkLogic version to 9.0-3.1 fails with "XDMP-AS" for application server at port 8001. The error message can be observed in 8001_ErrorLog.txt.

all SQL BUG-47936

SQL exists followed by correlated subquery

SQL exists followed by correlated subquery returns wrong result

all xdmp BUG-48421

Segmentation fault occurs under some circumstances when XQuery code is profiled

Under certain circumstances code that runs without issue causes a segmentation fault when the profiler is used.

linux(64-bit) xdmp BUG-45899

Forest 'updates-allowed' state inconsistency

Setting a forest's 'updates-allowed' state to 'flash-backup' and then back to 'all' may result in a forest remaining in a 'read-only' state

all Backup/Restore BUG-47187

Elastic backup mapping of incremental backups fails on restore.

Elastic Backup-mapping an incremental backup's forest to a new added forest results in an "XDMP-FORESTRESTOREFAILED: Restore failed for forest : SVC-FILCOPYX: Source file does not exist." error.

all MarkLogic REST API BUG-48257

mime type for single document GET

Prior to 9.0-3, a GET request to the REST API for a single document set the Content-Type header to the mime type configured for the document URI extension in the Admin UI when specified. In 9.0-3, the REST API preferred the first mime type in the Accept header. Now the previous behavior has been restored.

all xdmp BUG-48205

xsl:key not working as expected with parent fragment configured

When using xsl:key() on a xml file with parent fragment setting configured no results are returned, when the parent fragment is deleted the correct results are returned.

all xdmp BUG-48173

Unable to load balance at application level for certain load balancers or proxy servers

In some cases working with batch inserts (over XCC) may cause unexpected results with some load balancers. Load balancers such as HAProxy rely on the SessionID cookie to balance traffic correctly to ensure transactions start and complete on the same transaction. This works fine for mult-statement transactions but for default single statement auto-commit transactions the SessionId cookie is not generated. While not required, as it is expected that a transaction will complete in the same session, some load balancers such as HAProxy do not handle the session closure correctly and the transaction does not always get committed.

all SQL BUG-48549

XDMP-BADCHAR for Tableau queries on timestamp

When Tableau issues queries with timestamp constraints, it uses the ODBC timestamp literal feature causing MarkLogic to raise a parse error.

all SQL BUG-47728

Error running SQL/SPARQL during rolling upgrade from 9.0-1/9.0-2 to 9.0-3

During Rolling upgrade from 9.0-1 to 9.0-3, or from 9.0-2 to 9.0-3, SQL/SPARQL query can run into error. Avoid upgrade 9.0-1/9.0-2 to 9.0-3. Instead, Upgrade from 9.0-1 to 9.0-3.1 or 9.0-4 Upgrade from 9.0-2 to 9.0-3.1 or 9.0-4

all Geospatial BUG-48181

geo:geohash-encode hangs

geo:geohash-encode hangs if a geodesic arc intersects Geohash box North/South edge twice

windows(64-bit) security BUG-47665

ldap-search fails if LDAP user name has accented characters

ldap-search fails with LDAP users having accented characters on Windows

all SQL BUG-46503

Custom SQL query in tableau needs alias

In tableau you can specify a custom SQL query and hard code a SQL statement. The hard-coded SQL query needs alias for aggregate function.

all Scheduled Tasks BUG-47915

A task containing eval/invoke does not expire

A task containing xdmp:eval or xdmp:invoke calls does not expire when its execution takes longer than the request time limit.

all Geospatial BUG-45094

xdmp:forest-status merge size & Geospatial Region Indexes

xdmp:forest-status returns incorrect merge size for Geospatial Region Indexes during forest merge

all Common API BUG-47449

Attach subdatabase via REST Management API

When creating a database, attach a subdatabase by setting the subdatabase property, making sure to supply cluster-name if the database is on a coupled foreign cluster. curl -X POST --anyauth --user $user:$pass --header "Content-Type:application/json" -d'{"database-name": "myNewSuperDatabase","subdatabase": [{ "cluster-name":"myClusterName","database-name": "Documents"}]}' http://${host}:8002/manage/v2/databases

all xdmp BUG-48649

Triple and reverse indexes not counted in stand and forest memory

The memory used by triple and reverse indexes is not counted in stand and forest memory.

all Query Console BUG-47384

QConsole - XDMP-NOSERVER: xdmp:server-name when importing an old workspace

XDMP-NOSERVER: xdmp:server-name when importing an old MarkLogic pre-5.0 workspace.

linux(64-bit) conversion BUG-48191

DHF-ERROR_FILE_CANT_OPEN in xdmp:powerpoint conversion

xdmp:powerpoint-convert, if both "slideBySlide" and "speakerNotes" options are set to true, it may throw DHF-ERROR_FILE_CANT_OPEN error.

all Geospatial BUG-40254

cts:and-not-query with cts:geospatial-region-query operands false negatives

Missing results for cts:and-not-query with cts:geospatial-region-query operands

linux(64-bit) Upgrade BUG-48007

XDMP-CORRUPT: Merge after upgrade to 9.0-3 corrupts on-disk geospatial region indexes

This bug occurs when data is loaded into a geospatial region index in a previous version, and the host is upgraded to 9.0-3. If the on-disk stand containing the index is merged, the resulting index may be corrupted. Queries and subsequent merges may fail with XDMP-CORRUPT errors, or queries may return incorrect results.

all security BUG-47852

Cipher string "!SSLv3" breaks secure XDQP TLS sessions

Coding a cipher string that contains !SSLv3 prevents secure XDQP TLS sessions from working

all XSLT BUG-48329

Segmentation Fault: xsl:with-param with missing name attribute

Executing an XSLT stylesheet that calls a template with an xsl:with-param that has no name attribute will cause a segmentation fault followed by a MarkLogic Server restart.

linux(64-bit) SQL BUG-42902

Scalar subquery

Support added for scalar subqueries.

all security BUG-48085

Non-existing user documents created in LastLogin db with unsuccessful login

Unsuccessful logins are not captured under the correct user in Last Login database

all security BUG-48264

User with security role cannot read protected-paths created by different user with same role

A user with the security role can create protected-paths, which are stored as documents in the Security database. Those documents are created with the default permissions of the user. Based on what the default permissions are, another user with the security role might not be able to read those documents, hence not able to see the protected-paths.

all Geospatial BUG-42941

Complex polygon insert performance

In some circumstances, inserting documents with complex polygons are not performant.

all xdmp BUG-48335

Creating a malformed range index missing via admin API may not raise an error.

If a range-element-index is created via the admin:database-add-range-element-index function with a missing collation element, the index is created without error, but any attempt to later update the index from the Admin UI causes an 500 Internal Server error.

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