test for out of memory problem with complex glob#533
Closed
danez wants to merge 1 commit intoisaacs:mainfrom
Closed
test for out of memory problem with complex glob#533danez wants to merge 1 commit intoisaacs:mainfrom
danez wants to merge 1 commit intoisaacs:mainfrom
Conversation
Owner
|
Hah, yeah, css is just close enough to being a valid glob pattern that I imagine it sends the parsing into a bit of a tailspin. I'll take a look, my first guess is that either it's just too long to reasonably handle, or it's resulting in some ReDOS-ish patterns somehow. |
Owner
|
The fact that fast-glob doesn't error on it makes me think it's down to the parser, since node-glob does a lot more up front optimization. Might be a good idea to look into more of a parse-on-demand approach like fast glob uses, but there are some correctness edge cases that do require consuming and validating the whole pattern up front unfortunately. |
|
Hey @isaacs is there any update on this ? |
mayoubm1
approved these changes
Dec 30, 2025
mayoubm1
approved these changes
Dec 30, 2025
mayoubm1
approved these changes
Dec 30, 2025
scutuatua-crypto
approved these changes
Jan 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I was running into an out-of-memory problem with one of our tools and traced it back to node-glob.
The problem arises when the glob is extremely complex or potentially invalid. I know this is a pretty heavy edge case and the glob in the test is CSS and not a glob :) but I was wondering if there is something that can be done about this and if the test might help to debug this.
This also only really happens if the folder where the glob is executed against is big. That is why I set it to the repo root in the test. In the fixtures directory it usually finishes after 10 to 15 seconds
Side note: fast-glob handles this without a problem and super fast. (obviously does not match anything)