Skip to content

DMSDK has troubles with tiered storage offline #1345

Closed
@chamlin

Description

@chamlin

Version of MarkLogic Java Client API

5.5.3

Version of MarkLogic Server

10.0-9.1

Java version

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

OS and version

ProductName: macOS
ProductVersion: 11.6.5
BuildVersion: 20G527

Input: Some code to illustrate the problem, preferably in a state that can be independently reproduced on our end

See attached App.java in zip

Actual output: What did you observe? What errors did you see? Can you attach the logs? (Java logs, MarkLogic logs)

This works OK and lists the URIs.

If you take a partition offline as

import module namespace ts="http://marklogic.com/xdmp/tieredstorage"
at "/MarkLogic/tieredstorage.xqy";
ts:partition-set-availability(xdmp:database("tiered"),"cold", "online")

Then you get errors as

com.marklogic.client.FailedRequestException: Local message: failed to apply resource at internal/uris: Internal Server Error. Server Message: XDMP-FORESTNID: cts:uris((), ("score-zero", "item-order", "ascending", ...), cts:registered-query(10940043425799836531, ("unfiltered"), 1), xs:double("0"), xs:unsignedLong("6710248215865000275")) -- Specified forest 6710248215865000275 not in database
at com.marklogic.client.impl.OkHttpServices.checkStatus(OkHttpServices.java:4474)
at com.marklogic.client.impl.OkHttpServices.postResource(OkHttpServices.java:3463)
at com.marklogic.client.impl.OkHttpServices.postResource(OkHttpServices.java:3407)
at com.marklogic.client.impl.OkHttpServices.postResource(OkHttpServices.java:3398)
at com.marklogic.client.impl.OkHttpServices.processQuery(OkHttpServices.java:3155)
at com.marklogic.client.impl.OkHttpServices.uris(OkHttpServices.java:3055)
at com.marklogic.client.impl.QueryManagerImpl.uris(QueryManagerImpl.java:169)
at com.marklogic.client.datamovement.impl.QueryBatcherImpl$QueryTask.run(QueryBatcherImpl.java:738)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Threa
Archive.zip
d.java:745)
Archive.zip

and the task never completes

Expected output: What specifically did you expect to happen?

It would be nice if offline forests were skipped, or at least the process would complete and you could ignore the errors for the offline forests.

Alternatives: What else have you tried, actual/expected?

See attached App2.java in zip, with a try at filtering the forests out by name.

This does seem to filter out the named forests, so there are no errors, but it still hangs.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions