Conversation
The code in path_resolver.c that replaces forward slashes with backslashes on Windows did not work. It modified a chunk of memory immediately following the memory it was meant to update. This was leading to crashes on Windows in the Node.js test suite ~1-2% of the time. This commit resets the pointer to the correct location for the calculations. Side note: this logic was broken and the slashes weren't actually being updated, but the tests were still passing on Windows. This logic might not really be needed after all?
addaleax
approved these changes
May 16, 2020
Member
addaleax
left a comment
There was a problem hiding this comment.
Almost all Windows APIs happily accept / as well as \, so yes, I guess it’s possible that this isn’t really needed? I guess the question is more whether paths that are processed this way end up being returned to WASM code and whether that code has specific expectations on the slashes?
Collaborator
Author
|
This is related to host paths only. WASM, AFAIK, should only be dealing in Unix style paths, and the paths here shouldn't be exposed to WASM at any point. |
Merged
Collaborator
Author
|
@addaleax do you have any preference on landing this as is vs. removing the path translation? |
Collaborator
Author
|
I'm going to land this as is since the problem seems to be resolved. If it ends up causing any problems in the future it's easy enough to remove. |
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.
The code in
path_resolver.cthat replaces forward slashes withbackslashes on Windows did not work. It modified a chunk of
memory immediately following the memory it was meant to update.
This was leading to crashes on Windows in the Node.js test
suite ~1-2% of the time. This commit resets the pointer to the
correct location for the calculations.
Side note: this logic was broken and the slashes weren't actually
being updated, but the tests were still passing on Windows. This
logic might not really be needed after all?
Node.js stress test (4,000 runs spread across 4 windows machines): https://ci.nodejs.org/view/Stress/job/node-stress-single-test/73/ ✔️
Also resolves: nodejs/node#33403