Activity stream time-out cancellation causes future requests to return blank results

Description

When an Activity Stream times-out (which it frequently does on any large instance) from the 10 second limit, it can cause other Activity Stream requests to return empty results.

This is pretty easy to reproduce, even on JAC but you may wish to test against something else. The URL examples I've given refer to JAC projects, and users.

Go to a user's profile for example. The activity stream will try and fetch this stream (I've added a very short timeout in the URL to simulate the cancellation effect):

https://xxx.atlassian.com/plugins/servlet/streams?maxResults=10&relativeLinks=true&streams=user+IS+davidrr&timeout=10

You should get a blank page because it timed out.

Immediately request another Activity Stream via another browser tab...for example, a project's activity stream which will call this:

https://xxx.atlassian.com/plugins/servlet/streams?maxResults=10&relativeLinks=true&streams=key+IS+JSD&providers=issues+thirdparty+dvcs-streams-provider

The results will be blank. This does eventually recover on it's own.

In the logs, you may see something like this:
[atlassian.streams.internal.StreamsCompletionService] Registering failure for stream provider JIRA due to cancellation (timeout)

The impact of this is pretty bad on a large instance. With user dashboards fetching activity streams (with auto-refresh no less), users hitting profiles, we're seeing blank activity streams a lot of the time.

The workarounds for increasing the Activity Stream timout do not work in all cases.

Environment

None

Testing Notes

None

Assignee

Unassigned

Reporter

David Yu

Labels

None

Add-on Type

None

Team

None

CC

None

Risk factor

None

QA Kickoff Status

None

QA Demo Status

None

Priority

Major
Configure