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

CI: Another macos FileWatching failure #46185

Closed
Keno opened this issue Jul 26, 2022 · 10 comments
Closed

CI: Another macos FileWatching failure #46185

Keno opened this issue Jul 26, 2022 · 10 comments
Labels
ci Continuous integration filesystem Underlying file system and functions that use it system:mac Affects only macOS

Comments

@Keno
Copy link
Member

Keno commented Jul 26, 2022

Separate from #45982, we have another macos-specific FileWatching failure:

FileWatching                                      (7) \|         failed at 2022-07-26T18:18:33.436
  | Test Failed at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-macmini-x64-6.0/build/default-macmini-x64-6-0/julialang/julia-master/julia-ff1b563e3c/share/julia/stdlib/v1.9/FileWatching/test/runtests.jl:323
  | Expression: events.changed && (!(events.timedout) && !(events.renamed))

This looks a lot like #26725 in that we may be getting these events (or rather these events and the events from the previous loop) out-of-order. We should first determine if we should we expect the kernel to deliver these in order. If not, we should adjust the tests accordingly. If so, we should complain to Apple.

@Keno Keno added system:mac Affects only macOS filesystem Underlying file system and functions that use it ci Continuous integration labels Jul 26, 2022
@Keno
Copy link
Member Author

Keno commented Jul 26, 2022

@vtjnash thoughts on what the expected behavior should be?

@Keno
Copy link
Member Author

Keno commented Jul 26, 2022

If I'm reading the kernel source correctly, it does look like events should show up in order: https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/vfs/vfs_fsevents.c. Though there's a userspace fseventsd daemon in the middle that does who-knows-what.

@JeffBezanson
Copy link
Member

Another one (https://buildkite.com/julialang/julia-master/builds/14598#01827ba7-bbb0-4ff8-a462-5475b793a4f9):

Test Failed at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-macmini-x64-5.0/build/default-macmini-x64-5-0/julialang/julia-master/julia-b91aeb331d/share/julia/stdlib/v1.9/FileWatching/test/runtests.jl:294
--
  | Expression: fname == "$(F_PATH)$(i)"
  | Evaluated: "afile.txt" == "afile.txt1"

@Keno
Copy link
Member Author

Keno commented Aug 11, 2022

I think the hypothesis that fseventsd is re-ordering events is pretty well validated at this point, and we'll just have to adjust the test or disable it on macos.

@gbaraldi
Copy link
Member

maybe this is relevant dotnet/runtime#30415

@Keno
Copy link
Member Author

Keno commented Aug 11, 2022

Yeah, same issue. We can keep tracking this, but I think for CI purposes, we just need to turn off the test or make it robust to re-ordering. @gbaraldi want to take a crack at it?

@gbaraldi
Copy link
Member

Sure, will see if I can get it to reproduce easier

@gbaraldi
Copy link
Member

Recent failures

@test c.first == F_PATH
@test c.second.changed c.second.renamed
@test !c.second.timedout

@test fd_in_limits

and https://buildkite.com/julialang/julia-master/builds/15032#0182d266-b194-4cf3-b0f4-c05eab8ac7e7

@test maximum(lock_times) > 2

This last one is interesting because it doesn't seem event related @Keno

@vtjnash
Copy link
Member

vtjnash commented Sep 28, 2022

#46497 didn't entirely fix this, but should have avoided the CI issues now

@wegank
Copy link
Contributor

wegank commented Dec 16, 2022

Recent failures

@test c.first == F_PATH
@test c.second.changed c.second.renamed
@test !c.second.timedout

@test fd_in_limits

and https://buildkite.com/julialang/julia-master/builds/15032#0182d266-b194-4cf3-b0f4-c05eab8ac7e7

@test maximum(lock_times) > 2

This last one is interesting because it doesn't seem event related @Keno

Same failures on aarch64-darwin.

https://logs.nix.ci/?attempt_id=66e4325a-4d1f-40af-888f-fb276ed411d9&key=nixos%2Fnixpkgs.205584

Error in testset FileWatching:
Test Failed at /nix/store/v90b9l5gk8vc6l91f08zsdawa6l4lj69-julia-bin-1.8.3/share/julia/stdlib/v1.8/FileWatching/test/runtests.jl:187
  Expression: c.first == F_PATH
   Evaluated: "" == "afile.txt"
Error in testset FileWatching:
Test Failed at /nix/store/v90b9l5gk8vc6l91f08zsdawa6l4lj69-julia-bin-1.8.3/share/julia/stdlib/v1.8/FileWatching/test/runtests.jl:188
  Expression: c.second.changed ⊻ c.second.renamed
Error in testset FileWatching:
Test Failed at /nix/store/v90b9l5gk8vc6l91f08zsdawa6l4lj69-julia-bin-1.8.3/share/julia/stdlib/v1.8/FileWatching/test/runtests.jl:189
  Expression: !(c.second.timedout)
Error in testset FileWatching:
Test Failed at /nix/store/v90b9l5gk8vc6l91f08zsdawa6l4lj69-julia-bin-1.8.3/share/julia/stdlib/v1.8/FileWatching/test/runtests.jl:292
  Expression: fname == "$(F_PATH)$(i)"
   Evaluated: "afile.txt" == "afile.txt1"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci Continuous integration filesystem Underlying file system and functions that use it system:mac Affects only macOS
Projects
None yet
Development

No branches or pull requests

5 participants