Issues fixed in MarkLogic Server 9.0-1
- Last Updated: April 6, 2026
- 12 minute read
- MarkLogic Server
- Documentation
Released: May 8, 2017
The following issues have been addressed in this release:
| Platform | Component | Bug ID | Details |
|---|---|---|---|
| all | Semantics | BUG-45279 | In-Memory Triple Index larger than configured The In-Memory Triple Index consumes twice as much memory than configured. |
| all | JSON | BUG-32827 | Embedded triple in JSON does not allow extra metadata The embedded triple in the following JSON document is not indexed due to the extra metadata ("foo":"bar"): { "my": "data", "triple":{ "subject": "http://example.org/ns/dir/js/", "predicate": "http://xmlns.com/foaf/0.1/firstname/", "object": { "value" : "50", "datatype" : "http://www.w3.org/2001/XMLSchema#integer"}, "foo":"bar" } } |
| linux(64-bit) | conversion | BUG-36045 | MHT file xdmp:document-filter missing from, subject, and date metadata In some circumstances, output of xdmp:document-filter on MHT files might not include from, subject, and date metadata |
| all | Search API | BUG-44439 | Queries against any fragment in the Search API Previous, the Search API could specify content documents or property fragments but not either as the query target in <facet-option>, <suggestion-option>, <geo-facet-option>, and <values-option>. Now, these options can specify "any" to match either content documents or property fragments. |
| all | search | BUG-45103 | Incorrect co-occurrences when proximity=0 If documents have nested elements with the same name, and empty elements, and those elements are targets in a co-occurrence, co-occurrences with proximity=0 may fail to report some co-occurrences that it should. |
| all | MarkLogic REST API | BUG-43603 | Content not returned for deployed Application Builder applications The Application Builder deploys applications that can provide content. The relative path of the uris for such requests starts with /content/ Previous, requests for the content of deployed applications were not retrieving the content. Now, such requests retrieve the content. |
| EC2 | Utility Computing | BUG-40586 | mlcmd leave-cluster cleanup of “update-hosts” crontab and corresponding entry in “SDB” “update-hosts” crontab entry and the corresponding entry in “SDB” does not get cleaned up for a host in a cluster after running mlcmd leave-cluster command on that particular host. |
| all | Query Console | BUG-32656 | Query Console xdmp.arrayValues with a null inside an array arg throws TYPEERROR JS Query ======= xdmp.arrayValues(["a", null, false]); Result ===== [javascript] TypeError: Cannot read property 'toLowerCase' of undefined |
| all | search | BUG-44125 | Reverse query false positive against a near query nested as only child of parent near query If a query consists of a near query containing a single subquery, itself a near query, a reverse query may produce a false positive match to this query when run unfiltered. |
| all | mlcp | BUG-35643 | mlcp -fastload does not work if a forest is failed over If a forest is failed over (i.e. a configured replica forest is an acting master), then an MLCP job that uses the -fastload option will fail to complete. MLCP error returned will likely be ADMIN-DATABASEFORESTNOTATTACHED |
| all | mlcp | BUG-45075 | MLCP throwing NullPointerException and ArrayIndexOutOfBoundsException when importing documents from a forest backup. MLCP throwing NullPointerException and ArrayIndexOutOfBoundsException when importing documents from a forest backup. |
| all | search | BUG-45539 | Relevance trace incorrect for cts:or-query with "synonym" option The relevance trace information does not match with the actual score of the document. |
| all | Search API | BUG-32446 | extraction from documents in a single response In the Search API, query options can specify XPaths for JSON properties or XML elements to extract from documents. Previously, the content extracted from each document was always returned as a separate document. Thus, in the REST API, extracted documents could only be retrieved as a multipart/mixed response. Now, in addition, the content extracted from a document can be returned as part of a single search response. The extracted content appears in the result for the document similar to snippets. |
| all | search | BUG-44488 | Performance: Value queries always use positions, even when unnecessary When values positions are enabled, value queries will perform position-sensitive index resolution always, regardless of whether positions are needed, slowing down index resolution. This does not effect the results. |
| all | MarkLogic REST API | BUG-44671 | HTTP specifications conformance of Multipart content The generation of Multipart content by the /v1/eval and /v1/invoke endpoints may generate non-compliant multipart bodies. The parsing of multipart content by xdmp:multipart-decode() may not correctly parse all compliant multipart bodies. |
| all | search | BUG-31967 | Field-range-index values from custom-tokenization fields don't ignore "remove" characters during searches Field-range-index values from custom-tokenization fields don't ignore "remove" characters during searches, causing search results possibly with false positives and false negatives. |
| all | mlcp | BUG-32810 | mlcp COPY ArrayIndexOutOfBounds mlcp COPY fails with ArrayIndexOutOfBounds exception when database has no forest |
| all | security | BUG-32774 | Using Kerberos Authentication on port 8000 may fail repeatedly with authentication errors When using Kerberos Authentication on port 8000, for example accessing Query Console in Internet Explorer in a Windows Domain authentication with Active Directory for authentication can repeatedly present the Authorization dialog in the browser. |
| all | xdmp | BUG-45508 | XDMP-TOOMANYPOSITIONS thrown when too-many-positions-error not set Under some circumstances, XDMP-TOOMANYPOSITIONS error is thrown even though the option too-many-positions-error has not been set. This may occur in queries involving synonym queries, cached range queries, or registered queries. |
| all | MarkLogic REST API | BUG-44887 | REST API servers no longer enable last modified by default MarkLogic can maintain the last modified date for a document in the properties document. A POST request to /v1/rest-apis on port 8002 creates a REST API server. Previously, such requests enabled automatic maintenance of the last modified date by default. That approach, however, creates a properties fragment for each document, which is more expensive and may not be desired. Now, the request does not enable the last modified date by default for new REST API servers. (Existing servers are unaffected.) When desired, use the Admin UI or API to enable the last modified date explicitly for new REST API servers. |
| all | Semantics | BUG-45590 | ingestion of quads over REST is too slow on /v1/graphs There is significant improvement in the speed of quads ingestion via PUT or POST on /v1/graphs. |
| all | Search API | BUG-44642 | multiple collections parameters have AND instead of OR Note: This bug was a previous ambiguity, and fixing it has led to a change in behavior from 8 to 9. There is a docs bug for updating documentation https://bugtrack.marklogic.com/44305 I'm not sure how it should be documented here. |
| all | security | BUG-45266 | While importing a signed certificate, the file contained the signed certificate can file can have multiple (chained) certificates. It is now possible to import a signed certificate signed by an intermediate certificate and the imported file can contain the signed certificate can have the root certificate and all the intermediate certificates. |
| all | MarkLogic REST API | BUG-27654 | Multi-request transactions in REST API Requests in the REST API can take a parameter to execute in an open transaction, operating on documents added in the transaction and ignoring documents deleted in the transaction. Previously, the alerting, suggest, and graph explore endpoints did not support the txid parameter. These endpoints now support the parameter. |
| all | mlcp | BUG-45164 | mlcp StringIndexOutOfBoundsException StringIndexOutOfBoundsException when mlcp extracts documents with properties |
| all | BUG-44650 | Nested elements may cause element queries containing nested triple queries to produce false negatives Under some conditions documents with nested elements with the same name may fail to match complex element queries that contain triple queries as well as other element-position-sensitive subqueries (such as element-value queries). Example: cts:element-query(xs:QName("parent"), cts:and-query(( cts:triple-range-query((), sem:iri("pred1"), "example", "=", ()), cts:element-value-query(xs:QName("child1"), "value1"), cts:element-value-query(xs:QName("child2"), "value2") )) ) |
|
| linux(64-bit) | security | BUG-33092 | ldap group name with special characters does not mapped to any roles For external authorization, ldap group name with special characters does not mapped to any roles |
| linux(64-bit) | Monitoring Dashboard | BUG-42293 | Monitoring History shows zero for "anon" memory use on Linux. The Monitoring History page incorrectly reports "0" for anonymous ('anon') memory use on linux. |
| all | mlcp | BUG-44652 | MLCP duplicate documents from same row of a CSV file When -split_input and -generate_uri are used together to ingest delimited_text files with MLCP, duplicate documents are ingested from same row of a CSV file. |
| all | xdmp | BUG-45308 | MarkLogic throws XDMP-NOTXN when the transaction id actually exists. MarkLogic throws XDMP-NOTXN when the transaction id actually exists. This happens in a multi-statement transaction session, where a previous update statement executed through xdmp:eval is rolled back. |
| linux(64-bit) | Config Management | BUG-44870 | Packaging databases with multiple sub-databases Attempting to export a database in Configuration Manager when that database had more than one sub-database would fail. That problem has been corrected. Note that packaging does not attempt to configure sub-databases on package import. |
| all | xdmp | BUG-45064 | fn:analyze-string gives incorrect results, even with the pedantic flag enabled fn:analyze-string will pick the longest matching alternative, not the first matching alternative. This is the default behavior (for performance). Adding the 'p' (pedantic) flag should alter this behavior, but it does not. |
| linux(64-bit) | conversion | BUG-44296 | xdmp:document-filter results garbled characters - Document-filter() for message/rfc822 email document garbles characters on To: and CC: headers for non unicode documents - Multi Byte characters being extracted by xdmp:document-filter from XML file gets garbled |
| all | Common API | BUG-44976 | REST: Creating a database without denoting a schema database To create a database without a schema database omit the schema-database property. |
| all | Config Management | BUG-42370 | Omitting "Fields" on package import caused an import problem When importing a package, unchecking a property is supposed to cause it to be ignored during import. In the special case of the "Fields" property, unchecking it had the effect of deleting all fields on the database. This error has been corrected. |
| all | Common API | BUG-44263 | Create forests without waiting for them to mount To create a forest without waiting for acknowledge it has mounted use the REST Management API by POST on manage/v2/forests?wait-for-forest-to-mount=false |
| all | mlcp | BUG-45532 | mlcp leaks resource if killed through ctrl-C. mlcp leaks resource if killed through ctrl-C. Now if running in local mode, Ctrl+C kills the job and cleans up all resources. If running in distributed mode, Ctrl+C prints a WARN message with the current job state. |
| linux(64-bit) | Semantics | BUG-38116 | SPARQL union server crash Use of some SPARQL union clauses or alternative property path operators ("|") may cause MarkLogic Server to crash. |
| linux(64-bit) | mlcp | BUG-32402 | mlcp copy/export doesn't copy/export property fragments correctly Using mlcp to copy/export doesn't always copy/export permissions, collections, and quality on property fragments |
| all | XCC/Java | BUG-43963 | XCC does not return ELB cookies XCC does not return cookies managed by AWS Elastic Load Balancer so that session affinity doesn't work. |
| all | JSON | BUG-32796 | "Undefined namespace prefix" defining a path range index "Undefined namespace prefix" error when defining a path range index on 'node("foo:bar")'. With 'node("foo:bar")', "foo" is still seen as a namespace prefix. It should be treated as part of a plain string instead. |
| all | MarkLogic REST API | BUG-32545 | incorrect JSON reading preferred matches or elements in query options The REST API can persist query options in the modules database for the application server. Previously, when reading persisted query options that specified preferred matches or preferred elements for transform-results as JSON, only a single JSON property or XML element was returned even if the query options had multiple elements or properties. Now, query options with multiple JSON properties or XML elements in preferred matches or preferred elements can be correctly as JSON. |
| all | search | BUG-44232 | Highlighting whole document queries in positional context may fail Highlighting involving a query that involves a query that references the whole document (such as cts:collection-query) in an intrinsically positional context (such as cts:near-query or cts:not-in-query) may fail to show some matches. |
| linux(64-bit) | mlcp | BUG-32655 | MLCP ingest of ntriples may result in many deleted fragments MLCP ingest of ntriples creates many deleted fragments in one forest |
| all | XCC/Java | BUG-37535 | Intermittent 2-way SSL on XCC timeout Intermittent and infrequent XCC connection hang / timeout when using 2-way SSL. MarkLogic Server is waiting on Client and it appears the client is waiting on on the server. Problem occurs immediately following the SSL accept being completed on the server side. |
| all | Common API | BUG-43466 | Review logs from all hosts Review and search logs from all hosts from REST Management API manage/v2/logs endpoint. |
| all | security | BUG-33926 | xdmp:user-last-login takes user id but returns current user xdmp:user-last-login has changed to take no parameter. It returns information for the current user. |
| all | Admin API | BUG-32410 | admin:database-reorder-forests performance admin:database-reorder-forests can take up to a few minutes when the database has hundreds of forests. |
| all | Replication | BUG-45076 | Replica forest 'async replicating' post flash-backup If document inserts or updates attempted while master forest is in flash backup mode, the replica forest may get stuck in 'async replicating' state. Restarting forest will not resolve forest state and instead takes the forest into 'wait replication' state. |
| all | Replication | BUG-39968 | Hung Query with update or delete transaction, xdmp:set-session-field() and triggers A race condition may occur when an update or delete transaction contains a call to xdmp:set-session-field() and there are content processing triggers involved in the transaction. This may result in a hung query, requiring MarkLogic Server to be restarted in order to clear. For example: CPF configured on /space/workspace, the following will lead to a race condition let $doc-uri := "/space/workspace/To-Kill-a-Mockingbird.xml" let $_ := xdmp:set-session-field("last-login-updated", fn:true()) return (xdmp:document-delete($doc-uri), fn:concat($doc-uri," deleted")) |
| all | mlcp | BUG-32337 | mlcp reports Exceptions on disabled meta data mlcp copy/export with the following options '-copy_properties="false" -copy_collections="false" -copy_permissions="false" -copy_quality="false"' (disable all meta data) results in NullPointerException. |
| all | MarkLogic REST API | BUG-44132 | Document URIs with semicolons for bulk write in the REST API The REST API supports bulk write requests providing documents as a multipart/mixed payload. Each part specifies the database URI for the document to be written using a Content-Disposition header. Previously, the REST API threw an error when the URI contained a semicolon character. Now, the document uri can contain a semicolon in a quoted Content-Disposition header. |
| all | mlcp | BUG-44629 | MLCP error message for importing RDF Improved error message for MLCP importing RDF with syntax error |
| all | search | BUG-44313 | Performance: Rooted paths with a wildcard followed by an attribute step result in excess filtering for fragmented documents A path of the form /*/@attr will filter all fragments, not just the fragment containing the root element. |
| all | Admin API | BUG-34845 | Deleting a user with admin role fails with SEC-LASTADMIN Delete a user assigned the admin role indirectly fails with the error: "SEC-LASTADMIN: (err:FOER0000) Cannot delete last admin user". This problem happens when there is only one admin user and a secondary user that has inherited the admin role. |
| all | JavaScript | BUG-38890 | Server crashes when executing JavaScript using let in case blocks. MarkLogic Server crashes when executing JavaScript program using let keyword in case blocks. |
| linux(64-bit) | Semantics | BUG-44419 | Segmentation fault running some SPARQL query with EXISTS clause Segmentation fault running some SPARQL query with EXISTS clause |
| all | Geospatial | BUG-45481 | Memory management performance Memory management performance improvement for highly concurrent systems |
| all | search | BUG-45660 | Complex reverse queries during heavy insert load may cause server hang This bug may occur when running an and- or or-query that involves multiple reverse-queries, while simultaneously attempting to insert, update, or reindex documents that contain serialized queries. In this situation, it is possible that the server will hang and neither the reverse-query nor the insert will succeed. Once in this state the reverse index is deadlocked and no inserts or reverse queries can proceed. The server must be restarted to resolve the deadlock. |
| all | MarkLogic REST API | BUG-35833 | default forests for modules database of REST API The modules database typically only contains enough resources to require a single forest. Previously, the /v1/rest-apis endpoint on port 8002 initialized a modules database with one forest on each host. Now, the endpoint initializes the modules database with a single forest on the host receiving the request. If it is necessary to create additional forests for the modules database, use the Admin UI or API. |
| all | MarkLogic REST API | BUG-32777 | rest-extension-user role required to read query options The rest-extension-user role is required to execute extensions in the modules database. Previously, a user also had to have the rest-extension-user role or a role inheriting the rest-extension-user role (such as the rest-reader role) to read query options persisted in the modules database using the REST API including when querying with persisted query options . Now, a role that has the rest-reader privilege is sufficient to read query options (consistent with other rest-reader operations). |
| all | mlcp | BUG-44604 | Extracting json doc with Japanese content using mlcp Exception occurs while extracting json doc with Japanese content using mlcp |
| all | documentation | BUG-45554 | mlcp leaks resource if killed through ctrl-C. mlcp leaks resource if killed through ctrl-C. Now if running in local mode, Ctrl+C kills the job and cleans up all resources. If running in distributed mode, Ctrl+C prints a WARN message with the current job state. |
| all | JSON | BUG-32891 | Embedded triples in JSON not reindexed Embedded triples in a JSON document are not reindexed if "triple index" was turned on after the insert. |
| all | search | BUG-32461 | cts:element-word-query with more than two element names may miss results A cts:element-word-query with more than two element element names may incorrectly miss results. |
| all | adminGUI | BUG-42605 | Importing signed Certificate not matching private key of template should generate Error on Admin GUI Importing signed Certificate in incorrect template, which does not match the existing private keys, does Not Generate any Error on Admin GUI and fails silently. |
| all | Common API | BUG-41450 | Monitoring cache status using REST Management API host status view Retrieve cache status information using the REST Management API host status view (manage/v2/hosts/{id|name}?view=status). |
| all | mlcp | BUG-45491 | Connection timeout, mlcp resources leak mlcp leaks resources when connection times out and thread_count_per_split > 1. |
| all | xdmp | BUG-32394 | Update does not rebalance documents correctly with respect to range assignment policies With the range assignment policy, when the partition key in a document is updated, the rebalancer doesn't move the document based on the new value of the key until the deleted fragment is merged away. |
| all | xdmp | BUG-42363 | Metadata text from .eml garbled by xdmp:document-filter Metadata text from .eml file gets garbled by xdmp:document-filter |
| all | Semantics | BUG-32823 | application/x-turtle content type on turtle ingest over REST Cannot use application/x-turtle content type on turtle ingest over REST |
| all | search | BUG-40109 | Wildcard search does not take into account field specific index settings. Wildcard search only considers database index settings and ignores field specific index settings such as three-character indexes and trailing wildcard indexes. |
| all | JavaScript | BUG-45602 | xdmp.validate in JavaScript does not return anything xdmp.validate should return a report of any validation errors, but it does not. |
| all | conversion | BUG-44297 | .eml characters garbled by xdmp:document-filter In some circumstances, xdmp:document-filter will produce incorrect results for .eml files |