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

Some package load times affected drastically by current working directory #36911

Closed
jaakkor2 opened this issue Aug 4, 2020 · 27 comments · Fixed by #38085
Closed

Some package load times affected drastically by current working directory #36911

jaakkor2 opened this issue Aug 4, 2020 · 27 comments · Fixed by #38085
Labels
system:windows Affects only Windows

Comments

@jaakkor2
Copy link
Contributor

jaakkor2 commented Aug 4, 2020

I noticed that if I change directory to a slow network share, some package load times become up to 45x longer.

Loading Distributions.jl is reasonably fast

julia> @time using Distributions
  1.895814 seconds (2.16 M allocations: 128.496 MiB, 0.69% gc time)

but if i change directory to a relatively slow network share, loading becomes much slower

julia> cd(raw"\\path\to\slowish\network\share")
julia> @time using Distributions
 10.665480 seconds (2.16 M allocations: 128.435 MiB, 0.20% gc time)

My startup.jl was empty (therefore not an issue with Revise.jl), and the network share folder is empty as well.

This is on Windows 10, Julia v1.5.0, but v1.4.1 shows similar behavior.

Not only Distributions.jl, but

module debug
using LibSpatialIndex
end

gives

julia> cd(raw"\\path\to\slowish\network\share")
julia> @time using debug
 11.088778 seconds (363.64 k allocations: 20.985 MiB, 0.10% gc time)
...
  5.463853 seconds (363.25 k allocations: 20.221 MiB)
...
 15.565964 seconds (363.25 k allocations: 20.221 MiB)

with the three repeats with restarted Julia. The slowest one was with the highest network load, but

julia> cd(raw"\\path\to\slowish\network\share")
julia> @time using LibSpatialIndex
  0.226846 seconds (359.37 k allocations: 20.711 MiB, 4.33% gc time)
@fredrikekre fredrikekre added the system:windows Affects only Windows label Aug 4, 2020
@IanButterworth
Copy link
Member

I also found a really strong correlation between slow disk io speed and long package load times in #35907

It would be great to get to the bottom of why julia diskio can be really slow in non-linux systems. Even linux VMs on MacOS systems are a lot faster on disk io than in the parent MacOS env. i.e. the same hardware

Also, could code loading read/write to disk less frequently? Might that help?

@KristofferC
Copy link
Member

Maybe try #36018.

@jaakkor2
Copy link
Contributor Author

jaakkor2 commented Aug 5, 2020

Is the package loading code looking into the current working directory?

In my case, all the code that needs to be loaded is on a local fast SSD drive. stat is very slow on the remote share, but I do not get why it would matter for package loading. Also, on Linux stat is much faster (about 1 μs) than on Windows, but that should not warrant the windows-label.

On the local drive

julia> @btime stat(".")
  41.099 μs (1 allocation: 224 bytes)
StatStruct(mode=0o040666, size=0)

On the remote

julia> @btime stat(raw"\\path\to\slowish\network\share)
  155.449 ms (1 allocation: 224 bytes)
StatStruct(mode=0o040666, size=0)

@jaakkor2
Copy link
Contributor Author

jaakkor2 commented Sep 9, 2020

Testing nightly Version 1.6.0-DEV.871 (2020-09-09) that should have #36018 included in Windows 10 with --startup-file=no.

With pwd() on the local SSD, where Julia and packages are installed I get

julia> @time @time using Distributions
  1.124861 seconds (1.39 M allocations: 91.595 MiB, 0.88% gc time)
  1.145893 seconds (1.43 M allocations: 93.708 MiB, 0.86% gc time)

and when pwd() is on a slow network share I get

julia> @time @time using Distributions
 26.197318 seconds (1.39 M allocations: 91.602 MiB, 0.04% gc time)
 26.218540 seconds (1.43 M allocations: 93.715 MiB, 0.04% gc time)

With Julia prompt on SSD

julia> @time @time using Plots
  5.472070 seconds (9.74 M allocations: 646.678 MiB, 2.87% gc time)
  5.494550 seconds (9.78 M allocations: 648.794 MiB, 2.86% gc time)

With Julia prompt on a network share

julia> @time @time using Plots
 35.598335 seconds (9.74 M allocations: 646.689 MiB, 0.51% gc time)
 35.618180 seconds (9.78 M allocations: 648.805 MiB, 0.51% gc time)

Any suggestions to proceed, or what additional information would be useful?

@timholy
Copy link
Member

timholy commented Sep 9, 2020

Maybe using ProfileView; @profview using Plots under both conditions? What are the big differences?

@jaakkor2
Copy link
Contributor Author

jaakkor2 commented Sep 9, 2020

using ProfileView; @profview using Plots graphs look almost same to me (but I am not familiar interpreting these)
Prompt on SSD
fast
Prompt on netshare
slow

Some handholding needed :)

