intermine icon indicating copy to clipboard operation
intermine copied to clipboard

Path Query API request with format=jsonobjects returns partial results and 500 most of the time

Open sammyjava opened this issue 3 years ago • 0 comments

The following script returns a 500 and partial JSON response about 90% of the time:

#!/bin/sh

URL=https://mines.legumeinfo.org/beanmine/service/query/results

QUERY='<query model="genomic" view="ExpressionValue.value ExpressionValue.feature.id ExpressionValue.feature.secondaryIdentifier ExpressionValue.sample.name ExpressionValue.sample.num" sortOrder="ExpressionValue.feature.secondaryIdentifier ASC ExpressionValue.sample.num ASC" ><constraint path="ExpressionValue.feature.id" op="ONE OF" ><value>58145958</value><value>58259346</value><value>58261758</value><value>58289868</value><value>58316944</value><value>58318968</value><value>58348641</value><value>58353289</value><value>58381186</value><value>58427951</value><value>58440337</value><value>58457449</value><value>58461130</value><value>58517392</value><value>58552196</value><value>58559050</value></constraint></query>'

curl --data-urlencode query="$QUERY" -d format=jsonobjects $URL
echo ""

However, if you remove -d format=jsonobjects it returns the full results table 100% of the time.

Therefore I conclude that there is some sort of timeout occurring in the format=jsonobjects mode that is truncating the response with a 500. I believe I have the Tomcat keepAlive and connectionTimeout parameters high enough (one minute) to not be relevant.

This is a breaking bug for Bluegenes tools that use this query, namely an expression heatmap on a gene list page.

sammyjava avatar Aug 09 '22 16:08 sammyjava