AggregationSpout does not release IsInQuery boolean sometimes
See original GitHub issueFirst remark: I haven’t identified the cause of this issue, but I think it could still be good for others to be aware of it, therefore I’m opening this issue.
Sometimes my AggregationSpout
gets stuck doing nothing because the isInQuery
boolean is never reset to false
. I suppose this can happen when somehow the onSuccess()
and onFailure()
methods are not called. Currently I’m considering adding in functionality to reset the isInQuery
boolean after a certain amount of time.
Maybe others have encountered this issue as well and have a nicer solution, that would be great to know. I will update this ticket in case I find out more.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:6 (4 by maintainers)
Top Results From Across the Web
Releases · DigitalPebble/storm-crawler - GitHub
In a nutshell. various dependency upgrades (JSoup, CrawlerCommons, Tika, Elasticsearch); Java 11; bugfix AggregationSpout does not release IsInQuery boolean ...
Read more >Expressions - Drift
Expressions are used in all kinds of situations. For instance, where expects an expression that returns a boolean. In most cases, you're writing...
Read more >Boolean short circuiting is not guaranteed - Morning Coffee
Last week I was debugging a weird bug in one of our services. In the logs we saw an SQL error “repetition-operator operand...
Read more >where Search Operator - Sumo Logic Docs
The where operator allows you to filter results based on a boolean expression. For example, using where with the boolean operator isValidIP: Filters...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Hi @jnioche,
We may have found the root cause of this. The issue seems to be with the
onFailure()
methods in Hybridspout and AggregationSpout. TheonFailure()
method inAggregationSpout
callsmarkQueryReceivedNow()
, but the one inHybridSpout
doesn’t .We are using a variant of
Hybridspout
. Failures are always handled by theonFailure()
method in that child class, even though the query or response that is causing the failure is from the parentAggregationSpout
class.onResponse()
decides between parent/child handling by checking the response properties. Ideally, we’d do something similar inonFailure()
, but I don’t think we have the information there to make that decision.In our variants of the Hybridspout we have solved it by removing the
onFailure()
override our variant ofHybridSpout
to make sure we always release isInQuery. This of course introduces the reverse issue of releasing too quickly if the failure comes from a single queue .hi @thijswesterveld, I have just pushed a commit which should solve the problem. We will now use a separate listener to handle the results for specific queues and will let the super class deal with onFailure(), which I think is a lot cleaner. Would be great if you could give it a try. Feel free to reopen this issue if necessary. Thanks again for your reporting it in the first place and the detective work to get to the bottom of the problem.