@timholy
Copy link
Member

timholy commented Sep 9, 2020

There's nothing there consistent with a big difference in execution times. I'm puzzled, but it's hard to know what to suggest "through the ether" other than to try to come to some conclusion about whether @profview might be missing something.

You can hover over bars to see where the time that it does record is coming from, so as a precaution check that.

@jaakkor2
Copy link
Contributor Author

Re-testing with Version 1.6.0-DEV.1210 (2020-10-13) on Windows 10 on an even slower remote netshare. I repeated timings twice to get a feeling of repeatability.

Netshare

@time stat(".") 0.598877 seconds (1 allocation: 224 bytes). using Revise makes loading packages noticeably faster!

using Revise @time using CSV @time using FFMPEG
no 37.050384, 36.489486 82.113393, 83.207046
yes 1.608730, 1.617917 46.970755, 46.652822
julia> using ProfileView; @time @profview using FFMPEG
40.252702 seconds (11.37 M allocations: 655.149 MiB, 0.77% gc time, 11.81% compilation time)

image

Local disk

@time stat(".") 0.000186 seconds (1 allocation: 224 bytes)

using Revise @time using CSV @time using FFMPEG
no 1.213965, 1.226427 0.658581, 0.653390
yes 1.401554,1.426983 0.860940, 0.837024
julia> using ProfileView; @time @profview using FFMPEG
  8.001070 seconds (12.03 M allocations: 691.938 MiB, 4.27% gc time, 61.77% compilation time)

image

@staticfloat
Copy link
Member

Are you getting any warnings about the profile buffer overflowing?

@jaakkor2
Copy link
Contributor Author

Are you getting any warnings about the profile buffer overflowing?

No warnings.

@timholy
Copy link
Member

timholy commented Oct 13, 2020

I think I saw a note somewhere that the warnings are busted. Do Profile.init(delay=0.01, n=10^7) before running this.

@jaakkor2
Copy link
Contributor Author

Netshare

julia> using ProfileView; using Profile; Profile.init(delay=0.01, n=10^7); @time @profview using FFMPEG
 37.780442 seconds (10.56 M allocations: 601.151 MiB, 0.79% gc time, 12.06% compilation time)

image

Local disk

julia> using ProfileView; using Profile; Profile.init(delay=0.01, n=10^7); @time @profview using FFMPEG
  5.936703 seconds (11.22 M allocations: 637.494 MiB, 5.83% gc time, 85.83% compilation time)

image

@timholy
Copy link
Member

timholy commented Oct 13, 2020

Great! Now hover over bars along the top that take more horizontal space. You can click on them and the source line will be printed at the REPL. What are the main culprits for the "slow" case?

@jaakkor2
Copy link
Contributor Author

jaakkor2 commented Oct 13, 2020

Starting from top, trying to click the longest ones, and going a bit down gives

.\libdl.jl, #dlopen#3: line 114
.\path.jl, longpath: line 406
.\path.jl, longpath: line 406
.\stat.jl, stat: line 67
.\boot.jl, Array: line 448
.\path.jl, realpath: line 431
.\loading.jl, #get_preferences#796: line 1530
.\loading.jl, _include_from_serialized: line 670
.\loading.jl, manifest_deps_get: line 363
.\loading.jl, manifest_deps_get: line 373
.\loading.jl, isfile_casesensitive: line 14
.\loading.jl, project_file_manifest_path: line 449

@jaakkor2
Copy link
Contributor Author

