Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

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?

1 vote


Accepted answer

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

0 votes

Comments

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

Register or log in to post 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 139
× 32
× 18

Question asked: Jul 10 '14, 5:30 p.m.

Question was seen: 4,946 times

Last updated: Jul 11 '14, 1:40 p.m.

Confirmation Cancel Confirm