Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
When prolog executing query through the logic
Ask
gRPC query, the prolog predicates are executed in a separate goroutine. In case this goroutine panic we are not able to recover from it, so the #312 introduced a change in the gas consumption handling, making the goroutine stop instead of panic. This works on async parts, but may be problematic on synchronous parts.Description
Since ichiban/prolog#290 released in the v1.1.0 version any panics occurring while executing predicates are recovered and an error is returned back to the interpreter client through the
Solutions.Err()
func. The panic being recovered, this PR adds a check on gas consumption to panic again with theErrorOutOfGas
error letting the gRPCAsk
query handle it.