Flux is a lightweight scripting language for querying databases (like InfluxDB) and working with data. It's part of InfluxDB 1.7 and 2.0, but can be run independently of those.
Update all loops using self.more in the parser to detect if they get stuck attempting to process the same token multiple times. This has been observed to cause the parser to get into an infinite loop with some erroneus inputs.
The protection code was copied from the parse_array_items_rest and applied everywhere the parser could conceivably get stuck. It is not clear that it is possible to get stuck in all the places that the protection was added.
Checklist
Dear Author :wave:, the following checks should be completed (or explicitly dismissed) before merging.
[x] โ๏ธ Write a PR description, regardless of triviality, to include the value of this PR
[ ] ๐ Reference related issues
[ ] ๐ Test cases are included to exercise the new code
[ ] ๐งช If new packages are being introduced to stdlib, link to Working Group discussion notes and ensure it lands under experimental/
[ ] ๐ If language features are changing, ensure docs/Spec.md has been updated
Dear Reviewer(s) :wave:, you are responsible (among others) for ensuring the completeness and quality of the above before approval.
Update all loops using self.more in the parser to detect if they get stuck attempting to process the same token multiple times. This has been observed to cause the parser to get into an infinite loop with some erroneus inputs.
The protection code was copied from the parse_array_items_rest and applied everywhere the parser could conceivably get stuck. It is not clear that it is possible to get stuck in all the places that the protection was added.
Checklist
Dear Author :wave:, the following checks should be completed (or explicitly dismissed) before merging.
experimental/
docs/Spec.md
has been updatedDear Reviewer(s) :wave:, you are responsible (among others) for ensuring the completeness and quality of the above before approval.