For my education, this is the slow case annotated
image

@jaakkor2
Copy link
Contributor Author

Maybe a simpler example. First time a non-existing library is tried to be opened, on the slow netshare it takes 36 s, but subsequent dlopen on a non-existing library is fast.

Netshare

@time stat(".") 1.368621 seconds (1 allocation: 224 bytes)

julia> using Dates

julia> t1=now(); try @time Base.Libc.Libdl.dlopen(joinpath(Sys.BINDIR, "libwinpthread-1.dll")); catch; println("not found"); end; now()-t1
  0.000515 seconds (17 allocations: 1.062 KiB)
65 milliseconds

julia> t1=now(); try @time Base.Libc.Libdl.dlopen(joinpath(Sys.BINDIR, "libwinpthread-2.dll")); catch; println("not found"); end; now()-t1
not found
36433 milliseconds

julia> t1=now(); try @time Base.Libc.Libdl.dlopen(joinpath(Sys.BINDIR, "libwinpthread-3.dll")); catch; println("not found"); end; now()-t1
not found
0 milliseconds

Local disk

@time stat(".") 0.000165 seconds (1 allocation: 224 bytes)

julia> using Dates

julia> t1=now(); try @time Base.Libc.Libdl.dlopen(joinpath(Sys.BINDIR, "libwinpthread-1.dll")); catch; println("not found"); end; now()-t1
  0.000870 seconds (17 allocations: 1.062 KiB)
65 milliseconds

julia> t1=now(); try @time Base.Libc.Libdl.dlopen(joinpath(Sys.BINDIR, "libwinpthread-2.dll")); catch; println("not found"); end; now()-t1
not found
182 milliseconds

julia> t1=now(); try @time Base.Libc.Libdl.dlopen(joinpath(Sys.BINDIR, "libwinpthread-3.dll")); catch; println("not found"); end; now()-t1
not found
0 milliseconds

This is Julia v"1.6.0-DEV.1210" on Windows 10.

Is there an easy way to make dlopen to printout the library names it is trying to open?

@staticfloat
Copy link
Member

staticfloat commented Oct 14, 2020 via email

@jaakkor2
Copy link
Contributor Author

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon seems to do the job.

cd(raw"\\my\share")
Base.Libc.Libdl.dlopen(joinpath(Sys.BINDIR, "libwinpthread-2.dll")) # this file does not exist

creates 737 events with a path on \\my\share, and all of the paths end in .dbg or .pdb extension. The log looks like this

