1

We are using MarkLogic-8 with a setup of three nodes (two Forests on each). We have an HTTP App-Server with request timeout and session timeout set to 30 mins. An incoming request through this App-Server has been running for over 8 hours before it was cancelled manually. Upon looking up the logs we found that this request was retried for 44 times with XDMP-XDQPNOSESSION entries.

2020-08-04 17:36:13.879 Debug: Retrying xdmp:eval 7547772792649456554 Update 41 because XDMP-XDQPNOSESSION: No XDQP session, client=xx.xxx.x.xxx, request=probeByHash, session=14574561708811728252, target=16982022523143157068

Now the question is - why this request keeps getting retried instead of getting timed out (in 30 mins)? We had other requests running in parallel with this one, all (except this) completed successfully without any such error/scenario.

Ashish Patil
  • 150
  • 9
  • 1
    If you have a 30 minute timeout, then that request should not have been running for 8 hours. Are there any other indications of issues/trouble (XDQP Restarts, host restart, error, lots of deadlocks, etc)? Can you post the code from the eval? What version of MarkLogic 8 (which is EOL) are you running? Is upgrading to 9 or 10 an option? There may be bug fixes and other enhancements to avoid "stuck" transactions. – Mads Hansen Aug 06 '20 at 15:09
  • Thanks for replying. There are no XDQP restart, host restart messages, a few deadlocks but those involve different docs from the ones the concerned request is working upon. Can't share the code but can give you some insights - code fetches huge numbers of docs from database (~93k) applies XSLT on each doc; creates zip of these XSLT transformed docs and saves in database (xdmp:invoke-function is used while fetching the docs in query mode to avoid locks on documents). We are using MarkLogic version - 8.0-7. – Ashish Patil Aug 07 '20 at 06:18
  • 1
    It's strange that it retried over 40 times and ran so long. Maybe somehow escaping limits and checks that would have killed it. I recall some bug fixes in 8 to kill such runaway threads that get "stuck". You might consider opening a Support case, but MarkLogic 8 is EOL so they will likely tell you to upgrade. Even a newer version of 8 might be helpful, if you aren't ready to move to 9 or 10 yet. – Mads Hansen Aug 08 '20 at 20:35

0 Answers0