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
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