Repository navigation
Commit 085f9f6
authored
fix(patch): stop a workdir cleanup race from masking update errors (#9798)
`npm patch update` builds a throwaway git repo in a temp dir to rebase
the existing patch, then removes it. Two problems made that removal
flaky:
Since git 2.48, `maintenance.autoDetach` defaults to true, so `git
commit` detaches `git maintenance run --auto` and returns while that
background process is still writing under `.git/objects/pack`. Removing
the workdir then races it and fails with `ENOTEMPTY`.
Both cleanup sites removed the workdir with an unguarded `await
rm(...)`, so that failure replaced the command's real error, a
`EPATCHBASE` rebase failure surfaced as `ENOTEMPTY`, and on the success
path a cleanup failure would have failed an otherwise-complete update.
The throwaway repo's git invocations now pass `-c gc.auto=0 -c
maintenance.auto=false` so git never spawns background maintenance, and
both cleanup sites go through a helper that retries the removal and
never throws.
## References
Reported in #9793 (comment)
as an unrelated CI failure.1 parent 52f3093 commit 085f9f6
2 files changed
Lines changed: 73 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
408 | 408 | | |
409 | 409 | | |
410 | 410 | | |
411 | | - | |
| 411 | + | |
412 | 412 | | |
413 | 413 | | |
414 | 414 | | |
| |||
561 | 561 | | |
562 | 562 | | |
563 | 563 | | |
564 | | - | |
| 564 | + | |
565 | 565 | | |
566 | 566 | | |
567 | 567 | | |
568 | 568 | | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
569 | 579 | | |
570 | | - | |
| 580 | + | |
| 581 | + | |
571 | 582 | | |
572 | 583 | | |
573 | 584 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
909 | 910 | | |
910 | 911 | | |
911 | 912 | | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
912 | 971 | | |
913 | 972 | | |
914 | 973 | | |
| |||
0 commit comments