Why do I sometimes get HTTP 410 GONE when querying with the public /views OSLC API?
We have observed that sometimes when we execute a /views?oslc.query=true query it comes back with an HTTP 410 GONE response. This seems to happen intermittently and the exact same query, executed from a simple REST client or from within our app may succeed on subsequent requests.
We don't have any stats but anecdotally this error seems to happen more frequently when there are many concurrent tests running against the same test RRC instance. These tests are constantly creating, testing, and deleting artifacts thats may be in the scope of the failing queries.
Our development environment runs many integration tests in parallel across many RRC versions and we've observed this error in all versions from 4.1 to 5.0 M4.
One theory is that internally RRC is executing the search and then subsequently checking that each result still exists. If parallel requests deleted hits half-way through query result processing... maybe that would cause a 410 GONE?
|
Accepted answer
Hi James,
Your assumption is very much correct. HTTP 410 GONE is simply stating that the artifact no longer exists. If we were to see this post upgrade, or in a scenario where deletion of artifacts was not occurring I'd be more worried. The result set you're running against simply needs to be refreshed for a re-try, but I appreciate if there are many tests running and deleting artifacts, there is invariably going to be occasions where this will still occur. If you run a retry on any action that receives this, or note the rm.log for errors relating to unable to retrieve artifacts then we can probably see more easily whether there is anything more sinister going on. However, for now I think the error and scenario fit adequately. Please let me know if you need any further information. I'd be particularly interested to note what is in your rm.log at the time Kind regards, Paul James Kennedy selected this answer as the correct answer
Comments
James Kennedy
commented Jul 11 '14, 1:40 p.m.
Wouldn't an HTTP 409 "Conflict", 503 "Service Unavailable" or some other response make more sense for a query operation? 410 GONE is for when a single specific resource targeted by the request is no longer available. |
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.