737×7 DataFrame
│ Row │ Time of Day      │ Process Name │ PID   │ Operation                    │ Path                                      │ Result         │ Detail                                                                                                                                                                                                       │
│     │ String           │ String       │ Int64 │ String                       │ String                                    │ String         │ String                                                                                                                                                                                                       │
├─────┼──────────────────┼──────────────┼───────┼──────────────────────────────┼───────────────────────────────────────────┼────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 1   │ 21:19:32.4346452 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share                             │ SUCCESS        │ Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened             │
│ 2   │ 21:19:32.7415160 │ julia.exe    │ 28908 │ QueryDeviceInformationVolume │ \\\\my\\share                             │ SUCCESS        │ DeviceType: Disk, Characteristics: Remote                                                                                                                                                                    │
│ 3   │ 21:19:49.0731181 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.dbg                  │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 4   │ 21:19:49.4642253 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.dbg                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                                 │
│ 5   │ 21:19:49.4652673 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\exe\\julia.dbg             │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                                 │
│ 6   │ 21:19:49.8589886 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\exe\\julia.dbg    │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                                 │
│ 7   │ 21:19:50.4536498 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.pdb                  │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 8   │ 21:19:50.8594072 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.pdb                  │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 9   │ 21:19:51.2532179 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 10  │ 21:19:51.6516692 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 11  │ 21:19:51.6526450 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\exe\\julia.pdb             │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 12  │ 21:19:51.8499041 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\exe\\julia.pdb             │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 13  │ 21:19:51.8509660 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\exe\\julia.pdb             │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 14  │ 21:19:51.8519252 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\exe\\julia.pdb    │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 15  │ 21:19:52.0505355 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\exe\\julia.pdb    │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 16  │ 21:19:52.0516499 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\exe\\julia.pdb    │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 17  │ 21:19:52.4454734 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.pdb                  │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 18  │ 21:19:52.8384259 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 19  │ 21:19:53.2332951 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\julia.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 20  │ 21:19:53.6260249 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb                  │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 21  │ 21:19:54.0207550 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb                  │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 22  │ 21:19:54.4129128 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 23  │ 21:19:54.8057499 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 24  │ 21:19:54.8067166 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\ntdll.pdb             │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 25  │ 21:19:55.0060282 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\ntdll.pdb             │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 26  │ 21:19:55.0070040 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\ntdll.pdb             │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 27  │ 21:19:55.2051085 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\ntdll.pdb    │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 28  │ 21:19:55.4042889 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\ntdll.pdb    │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 29  │ 21:19:55.4053030 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\ntdll.pdb    │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 30  │ 21:19:55.8006523 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb                  │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 31  │ 21:19:56.1950694 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 32  │ 21:19:56.5880482 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 33  │ 21:19:56.9887765 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb               │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 34  │ 21:19:57.3820527 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb               │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 35  │ 21:19:57.7747657 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb               │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 36  │ 21:19:58.1687976 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb               │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 37  │ 21:19:58.1706894 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\kernel32.pdb          │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 38  │ 21:19:58.3677401 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\kernel32.pdb          │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 39  │ 21:19:58.3689373 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\kernel32.pdb          │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 40  │ 21:19:58.3701669 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\kernel32.pdb │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 41  │ 21:19:58.5680387 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\kernel32.pdb │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 42  │ 21:19:58.5692523 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\kernel32.pdb │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 43  │ 21:19:58.9629849 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb               │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
⋮
│ 694 │ 21:22:51.0128960 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\imm32.pdb                  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 695 │ 21:22:51.4052973 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb                │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 696 │ 21:22:51.7977831 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb                │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 697 │ 21:22:52.1914808 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 698 │ 21:22:52.5836646 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 699 │ 21:22:52.5846886 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\UxTheme.pdb           │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 700 │ 21:22:52.7806660 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\UxTheme.pdb           │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 701 │ 21:22:52.7814801 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\UxTheme.pdb           │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 702 │ 21:22:52.9777025 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\UxTheme.pdb  │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 703 │ 21:22:53.1739716 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\UxTheme.pdb  │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 704 │ 21:22:53.1748720 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\UxTheme.pdb  │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 705 │ 21:22:53.5678302 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb                │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 706 │ 21:22:54.1632986 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 707 │ 21:22:54.5586272 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 708 │ 21:22:54.9519751 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb                │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 709 │ 21:22:55.3461390 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb                │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 710 │ 21:22:55.7398205 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 711 │ 21:22:56.1359603 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 712 │ 21:22:56.1369995 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\mswsock.pdb           │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 713 │ 21:22:56.3344432 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\mswsock.pdb           │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 714 │ 21:22:56.3353920 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\mswsock.pdb           │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 715 │ 21:22:56.3363524 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\mswsock.pdb  │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 716 │ 21:22:56.5352366 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\mswsock.pdb  │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 717 │ 21:22:56.5361566 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\mswsock.pdb  │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 718 │ 21:22:56.9357357 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb                │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 719 │ 21:22:57.3294459 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 720 │ 21:22:57.7207509 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb                │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 721 │ 21:22:58.1416885 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.dbg                    │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 722 │ 21:22:58.5363196 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.dbg                    │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                                 │
│ 723 │ 21:22:58.5377543 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\sys.dbg               │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                                 │
│ 724 │ 21:22:58.9311757 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\sys.dbg      │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                                 │
│ 725 │ 21:22:59.5221559 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.pdb                    │ NAME NOT FOUND │ Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a                 │
│ 726 │ 21:22:59.9145102 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.pdb                    │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 727 │ 21:23:00.3269348 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.pdb                    │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 728 │ 21:23:00.7186250 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.pdb                    │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 729 │ 21:23:00.7196606 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\sys.pdb               │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 730 │ 21:23:00.9167412 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\sys.pdb               │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 731 │ 21:23:00.9179666 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\dll\\sys.pdb               │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 732 │ 21:23:00.9191226 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\sys.pdb      │ PATH NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 733 │ 21:23:01.1167947 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\sys.pdb      │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 734 │ 21:23:01.1177839 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\symbols\\dll\\sys.pdb      │ PATH NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 735 │ 21:23:01.5165005 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.pdb                    │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 736 │ 21:23:01.9192704 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.pdb                    │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 737 │ 21:23:02.3178634 │ julia.exe    │ 28908 │ CreateFile                   │ \\\\my\\share\\sys.pdb                    │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a

