Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove rmDir bad implementation #4441

Merged
merged 1 commit into from Aug 18, 2022
Merged

Remove rmDir bad implementation #4441

merged 1 commit into from Aug 18, 2022

Conversation

dapplion
Copy link
Contributor

Motivation

function rmDir() uses fs.syncStat() to determine the file type. Since this function follows symbolic links it will return the file type of the target instead of the source. So a symbolic link pointing to a directory will cause rmDir() to break out and delete unwanted files.

Description

This function is not used, so remove rmDir bad implementation

@dapplion dapplion requested a review from a team as a code owner August 18, 2022 13:48
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 00483a1 Previous: 9ffdbfa Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.3784 ms/op 2.4179 ms/op 0.98
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 77.346 us/op 87.477 us/op 0.88
BLS verify - blst-native 1.9985 ms/op 2.6841 ms/op 0.74
BLS verifyMultipleSignatures 3 - blst-native 4.3092 ms/op 5.7157 ms/op 0.75
BLS verifyMultipleSignatures 8 - blst-native 9.8711 ms/op 11.658 ms/op 0.85
BLS verifyMultipleSignatures 32 - blst-native 34.703 ms/op 43.537 ms/op 0.80
BLS aggregatePubkeys 32 - blst-native 44.560 us/op 58.647 us/op 0.76
BLS aggregatePubkeys 128 - blst-native 171.52 us/op 228.15 us/op 0.75
getAttestationsForBlock 186.94 ms/op 198.66 ms/op 0.94
isKnown best case - 1 super set check 451.00 ns/op 509.00 ns/op 0.89
isKnown normal case - 2 super set checks 459.00 ns/op 485.00 ns/op 0.95
isKnown worse case - 16 super set checks 449.00 ns/op 493.00 ns/op 0.91
CheckpointStateCache - add get delete 9.7260 us/op 10.967 us/op 0.89
validate gossip signedAggregateAndProof - struct 4.7211 ms/op 6.3082 ms/op 0.75
validate gossip attestation - struct 2.3234 ms/op 3.0692 ms/op 0.76
altair verifyImport mainnet_s3766816:31 5.5462 s/op 5.8872 s/op 0.94
pickEth1Vote - no votes 2.5169 ms/op 2.4676 ms/op 1.02
pickEth1Vote - max votes 26.503 ms/op 25.442 ms/op 1.04
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.578 ms/op 18.061 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 25.523 ms/op 24.884 ms/op 1.03
pickEth1Vote - Eth1Data fastSerialize value x2048 2.0127 ms/op 1.7626 ms/op 1.14
pickEth1Vote - Eth1Data fastSerialize tree x2048 19.329 ms/op 14.945 ms/op 1.29
bytes32 toHexString 1.2990 us/op 1.1770 us/op 1.10
bytes32 Buffer.toString(hex) 856.00 ns/op 829.00 ns/op 1.03
bytes32 Buffer.toString(hex) from Uint8Array 1.0940 us/op 1.1130 us/op 0.98
bytes32 Buffer.toString(hex) + 0x 897.00 ns/op 842.00 ns/op 1.07
Object access 1 prop 0.45600 ns/op 0.42000 ns/op 1.09
Map access 1 prop 0.33300 ns/op 0.34700 ns/op 0.96
Object get x1000 16.458 ns/op 16.300 ns/op 1.01
Map get x1000 0.94200 ns/op 0.96100 ns/op 0.98
Object set x1000 120.11 ns/op 110.68 ns/op 1.09
Map set x1000 78.317 ns/op 79.549 ns/op 0.98
Return object 10000 times 0.42770 ns/op 0.41770 ns/op 1.02
Throw Error 10000 times 6.6639 us/op 7.0861 us/op 0.94
enrSubnets - fastDeserialize 64 bits 3.2040 us/op 3.0500 us/op 1.05
enrSubnets - ssz BitVector 64 bits 845.00 ns/op 851.00 ns/op 0.99
enrSubnets - fastDeserialize 4 bits 459.00 ns/op 414.00 ns/op 1.11
enrSubnets - ssz BitVector 4 bits 811.00 ns/op 805.00 ns/op 1.01
prioritizePeers score -10:0 att 32-0.1 sync 2-0 112.69 us/op 110.11 us/op 1.02
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 146.84 us/op 150.79 us/op 0.97
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 274.39 us/op 267.26 us/op 1.03
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 613.29 us/op 595.53 us/op 1.03
prioritizePeers score 0:0 att 64-1 sync 4-1 524.81 us/op 616.55 us/op 0.85
RateTracker 1000000 limit, 1 obj count per request 205.37 ns/op 215.60 ns/op 0.95
RateTracker 1000000 limit, 2 obj count per request 149.04 ns/op 156.72 ns/op 0.95
RateTracker 1000000 limit, 4 obj count per request 122.84 ns/op 124.74 ns/op 0.98
RateTracker 1000000 limit, 8 obj count per request 123.26 ns/op 116.21 ns/op 1.06
RateTracker with prune 5.4740 us/op 4.9340 us/op 1.11
array of 16000 items push then shift 5.3102 us/op 5.3437 us/op 0.99
LinkedList of 16000 items push then shift 37.529 ns/op 27.548 ns/op 1.36
array of 16000 items push then pop 280.28 ns/op 238.41 ns/op 1.18
LinkedList of 16000 items push then pop 29.092 ns/op 23.173 ns/op 1.26
array of 24000 items push then shift 7.6552 us/op 8.5070 us/op 0.90
LinkedList of 24000 items push then shift 36.940 ns/op 27.000 ns/op 1.37
array of 24000 items push then pop 242.99 ns/op 245.22 ns/op 0.99
LinkedList of 24000 items push then pop 28.967 ns/op 23.171 ns/op 1.25
intersect bitArray bitLen 8 11.826 ns/op 12.434 ns/op 0.95
intersect array and set length 8 207.10 ns/op 185.30 ns/op 1.12
intersect bitArray bitLen 128 68.865 ns/op 72.050 ns/op 0.96
intersect array and set length 128 2.3703 us/op 2.3241 us/op 1.02
Buffer.concat 32 items 2.3850 ns/op 2.2500 ns/op 1.06
pass gossip attestations to forkchoice per slot 7.6847 ms/op 3.5542 ms/op 2.16
computeDeltas 5.8478 ms/op 4.6458 ms/op 1.26
computeProposerBoostScoreFromBalances 853.02 us/op 911.51 us/op 0.94
altair processAttestation - 250000 vs - 7PWei normalcase 5.5373 ms/op 5.1772 ms/op 1.07
altair processAttestation - 250000 vs - 7PWei worstcase 8.8165 ms/op 7.2496 ms/op 1.22
altair processAttestation - setStatus - 1/6 committees join 239.81 us/op 250.75 us/op 0.96
altair processAttestation - setStatus - 1/3 committees join 476.83 us/op 464.37 us/op 1.03
altair processAttestation - setStatus - 1/2 committees join 691.68 us/op 689.55 us/op 1.00
altair processAttestation - setStatus - 2/3 committees join 861.77 us/op 862.84 us/op 1.00
altair processAttestation - setStatus - 4/5 committees join 1.2230 ms/op 1.2213 ms/op 1.00
altair processAttestation - setStatus - 100% committees join 1.4107 ms/op 1.5146 ms/op 0.93
altair processBlock - 250000 vs - 7PWei normalcase 31.581 ms/op 33.641 ms/op 0.94
altair processBlock - 250000 vs - 7PWei normalcase hashState 42.041 ms/op 56.209 ms/op 0.75
altair processBlock - 250000 vs - 7PWei worstcase 104.74 ms/op 115.03 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase hashState 128.72 ms/op 120.96 ms/op 1.06
phase0 processBlock - 250000 vs - 7PWei normalcase 4.6257 ms/op 3.9766 ms/op 1.16
phase0 processBlock - 250000 vs - 7PWei worstcase 52.382 ms/op 63.966 ms/op 0.82
altair processEth1Data - 250000 vs - 7PWei normalcase 1.5075 ms/op 1.4840 ms/op 1.02
Tree 40 250000 create 943.93 ms/op 1.0083 s/op 0.94
Tree 40 250000 get(125000) 372.67 ns/op 326.94 ns/op 1.14
Tree 40 250000 set(125000) 2.7301 us/op 3.0655 us/op 0.89
Tree 40 250000 toArray() 41.561 ms/op 38.649 ms/op 1.08
Tree 40 250000 iterate all - toArray() + loop 40.381 ms/op 39.040 ms/op 1.03
Tree 40 250000 iterate all - get(i) 125.59 ms/op 132.57 ms/op 0.95
MutableVector 250000 create 25.210 ms/op 25.682 ms/op 0.98
MutableVector 250000 get(125000) 15.006 ns/op 13.866 ns/op 1.08
MutableVector 250000 set(125000) 845.28 ns/op 769.61 ns/op 1.10
MutableVector 250000 toArray() 7.5762 ms/op 7.1351 ms/op 1.06
MutableVector 250000 iterate all - toArray() + loop 8.4010 ms/op 8.0038 ms/op 1.05
MutableVector 250000 iterate all - get(i) 4.0434 ms/op 3.5144 ms/op 1.15
Array 250000 create 6.8485 ms/op 6.5985 ms/op 1.04
Array 250000 clone - spread 2.9077 ms/op 2.9943 ms/op 0.97
Array 250000 get(125000) 1.3700 ns/op 1.2390 ns/op 1.11
Array 250000 set(125000) 1.3660 ns/op 1.4050 ns/op 0.97
Array 250000 iterate all - loop 138.97 us/op 146.11 us/op 0.95
effectiveBalanceIncrements clone Uint8Array 300000 454.44 us/op 95.038 us/op 4.78
effectiveBalanceIncrements clone MutableVector 300000 1.0520 us/op 935.00 ns/op 1.13
effectiveBalanceIncrements rw all Uint8Array 300000 275.92 us/op 300.31 us/op 0.92
effectiveBalanceIncrements rw all MutableVector 300000 179.24 ms/op 246.46 ms/op 0.73
phase0 afterProcessEpoch - 250000 vs - 7PWei 186.65 ms/op 207.62 ms/op 0.90
phase0 beforeProcessEpoch - 250000 vs - 7PWei 167.50 ms/op 157.41 ms/op 1.06
altair processEpoch - mainnet_e81889 789.37 ms/op 802.84 ms/op 0.98
mainnet_e81889 - altair beforeProcessEpoch 231.71 ms/op 239.93 ms/op 0.97
mainnet_e81889 - altair processJustificationAndFinalization 79.567 us/op 65.240 us/op 1.22
mainnet_e81889 - altair processInactivityUpdates 10.453 ms/op 11.150 ms/op 0.94
mainnet_e81889 - altair processRewardsAndPenalties 202.86 ms/op 206.68 ms/op 0.98
mainnet_e81889 - altair processRegistryUpdates 15.282 us/op 14.581 us/op 1.05
mainnet_e81889 - altair processSlashings 4.4330 us/op 4.1460 us/op 1.07
mainnet_e81889 - altair processEth1DataReset 4.8030 us/op 4.2110 us/op 1.14
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.2604 ms/op 3.0139 ms/op 0.75
mainnet_e81889 - altair processSlashingsReset 30.802 us/op 28.577 us/op 1.08
mainnet_e81889 - altair processRandaoMixesReset 26.798 us/op 25.112 us/op 1.07
mainnet_e81889 - altair processHistoricalRootsUpdate 5.6960 us/op 5.0750 us/op 1.12
mainnet_e81889 - altair processParticipationFlagUpdates 16.286 us/op 16.758 us/op 0.97
mainnet_e81889 - altair processSyncCommitteeUpdates 3.5640 us/op 3.9390 us/op 0.90
mainnet_e81889 - altair afterProcessEpoch 186.21 ms/op 209.98 ms/op 0.89
phase0 processEpoch - mainnet_e58758 755.29 ms/op 811.71 ms/op 0.93
mainnet_e58758 - phase0 beforeProcessEpoch 360.05 ms/op 362.05 ms/op 0.99
mainnet_e58758 - phase0 processJustificationAndFinalization 58.219 us/op 61.554 us/op 0.95
mainnet_e58758 - phase0 processRewardsAndPenalties 184.63 ms/op 175.13 ms/op 1.05
mainnet_e58758 - phase0 processRegistryUpdates 31.589 us/op 33.529 us/op 0.94
mainnet_e58758 - phase0 processSlashings 3.1080 us/op 3.2280 us/op 0.96
mainnet_e58758 - phase0 processEth1DataReset 3.3140 us/op 4.3490 us/op 0.76
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.5473 ms/op 2.1046 ms/op 1.21
mainnet_e58758 - phase0 processSlashingsReset 17.245 us/op 17.332 us/op 0.99
mainnet_e58758 - phase0 processRandaoMixesReset 21.570 us/op 23.281 us/op 0.93
mainnet_e58758 - phase0 processHistoricalRootsUpdate 4.2450 us/op 4.5610 us/op 0.93
mainnet_e58758 - phase0 processParticipationRecordUpdates 21.428 us/op 21.540 us/op 0.99
mainnet_e58758 - phase0 afterProcessEpoch 163.57 ms/op 177.34 ms/op 0.92
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.3107 ms/op 2.4781 ms/op 0.93
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.6559 ms/op 2.9279 ms/op 0.91
altair processInactivityUpdates - 250000 normalcase 80.751 ms/op 79.968 ms/op 1.01
altair processInactivityUpdates - 250000 worstcase 86.399 ms/op 55.086 ms/op 1.57
phase0 processRegistryUpdates - 250000 normalcase 28.032 us/op 27.207 us/op 1.03
phase0 processRegistryUpdates - 250000 badcase_full_deposits 496.15 us/op 511.04 us/op 0.97
phase0 processRegistryUpdates - 250000 worstcase 0.5 334.07 ms/op 319.14 ms/op 1.05
altair processRewardsAndPenalties - 250000 normalcase 182.49 ms/op 175.28 ms/op 1.04
altair processRewardsAndPenalties - 250000 worstcase 191.01 ms/op 182.12 ms/op 1.05
phase0 getAttestationDeltas - 250000 normalcase 13.355 ms/op 14.835 ms/op 0.90
phase0 getAttestationDeltas - 250000 worstcase 14.272 ms/op 14.783 ms/op 0.97
phase0 processSlashings - 250000 worstcase 7.7815 ms/op 7.6117 ms/op 1.02
altair processSyncCommitteeUpdates - 250000 336.29 ms/op 341.25 ms/op 0.99
BeaconState.hashTreeRoot - No change 689.00 ns/op 563.00 ns/op 1.22
BeaconState.hashTreeRoot - 1 full validator 74.310 us/op 79.688 us/op 0.93
BeaconState.hashTreeRoot - 32 full validator 982.59 us/op 1.0320 ms/op 0.95
BeaconState.hashTreeRoot - 512 full validator 7.8030 ms/op 10.554 ms/op 0.74
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 116.98 us/op 110.27 us/op 1.06
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5109 ms/op 1.7954 ms/op 0.84
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 21.958 ms/op 20.074 ms/op 1.09
BeaconState.hashTreeRoot - 1 balances 68.056 us/op 84.051 us/op 0.81
BeaconState.hashTreeRoot - 32 balances 771.74 us/op 819.32 us/op 0.94
BeaconState.hashTreeRoot - 512 balances 6.8063 ms/op 7.3465 ms/op 0.93
BeaconState.hashTreeRoot - 250000 balances 97.438 ms/op 124.10 ms/op 0.79
aggregationBits - 2048 els - zipIndexesInBitList 35.768 us/op 33.852 us/op 1.06
regular array get 100000 times 55.598 us/op 59.185 us/op 0.94
wrappedArray get 100000 times 56.790 us/op 59.292 us/op 0.96
arrayWithProxy get 100000 times 32.382 ms/op 40.618 ms/op 0.80
ssz.Root.equals 666.00 ns/op 648.00 ns/op 1.03
byteArrayEquals 652.00 ns/op 510.00 ns/op 1.28
shuffle list - 16384 els 11.585 ms/op 12.206 ms/op 0.95
shuffle list - 250000 els 161.67 ms/op 178.53 ms/op 0.91
processSlot - 1 slots 15.546 us/op 16.677 us/op 0.93
processSlot - 32 slots 1.9894 ms/op 2.8218 ms/op 0.71
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 487.56 us/op 704.30 us/op 0.69
getCommitteeAssignments - req 1 vs - 250000 vc 5.2242 ms/op 5.3994 ms/op 0.97
getCommitteeAssignments - req 100 vs - 250000 vc 7.2172 ms/op 7.9159 ms/op 0.91
getCommitteeAssignments - req 1000 vs - 250000 vc 8.0341 ms/op 8.5652 ms/op 0.94
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 9.4800 ns/op 11.390 ns/op 0.83
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0781 us/op 1.2239 us/op 0.88
computeProposers - vc 250000 19.838 ms/op 21.204 ms/op 0.94
computeEpochShuffling - vc 250000 176.08 ms/op 184.97 ms/op 0.95
getNextSyncCommittee - vc 250000 327.02 ms/op 333.39 ms/op 0.98

by benchmarkbot/action

@wemeetagain wemeetagain merged commit d53d0c4 into unstable Aug 18, 2022
@wemeetagain wemeetagain deleted the dapplion/rmDir branch August 18, 2022 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants