Regarding the bug fix in https://github.com/druid-io/druid/pull/2480 -
I had noted in the pull request that we were still observing the issue in 0.9.1.1.
We were observing the looping/cycling behavior in our integration tests. It turns out that this was an artifact of how these tests were set up. In our integration tests, we only start up a single historical node along with a broker (and zookeeper), then we were querying the historical node directly, thinking that since there was only one node, it would be okay to bypass the broker. But these queries still showed the looping/cycling behavior (and made our tests failed). Eventually we figured out that if we pointed the tests at the broker instead, we saw the desired behavior - no loops.
Although it might not be recommended to query historicals directly, as long as it is allowed I would consider this to be a bug, although a low priority one since you can always work around it by querying the broker. Should I open a new defect for it?