@staticfloat
Copy link
Member

Fantastic; this is great info. @vtjnash I assume this is due to Windows searching for debugging symbols, and doing so in the current directory by default. Is there any way we can suppress that behavior?

@vtjnash
Copy link
Member

vtjnash commented Oct 15, 2020

Yes, it's one of the arguments we [don't] pass to SymInitialize

@staticfloat
Copy link
Member

Cool, thanks.

@jaakkor2 if you run this piece of code first, does it speed things up at all:

# This always returns the constant 0xffffffff, but we should still call it just in case
process_handle = ccall(("GetCurrentProcess", "Kernel32"), Ptr{Cvoid}, ())

# This should return 1, signifying it worked.
ccall(("SymSetSearchPath", "Dbghelp"), Cint, (Ptr{Cvoid}, Cstring), process_handle, "C:\\not_a_directory\\")

@jaakkor2
Copy link
Contributor Author

Improves quite a lot, but still not a speed king when the current directory is on a slow netshare.

Netshare

Before (I believe cd(raw"\\my\share"); a is a MWE)

julia> cd(raw"\\my\share")

julia> @time try a catch end
 35.642290 seconds (2 allocations: 256 bytes)

julia> @time using FFMPEG
 46.048292 seconds (113.27 k allocations: 7.259 MiB, 0.04% compilation time)

After

julia> cd(raw"\\my\share")

julia> @time process_handle = ccall(("GetCurrentProcess", "Kernel32"), Ptr{Cvoid}, ())
  0.000001 seconds (1 allocation: 16 bytes)
Ptr{Nothing} @0xffffffffffffffff
julia> @time ccall(("SymSetSearchPath", "Dbghelp"), Cint, (Ptr{Cvoid}, Cstring), process_handle, "C:\\not_a_directory\\")
  0.000016 seconds
1

julia> @time try a catch end
 10.237664 seconds (2 allocations: 256 bytes)

julia> @time using FFMPEG
  8.966191 seconds (113.27 k allocations: 7.259 MiB, 0.11% gc time, 0.33% compilation time)

Local disk

julia> @time try a catch end
  0.166569 seconds (2 allocations: 256 bytes)

julia> @time using FFMPEG
  0.561065 seconds (113.27 k allocations: 7.259 MiB, 4.01% compilation time)

New log

Logging events

julia> cd(raw"\\my\share")

julia> process_handle = ccall(("GetCurrentProcess", "Kernel32"), Ptr{Cvoid}, ())
Ptr{Nothing} @0xffffffffffffffff
julia> ccall(("SymSetSearchPath", "Dbghelp"), Cint, (Ptr{Cvoid}, Cstring), process_handle, "C:\\not_a_directory\\")
1

julia> a

gives 161 events, now current directory is still scanned for debug files, but .\dll and .\symbols\dll are not anymore, giving the speedup measured above.

161×7 DataFrame
│ Row │ Time of Day      │ Process Name │ PID   │ Operation                    │ Path                               │ Result         │ Detail                                                                                                                                                                                                       │
│     │ String           │ String       │ Int64 │ String                       │ String                             │ String         │ String                                                                                                                                                                                                       │
├─────┼──────────────────┼──────────────┼───────┼──────────────────────────────┼────────────────────────────────────┼────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 1   │ 08:45:02.3089073 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share                      │ SUCCESS        │ Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened             │
│ 2   │ 08:45:02.5095336 │ julia.exe    │ 24536 │ QueryDeviceInformationVolume │ \\\\my\\share                      │ SUCCESS        │ DeviceType: Disk, Characteristics: Remote                                                                                                                                                                    │
│ 3   │ 08:45:33.5058167 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\julia.pdb           │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 4   │ 08:45:33.9011981 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\julia.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 5   │ 08:45:34.2946046 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\julia.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 6   │ 08:45:34.6869806 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb           │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 7   │ 08:45:35.0781101 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 8   │ 08:45:35.4784744 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 9   │ 08:45:35.8743814 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb        │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 10  │ 08:45:36.2673807 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 11  │ 08:45:36.6612025 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 12  │ 08:45:37.0731165 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb           │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 13  │ 08:45:37.4686951 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 14  │ 08:45:37.8670285 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\ntdll.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 15  │ 08:45:38.2619096 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb        │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 16  │ 08:45:38.6535704 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 17  │ 08:45:39.0444930 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernel32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 18  │ 08:45:39.4395994 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernelbase.pdb      │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 19  │ 08:45:39.8317394 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernelbase.pdb      │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 20  │ 08:45:40.2263434 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\kernelbase.pdb      │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 21  │ 08:45:40.6231432 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\advapi32.pdb        │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 22  │ 08:45:41.0445888 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\advapi32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 23  │ 08:45:41.4381010 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\advapi32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 24  │ 08:45:41.8337688 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\msvcrt.pdb          │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 25  │ 08:45:42.2281773 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\msvcrt.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 26  │ 08:45:42.6262191 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\msvcrt.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 27  │ 08:45:43.0235435 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sechost.pdb         │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 28  │ 08:45:43.4250946 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sechost.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 29  │ 08:45:43.8203344 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sechost.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 30  │ 08:45:44.2193885 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\rpcrt4.pdb          │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 31  │ 08:45:44.6147990 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\rpcrt4.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 32  │ 08:45:45.0075916 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\rpcrt4.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 33  │ 08:45:45.4015749 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\version.pdb         │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 34  │ 08:45:45.7934797 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\version.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 35  │ 08:45:46.1929600 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\version.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 36  │ 08:45:46.5974229 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libgcc_s_seh-1.pdb  │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 37  │ 08:45:46.9909060 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libgcc_s_seh-1.pdb  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 38  │ 08:45:47.3847177 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libgcc_s_seh-1.pdb  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 39  │ 08:45:47.8739892 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libwinpthread-1.pdb │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 40  │ 08:45:48.2681220 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libwinpthread-1.pdb │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 41  │ 08:45:48.6617132 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libwinpthread-1.pdb │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 42  │ 08:45:49.0625912 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libopenlibm.pdb     │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 43  │ 08:45:49.4574691 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libopenlibm.pdb     │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 44  │ 08:45:49.8498416 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libopenlibm.pdb     │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 45  │ 08:45:50.2513733 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libjulia.pdb        │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 46  │ 08:45:50.6451847 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libjulia.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 47  │ 08:45:51.0425839 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\libjulia.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 48  │ 08:45:51.4388572 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\psapi.pdb           │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 49  │ 08:45:51.8362605 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\psapi.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 50  │ 08:45:52.2335462 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\psapi.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
⋮
│ 111 │ 08:46:17.3086213 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cfgmgr32.pdb        │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 112 │ 08:46:17.7038888 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cfgmgr32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 113 │ 08:46:18.0964841 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cfgmgr32.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 114 │ 08:46:18.4900263 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\shcore.pdb          │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 115 │ 08:46:18.8963843 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\shcore.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 116 │ 08:46:19.2910538 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\shcore.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 117 │ 08:46:19.6868876 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\Windows.Storage.pdb │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 118 │ 08:46:20.0813762 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\Windows.Storage.pdb │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 119 │ 08:46:20.4749911 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\Windows.Storage.pdb │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 120 │ 08:46:20.8688314 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\powrprof.pdb        │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 121 │ 08:46:21.2624354 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\powrprof.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 122 │ 08:46:21.6563887 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\powrprof.pdb        │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 123 │ 08:46:22.0538676 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\UMPDC.pdb           │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 124 │ 08:46:22.4488112 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\UMPDC.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 125 │ 08:46:22.8440672 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\UMPDC.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 126 │ 08:46:23.2402946 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\shlwapi.pdb         │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 127 │ 08:46:23.6367012 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\shlwapi.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 128 │ 08:46:24.2343501 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\shlwapi.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 129 │ 08:46:24.6332821 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\Kernel.Appcore.pdb  │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 130 │ 08:46:25.0418674 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\Kernel.Appcore.pdb  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 131 │ 08:46:25.4502719 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\Kernel.Appcore.pdb  │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 132 │ 08:46:25.8496037 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cryptsp.pdb         │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 133 │ 08:46:26.2487087 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cryptsp.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 134 │ 08:46:26.6402770 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cryptsp.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 135 │ 08:46:27.0338893 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\WINMMBASE.pdb       │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 136 │ 08:46:27.4275328 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\WINMMBASE.pdb       │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 137 │ 08:46:27.8224628 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\WINMMBASE.pdb       │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 138 │ 08:46:28.2166772 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cryptbase.pdb       │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 139 │ 08:46:28.6176884 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cryptbase.pdb       │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 140 │ 08:46:29.0088552 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\cryptbase.pdb       │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 141 │ 08:46:29.4049897 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sspicli.pdb         │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 142 │ 08:46:29.8016422 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sspicli.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 143 │ 08:46:30.1942428 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sspicli.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 144 │ 08:46:30.5901306 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\rsaenh.pdb          │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 145 │ 08:46:31.5707055 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\rsaenh.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 146 │ 08:46:32.5597917 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\rsaenh.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 147 │ 08:46:33.1608466 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\bcrypt.pdb          │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 148 │ 08:46:33.5585949 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\bcrypt.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 149 │ 08:46:33.9517739 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\bcrypt.pdb          │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 150 │ 08:46:34.7440637 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\imm32.pdb           │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 151 │ 08:46:35.1381386 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\imm32.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 152 │ 08:46:35.5338389 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\imm32.pdb           │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 153 │ 08:46:35.9344727 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb         │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 154 │ 08:46:36.3292696 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 155 │ 08:46:36.7200779 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\UxTheme.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 156 │ 08:46:37.1197516 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb         │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 157 │ 08:46:37.5200854 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 158 │ 08:46:37.9138500 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\mswsock.pdb         │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 159 │ 08:46:38.3263944 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sys.pdb             │ NAME NOT FOUND │ Desired Access: Read Attributes, Write Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a │
│ 160 │ 08:46:38.7205793 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sys.pdb             │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │
│ 161 │ 08:46:39.1143308 │ julia.exe    │ 24536 │ CreateFile                   │ \\\\my\\share\\sys.pdb             │ NAME NOT FOUND │ Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Delete, AllocationSize: n/a                                          │

