dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.42k stars 4.76k forks source link

[wasm] Excessive syscalls during DLL load #107883

Open pavelsavara opened 2 months ago

pavelsavara commented 2 months ago
stat-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="System.Collections.Concurrent.dll"
stat-at return result=Err(no-entry (error 20))
stat-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="System.Collections.Concurrent.exe"
stat-at return result=Err(no-entry (error 20))
stat-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="System.Collections.Concurrent/System.Collections.Concurrent.dll"
stat-at return result=Err(no-entry (error 20))
stat-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="System.Collections.Concurrent/System.Collections.Concurrent.exe"
stat-at return result=Err(no-entry (error 20))
stat-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="managed/System.Collections.Concurrent.dll"
stat-at return result=Ok(DescriptorStat { type: DescriptorType::RegularFile, link-count: 1, size: 30208, data-access-timestamp: Some(Datetime { seconds: 1726513157, nanoseconds: 715465600 }), data-modification-timestamp: Some(Datetime { seconds: 1726513156, nanoseconds: 300857300 }), status-change-timestamp: Some(Datetime { seconds: 1726497931, nanoseconds: 307419700 }) })
metadata-hash-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="managed/System.Collections.Concurrent.dll"
metadata-hash-at return result=Ok(MetadataHashValue { lower: 11390756488781345111, upper: 16005011699397401679 })
readlink-at call self_=Resource { rep: 3, state: "borrow" } path="managed"
readlink-at return result=Err(invalid (error 12))
readlink-at call self_=Resource { rep: 3, state: "borrow" } path="managed/System.Collections.Concurrent.dll"
readlink-at return result=Err(invalid (error 12))
readlink-at call self_=Resource { rep: 3, state: "borrow" } path="managed"
readlink-at return result=Err(invalid (error 12))
readlink-at call self_=Resource { rep: 3, state: "borrow" } path="managed/System.Collections.Concurrent.dll"
readlink-at return result=Err(invalid (error 12))
get-flags call self_=Resource { rep: 3, state: "borrow" }
get-flags return result=Ok((READ|MUTATE_DIRECTORY))
get-type call self_=Resource { rep: 3, state: "borrow" }
get-type return result=Ok(DescriptorType::Directory)
open-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="managed/System.Collections.Concurrent.dll" open_flags=() flags=(READ)
open-at return result=Ok(Resource { rep: 6, state: "own (not in table)" })
get-type call self_=Resource { rep: 6, state: "borrow" }
get-type return result=Ok(DescriptorType::RegularFile)
stat call self_=Resource { rep: 6, state: "borrow" }
stat return result=Ok(DescriptorStat { type: DescriptorType::RegularFile, link-count: 1, size: 30208, data-access-timestamp: Some(Datetime { seconds: 1726513157, nanoseconds: 715465600 }), data-modification-timestamp: Some(Datetime { seconds: 1726513156, nanoseconds: 300857300 }), status-change-timestamp: Some(Datetime { seconds: 1726497931, nanoseconds: 307419700 }) })
metadata-hash call self_=Resource { rep: 6, state: "borrow" }
metadata-hash return result=Ok(MetadataHashValue { lower: 11390756488781345111, upper: 16005011699397401679 })
read call self_=Resource { rep: 6, state: "borrow" } length=30208 offset=0
read return result=Ok
readlink-at call self_=Resource { rep: 3, state: "borrow" } path="managed"
readlink-at return result=Err(invalid (error 12))
readlink-at call self_=Resource { rep: 3, state: "borrow" } path="managed/System.Collections.Concurrent.dll"
readlink-at return result=Err(invalid (error 12))
get-flags call self_=Resource { rep: 3, state: "borrow" }
get-flags return result=Ok((READ|MUTATE_DIRECTORY))
get-type call self_=Resource { rep: 3, state: "borrow" }
get-type return result=Ok(DescriptorType::Directory)
open-at call self_=Resource { rep: 3, state: "borrow" } path_flags=(SYMLINK_FOLLOW) path="managed/System.Collections.Concurrent.dll.so.la" open_flags=() flags=(READ)
open-at return result=Err(no-entry (error 20))
dotnet-policy-service[bot] commented 2 months ago

Tagging subscribers to 'arch-wasm': @lewing See info in area-owners.md if you want to be subscribed.