Issues fixed in MarkLogic Server 9.0-2
- Last Updated: April 6, 2026
- 11 minute read
- MarkLogic Server
- Documentation
Released: July 10, 2017
The following issues have been addressed in this release:
| Platform | Component | Bug ID | Details |
|---|---|---|---|
| all | xdmp | BUG-45529 | Inaccurate reindexing count for geospatial indexes in xdmp:forest-counts() xdmp:forest-counts() reports incorrect reindex-fragment-count after reindex for geospatial indexes. |
| linux(64-bit) | xdmp | BUG-45822 | Transaction warning on XCC update mode use When switching to update mode, XCC may give the warning "Warning: Transaction mode change to 3 ignored." |
| all | search | BUG-44484 | Relevance trace incorrect for cts:or-query with "synonym" option The relevance trace information for cts:or-query with "synonym" option does not match with the actual score of the document. |
| all | xdmp | BUG-44486 | Segmentation fault merging triple index Segmentation fault in xdmp::mergeTriples() (ondisktripleindex.cpp:3788). MarkLogic Server will restart automatically. |
| all | security | BUG-46385 | xdmp-ldap-search and external authentication fails if LDAP Search fails chasing a referral. xdmp-ldap-search and external authentication fails if LDAP Search fails chasing a referral. |
| all | SQL | BUG-45871 | sem:sparql-plan() and xdmp:sql-plan() don't show optimized query plan sem:sparql-plan() and xdmp:sql-plan() don't show the optimized query plan |
| all | documentation | BUG-45759 | LDAP Simple bind plaintext warning Prescriptive message required when using simple bind with plaintext LDAP. |
| all | adminGUI | BUG-46387 | Admin UI: XDBC server configuration displays incorrect coordinate system and collation The XDBC app server configuration page may display incorrect coordinate system or collation in the drop-down menu. The correct value is displayed in the text box. |
| all | Query Console | BUG-45834 | Improved Query Console Performance for multiple users. Under certain conditions, heavy, simultaneous, use of Query Console by multiple users caused Query Console to be slow and unresponsive. |
| all | mlcp | BUG-45439 | mlcp NullPointerException importing invalid archives With thread_count more than 1, mlcp throws NullPointerExceptions while importing invalid archives. |
| all | xdmp | BUG-46175 | Server fails to start reporting SVC-SOCCREAT error MarkLogic Server fails during initial startup reporting: 'Emergency: Initialization: SVC-SOCCREAT: Socket creation error: socket: Address family not supported by protocol.' |
| all | XQuery | BUG-46321 | format-number crash Calls to fn:format-number can cause MarkLogic to crash and restart. |
| linux(64-bit) | xdmp | BUG-46500 | Segmentation fault in xdmp::rollback Segmentation fault in xdmp::rollback - running XDQP over SSL. |
| all | adminGUI | BUG-45732 | Admin UI: No [stack] link for http requests In the Admin UI, the [stack] link for debugging an http requests is missing if viewing Admin UI against a node in the cluster other than the one via. which AppServer status is being monitored. |
| all | Geospatial | BUG-38141 | geo:polygon-intersects with "boundaries-excluded" option returns false for two same polygons geo:polygon-intersects with "boundaries-excluded" option returns false for two exactly same polygons. |
| all | MarkLogic REST API | BUG-46105 | combined search with query text and QBE in REST API The REST API supports combined search with query text, a programmatic query, and query options. Previously, the programmatic query could be either a structured search:query or a cts:query. Now, the programmatic query can also be a declared with QBE(Query By Example). |
| all | xdmp | BUG-46499 | Segmentation fault in “pthread_mutex_trylock ()” Segmentation fault in “pthread_mutex_trylock ()”, causing MarkLogic Server to restart. |
| all | conversion | BUG-45516 | CPF JSON document warning CPF document conversion pipeline always incorrectly reports a warning message on JSON documents of the form: "Warning: TaskServer: on-state-enter /oasis/master/user/MST_USER_9999002.json condition failed" |
| all | Tiered Storage | BUG-45520 | ts:forest-migrate allows replica forest on same host as primary ts:forest-migrate API allows replica forest to be moved to the same host as that of its primary forest. |
| all | SQL | BUG-46323 | Expanded tree cache churn Performance degradation over time due to Expanded tree cache churn |
| all | JavaScript | BUG-46502 | JavaScript require function throws XDMP-MODNOTFOUND. JavaScript require function throws XDMP-MODNOTFOUND for an XQuery module when the location URI is relative to the calling module. |
| all | Query Console | BUG-45881 | Query Console: Import workspace not shown with long list of workspaces When the list of workspaces is so long that the menu is pushed off the screen, the list is supposed to resize to fit into the viewable space. The resizing is not correct and cuts off the Import Workspace menu item. |
| all | security | BUG-45518 | Cluster unusable after disabling inter-cluster SSL communication XDQP Cluster unusable if fips is enabled and "xdqp-ssl-allow-tls" is set to false. Admin UI displays XDMP-BAD: Bad SSL_CTX_new error |
| linux(64-bit) | xdmp | BUG-45915 | Tokenizer overrides are lost during an upgrade Configured tokenizer overrides on a field may be lost during the process of upgrading from earlier versions of 8.0. |
| windows(64-bit) | xdmp | BUG-45879 | The 9.0-1 installation on windows https://help.marklogic.com/staff/Tickets/Ticket/View/18659/inbox/-1/-1/-1 I've uninstalled the 8.0-6.3 ML version on the windows server and then have installed the last 9.0-1. When I tried to run the new MarkLogic server I've got the error "The program can't start because api-ms-win-core-timezone-|1-1-0.dll is missing from your computer. Try reinstall the program to fix this problem" https://www.dropbox.com/s/t9g0jgqtkd8ru7t/Screenshot%202017-05-15%2000.06.39.png?dl=0 I reinstalled the 9.0-1 version but the error still was there. Then I rolled back to 8.0-6.3 version. Do you have any assumptions what can be the problem and how I can install the last version? PS The installation on Mac OS went well without any issues. |
| all | xdmp | BUG-45811 | XDMP-NOTXN leaves open transaction. When an XCC request executes nested multi-statement transactions in "query" transaction mode, XDMP_NOTXN exception is thrown on session close and an open transaction is left open on the server. |
| all | Common API | BUG-45775 | Retrieve storage information about Databases from REST Management API Retrieve useful storage information about a database from the REST Management API. ex. http://localhost:8002/manage/v2/databases/Documents?view=forest-storage |
| all | Geospatial | BUG-46506 | Incorrect circle reverse query search results during upgrade Reverse queries with circles return incorrect search results during upgrade and rolling upgrade to MarkLogic 9. |
| all | Semantics | BUG-45917 | Segmentation fault in SPARQL query optimiser A SPARQL Query covering a very large union of items can cause the optimiser to get caught up in trying to evaluate the cost of unions - to the point where a segmentation fault occurs. |
| OS X | Geospatial | BUG-46044 | Geohash or Geospatial Region Query with box throws unexpected XDMP-BADGEOMETRY or XDMP-MEMORY error This issue is triggered when attempting to geohash a box, either by using geo:geohash-encode, using the box in a cts:geospatial-region-query with an ellipsoid coordinate system, or by ingesting a document containing the box into a geospatial region index configured on an ellipsoid coordinate system. For certain boxes, the server will unexpectedly throw an XDMP-BADGEOMETRY or XDMP-MEMORY error. |
| all | Geospatial | BUG-46441 | Incorrect circle geospatial query results during rolling upgrade Searching geospatial queries with circles returns incorrect results during rolling upgrades to MarkLogic 9. |
| all | MarkLogic REST API | BUG-46329 | Merging metadata in the REST API The REST API supports an update-policy of merge-metadata to preserve existing metadata on a document when updating the content for a single document. While this approach is less efficient than providing metadata on write, it can be convenient. In the initial 9.0-1 release, this update-policy was ignored. Now, an update-policy of merge-metadata is supported correctly. |
| windows(64-bit) | MarkLogic REST API | BUG-45099 | proximity option of tuples in REST API The REST and Search APIs supports a request to get tuples. Previously, some of the options for tuples were not exposed through the REST and Search APIs. Now, the REST and Search APIs have added support for the "ordered", "proximity=N", "eager", and "lazy" options. |
| linux(64-bit) | jsearch | BUG-45675 | ordered facet as array in JSearch JSearch supports ordering a facet enumeration by frequency. Previously, a facet enumeration was emitted as a JavaScript object even if the frequency was specified. Because the keys of a JavaScript object have no guaranteed ordering, the frequency ordering was thrown away. Now, the facet enumeration is emitted as a JavaScript array so the ordering is preserved. |
| all | SQL | BUG-44660 | system columns in Optic output The Optic API uses system columns for some kinds of document joins. In the 9.0-1 release, these system columns appeared in the output. Because the system columns have no use after the query has been executed, the system columns are irrelevant noise in the output. Now, the system columns are suppressed in the output. |
| all | Query Console | BUG-39603 | Query Console workspace list not alphabetized The list of workspaces in Query Console is rendered in the default order in which the server retrieves the workspaces from the database. This change alphabetizes the workspaces so that the ordering is consistent. |
| all | Stemming and Tokenization | BUG-46302 | Small memory leak in stemmer There is a small memory leak in the new (BiText) stemmer. |
| all | Replication | BUG-45534 | XDMP-EXPNTREECACHEFULL FlexRep target status When a large number of documents fail to replicate, the FlexRep domain target status page reports an XDMP-EXPNTREECACHEFULL error. The same issue applies to the flexrep:domain-status() API. |
| all | search | BUG-39970 | cts:element-word-query or cts:json-property-word-query have false poisitive matches with "lexicon-expand=prefix-postfix" and certain index settings cts:element-word-query or cts:json-property-word-query have false poisitive matches with "lexicon-expand=prefix-postfix" and certain index settings Example: cts:search(fn:doc(), cts:element-word-query(xs:QName("LINE"),("mar??r*"),"lexicon-expand=prefix-postfix"),"unfiltered") might match documents containing "marker" even if the document didn't contain any element named "LINE" |
| linux(64-bit) | Semantics | BUG-43928 | Large SPARQL Update query fails with memory exhausted SPARQL / SPARQL Update can now parse large sequences of triple patterns more efficiently. |
| all | xdmp | BUG-46488 | Missing path namespace used by a path field can prevent server start When a path namespace is used by a path field and the definition of the namespace is missing from all databases.xml files, the server fails to start with an XDMP-UNBPRFX error. |
| linux(64-bit) | Query Console | BUG-45581 | Query Console: Viewing binary document's properties downloads the binary When clicking on the "properties" link for a binary document in QConsole, it will downloads the binary instead of showing the property/metadata summary view. |
| all | General UI/UX | BUG-45974 | Missing path namespace for path range index prevents server start If path namespaces are missing for path range index prefixes, MarkLogic Server uses successively older configuration files to start, and fails to start if all those files are also missing the prefixes. |
| all | Search API | BUG-45440 | cts:query for values in the Search API and REST API The search:values() function of the Search API is exposed through the /v1/values endpoint of the REST API. The function and endpoint take a constraining query to return values only for the documents matched by the query. Previously, the query could not be a cts:query. Now, the query can be a cts:query for both the search:values() function and the REST API endpoint. |
| all | BUG-46530 | XSLT stylesheet with attribute match pattern produces incorrect result Stylesheets that have templates with attribute match patterns (e.g. match="@example") operate incorrectly. |
|
| all | Query Console | BUG-45980 | QConsole quot; causes browser to hang with "Unresponsive script" popup Within QConsole (set to XQuery Query Type), entering the text quot; hangs the browser. After some time, the popup for "Unresponsive script" appears. If the script is stopped 2-3 times, the query can be deleted by immediately clicking on the trash can (other actions causes the hang to happen again). If not removed, and if the browser is shut down and restarted, when QConsole is opened again - the browser will hang upon login to QConsole until the offending query is removed from the workspace. |
| linux(64-bit) | xdmp | BUG-46027 | fn.subsequence returns wrong result on Linux The following query incorrectly returns null on Linux: fn.subsequence([1,2],1,Number.MAX_VALUE) |
| all | Search API | BUG-45872 | default namespace in cts:query in REST API The REST API accepts a cts:query as part of a combined search. Previously, if the combined search specified the Search API namespace as the default namespace and the XML serialization of a cts:query specified an element name, attribute name, or path without a namespace binding, the namespace would be interpreted as the Search API namespace, causing the match to fail. Now the Search API namespace is only used when explicitly bound and not when the default namespace. |
| all | Encryption at REST | BUG-45799 | Turning off database encryption does not stop encryption Turning off database level encryption does not stop encryption until MarkLogic Server is restarted. |
| all | security | BUG-46180 | Non UTF-8 LDAP Response error LDAP Response that includes non UTF-8 characters results in an HTTP 500 with Error Text SVC-BAD: Bad CodepointIterator::_next |
| all | xdmp | BUG-46498 | Segmentation fault in “XDQPClientQueryPath::registerQuery” Segmentation fault in “XDQPClientQueryPath::registerQuery” causing MarkLogic Server to restart. |
| all | Geospatial | BUG-39301 | incorrect geo:region-contains results geo:region-contains returns incorrect result for a linestring and a point that happens to lie on the linestring. |
| all | Semantics | BUG-46426 | Triple Index merge "Critical: Bad malloc" error In rare circumstances, "Critical: Bad malloc" error occurs during a merge of the triple index. This may occur if a forest contains a large number of triples. |
| all | mlcp | BUG-35872 | 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 | xdmp | BUG-46394 | Field path with boolean constant true() or false() causes server to segfault on startup A field path that uses the constant true() or false() leads to the server segfaulting on startup, causing a repeated restart loop. Example: /root/child[@attr=true()]. |
| EC2 | Utility Computing | BUG-45662 | AWS new regional endpoints Update AWS SDK to incorporate new regional endpoints |
| all | xdmp | BUG-45450 | "Warning: BinaryWriter expired" when renaming binary files If you insert binary files (using WebDAV for example) on a cluster with database replication and rename it you will get: "Warning: BinaryWriter (for JournalArchiving) expired" the renaming of the binary through WebDav essentially creates another binary fragment with the same content. The server finds this out after some writes (the handle is already created by then) and stops using the handle (since an exactly same binary exists in the journal archiving area already). But the code should have immediately released the handle in this case - there is no need to wait for the “garbage collector” to do the job. This issue doesn’t affect correctness of the system (i.e., no data loss) but it does cause the server to hold the file handle for an unnecessarily long period time. |
| all | mlcp | BUG-46110 | Deprecate tolerate_errors option in mlcp In 9.0-2, tolerate_errors is always enabled but without any performance impact. |
| all | xdmp | BUG-45521 | Certain XPaths give incorrect results in the presence of fragment roots XPaths starting with something of the form //*[complex predicate], where the complex predicate involves 'and' or 'or' for example, may give incorrect results in the presences of fragment roots. |
| all | Query Console | BUG-45664 | Query Console: SECURITY-BADREQUEST when port not 8000 When Query Console has been moved from port 8000 to some other port, browsing to port 8000 results in SECURITY-BADREQUEST (err:FOER0000): Your session has been terminated by another login. Refresh Query Console to create a new session. |
| all | search | BUG-45843 | Relevance tracing includes no annotation for range queries with scoring Relevance trace information for range queries does not include annotations for range queries, even if they contribute to score. Example: cts:search(doc(), cts:and-query(( cts:element-range-query(xs:QName("TITLE"),">","People","score-function=linear"), "this" )), "relevance-trace" )!cts:relevance-info(.) |
| all | conversion | BUG-46288 | Excel conversion 3rd party library fails on some types of Excel files Updated the Antenna House (Office2HTML) converter due to security vulnerability (http://www.marklogic.com/security-reporting/security-bulletins/document-conversion/). Unfortunately this update broke excel conversion for some types of the Excel files. |
| all | Semantics | BUG-45914 | ReST n-quad ingestion missing triples ReST n-quad ingestion may result in triples being missed/skipped |
| all | JavaScript | BUG-46292 | x509CertificateExtract/x509CertificateGenerate incorrect when certificate DN has multiple RDNs of same type When a certificate DN has multiple RDNs of the same type, xdmp.x509CertificateExtract may throw XDMP-JSONDUPKEY or cause a server crash. While xdmp.x509CertificateGenerate accepts these multiple RDNs as an array, the certificate generated encodes the whole array as a single string value. Note that those issues apply only to the JavaScript version of these two APIs. |
| all | inxight | BUG-46542 | Overflow in inxight::segmenter causes MarkLogic segmentation fault A very large number (>9700) of contiguous "." characters in a document can cause the inxight tokenizer to segfault. |
| windows(64-bit) | Backup/Restore | BUG-45519 | ‘Restore to time' error time format incorrect The ‘Restore to time' error message specifies an incorrect time format when restoring a backup with Journal Archiving enabled. |
| all | xdmp | BUG-45523 | CPF-LINKINVALID when using REST endpoint for binary document When using the REST documents endpoint for a binary document, the call throws a CPF-LINKINVALID error |
| all | Geospatial | BUG-41305 | geo:polygon-contains ignores "boundaries-excluded" option geo:polygon-contains with the option "boundaries-excluded" returns incorrect result for a point lying on the boundary of the polygon |
| linux(64-bit) | adminGUI | BUG-45916 | Admin UI: Merge blackout “duration” parameter does not display after saved The value entered for the merge blackout duration setting in admin GUI changes after the configuration is saved ('Ok' button clicked) |
| all | search | BUG-45360 | English custom tokenization dictionary incorrect Custom tokenization dictionaries do not function when applied to English or other languages configured to use the "simple" lexer. |
| all | Common API | BUG-46120 | Least remaining space forest Identify forest, attached to a database. which has the least remaining space. Review 'least-remaining-space-forest' from status view. ex. http://localhost:8002/manage/v2/databases/Documents?view=status |
| all | conversion | BUG-44616 | document-filter garbles UTF-8 or SJIS encoded files XML Files with UTF-8 or SJIS encoding gets garbled by xdmp:document-filter |
| all | search | BUG-46617 | Memory pressure from Registered Queries Memory pressure from from many large registered queries may lead to slow system performance. This can occur if there are many large registered queries that are not unregistered when done. When the new "Registered Query Timeout" trace event is enabled, registered queries will time out using the existing module-cache-timeout group configuration option. This can be used to keep many old large registered queries from filling up memory. |