@staticfloat
Copy link
Member

Hmmm. I could have sworn that we told it not to look there. :P

If you are compiling Julia locally, could you also try modifying this line to pass "C:\\not_a_directory\\" as the second argument to SymInitialize()? I wonder if SymInitialize() has a different effect than SymSetSearchPath().

@jaakkor2
Copy link
Contributor Author

I was filtering the path to contain \\my\share in the log above. For example, shell32.pdb is now searched from

  • C:\no_a_directory
  • C:\no_a_directory\dll
  • C:\no_a_directory\symbols\dll
  • \\my\share

I am not usually compiling locally, maybe in the weekend. If someone wants to try the modification in #36911 (comment), here are the commands

cd(raw"C:\temp")
process_handle = ccall(("GetCurrentProcess", "Kernel32"), Ptr{Cvoid}, ())
ccall(("SymSetSearchPath", "Dbghelp"), Cint, (Ptr{Cvoid}, Cstring), process_handle, "C:\\not_a_directory\\")
a

and monitor with https://docs.microsoft.com/en-us/sysinternals/downloads/procmon that preferably C:\temp should not be accessed.

@jaakkor2
Copy link
Contributor Author

Calling SymCleanup seems to do it.

Netshare

Before

julia> cd(raw"\\my\share")

julia> @time try a catch end
 35.574909 seconds (2 allocations: 256 bytes)

