intermine
intermine copied to clipboard
Path Query API request with format=jsonobjects returns partial results and 500 most of the time
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.