Andy wrote:
On 31/08/16 09:09, Chris Dollin wrote:
...
(/me not entirely convinced that 'close' is always called for all points where
cancel triggers everywhere)
How could we go about checking that, in a way that
is robust against changes to the codebase? It feels ...
tricky.
(The data bag is only used if ARQ.spillToDiskThreshold
is set and the set `seen` of seen bindings gets bigger
than that size. Our production systems don't use
spill-to-disc anyway.)
Right - but other people may be. We need a fix that works for everyone!
Oh yes, I didn't mean to imply otherwise. But I did experiment
setting the threshold to 1 and checking that the revised code
(requestSubCancel doing nothing) worked as expected.
Which also raises the question: how shall we unit-test this?
Current untested idea is to build a QueryIterDistinct over a
custom QueryIterator that can report whether or not it has
been cancelled, cancel the Distinct, and check the custom
iterator. It feels a bit weak -- it doesn't take any
account of the concurrency of timeouts -- but it might
be enough for now.
Chris
--
"Possibly you're not recalling some of his previous plans." Zoe, /Firefly/
Epimorphics Ltd, http://www.epimorphics.com
Registered address: Court Lodge, 105 High Street, Portishead, Bristol BS20 6PT
Epimorphics Ltd. is a limited company registered in England (number 7016688)