julia> @time using FFMPEG
 45.619595 seconds (113.27 k allocations: 7.259 MiB, 0.04% compilation time)

After

julia> cd(raw"\\my\share")

julia> process_handle = ccall(("GetCurrentProcess", "Kernel32"), Ptr{Cvoid}, ())
Ptr{Nothing} @0xffffffffffffffff

julia> ccall(("SymCleanup", "Dbghelp"), Cint, (Ptr{Cvoid},), process_handle)
1

julia> @time try a catch end
  0.000066 seconds (2 allocations: 256 bytes)

julia> @time using FFMPEG
  0.524755 seconds (113.27 k allocations: 7.257 MiB, 1.66% gc time, 4.39% compilation time)

Local disk

Before

julia> @time using FFMPEG
  0.707432 seconds (113.70 k allocations: 7.291 MiB, 2.88% compilation time)

After

julia> process_handle = ccall(("GetCurrentProcess", "Kernel32"), Ptr{Cvoid}, ())
Ptr{Nothing} @0xffffffffffffffff

julia> ccall(("SymCleanup", "Dbghelp"), Cint, (Ptr{Cvoid},), process_handle)
1

julia> @time using FFMPEG
  0.506749 seconds (113.70 k allocations: 7.288 MiB, 4.49% compilation time)

If I call ccall(("SymInitialize", "Dbghelp"), Cint, (Ptr{Cvoid}, Cstring, Cint), process_handle, "", 1), debug files are still searched in the current working directory.

I noticed that on v1.5.2 debug files are scanned in the current working directory during the start up, but in v.1.6.0-DEV.1210 not. This explains that on v1.6.0 first @time try a catch end takes about 0.18 s when current working directory is on the local disk.

@jaakkor2
Copy link
Contributor Author

Setting the UserSearchPath with SymInitialize in src/init.c functions the same as setting the path with SymSetUserPath. Seems to me that current working directory is always scanned for debug files, and the result of my googling was very sparse on the topic. Windows 10 v1909 and Julia 1.6.0-DEV.1272 (2020-10-17) Commit 810da4c* compiled locally. To summarize

SymInitialize second argument (UserSearchPath) Paths searched for debug files (from Process Monitor events) Paths returned by SymGetUserPath
NULL ".", ".\dll", ".\symbols\dll" "."
"C:\\not_a_directory" "C:\not_a_directory", "C:\not_a_directory\dll", "C:\not_a_directory\symbols\dll", "." "C:\not_a_directory"
"" "." ""

The benefit of setting UserSearchPath to "" would be that number of searched directories would drop from three to one. Any downsides?

Effect on using Gtk with the latest package versions in the registry when the current working directory is on a netshare that is physically very far away

# NULL
julia> @time using Gtk
128.837287 seconds (1.34 M allocations: 88.759 MiB, 0.13% compilation time)
# ""
julia> @time using Gtk
 30.691999 seconds (1.34 M allocations: 88.665 MiB, 0.08% gc time, 0.56% compilation time)

@jaakkor2
Copy link
Contributor Author

Finally, this works

process_handle = ccall(("GetCurrentProcess", "Kernel32"), Ptr{Cvoid}, ())
ccall(("SymSetSearchPath", "Dbghelp"), Cint, (Ptr{Cvoid}, Cstring), process_handle, "")
symsetopts = ccall(("SymGetOptions", "Dbghelp"), Cuint, (Ptr{Cvoid},), process_handle)
ccall(("SymSetOptions", "Dbghelp"), Cuint, (Cuint,), symsetopts | 0x00000080)

i.e., set the UserSearchPath to "" and add SYMOPT_IGNORE_CVREC (0x00000080) option flag.

SymSetOptions docs say this about SYMOPT_IGNORE_CVREC

Ignore path information in the CodeView record of the image header when loading a .pdb file.

vtjnash pushed a commit that referenced this issue Oct 20, 2020
… Windows (#38085)

Fixes #36911

[SymSetOptions](https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/nf-dbghelp-symsetoptions) docs say this about SYMOPT_IGNORE_CVREC:
> Ignore path information in the CodeView record of the image header when loading a .pdb file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
system:windows Affects only Windows
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants