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

[Test Failure] System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103753

Closed
rzikm opened this issue Jun 20, 2024 · 4 comments · Fixed by #103873
Closed
Labels
area-System.IO blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' Known Build Error Use this to report build issues in the .NET Helix tab

Comments

@rzikm
Copy link
Member

rzikm commented Jun 20, 2024

Build Information

Build: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=713266
Build error leg or test failing: System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize
Pull request: https://github.com/dotnet/runtime.git/pull/103720

Error Message

Fill the error message using step by step known issues guidance.

{
  "ErrorMessage": ["System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize", "Did not observe an error event within 500ms and 3 attempts."] ,
  "ErrorPattern": "",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}

Known issue validation

Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=713266
Error message validated: [System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize Did not observe an error event within 500ms and 3 attempts.]
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 6/20/2024 11:08:40 AM UTC

Report

Build Definition Test Pull Request
718424 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #101865
718455 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #100194
718427 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103567
718354 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103902
718303 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103037
718258 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103900
716128 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103835
717972 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #100745
717912 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103714
717829 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103883
717617 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103510
717603 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103837
717479 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103852
717385 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103574
717274 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103412
717204 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103861
717186 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103852
717011 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject
717021 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103836
716966 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103216
716922 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103778
716917 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #102144
716905 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103852
716617 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103847
716624 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103851
716206 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103769
716194 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject
716102 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103833
715981 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103681
715984 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103706
715926 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103826
715906 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #100379
715744 dotnet/runtime System.IO.Tests.Directory_NotifyFilter_Tests.FileSystemWatcher_Directory_NotifyFilter_Attributes #103673
715843 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103804
715812 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103701
715736 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103765
715561 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103412
715449 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103804
715438 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103806
715345 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #102167
715298 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103681
715268 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103617
715203 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103794
715199 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103793
715173 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103681
714201 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103764
714999 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #102167
714603 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103372
714868 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103769
714490 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103655
714509 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103244
714408 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103681
714339 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103769
714245 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103705
713848 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject
713687 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103728
713594 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject #103737
713266 dotnet/runtime System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize #103720

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
13 58 58
@rzikm rzikm added blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' Known Build Error Use this to report build issues in the .NET Helix tab labels Jun 20, 2024
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label Jun 20, 2024
Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-system-io
See info in area-owners.md if you want to be subscribed.

@adamsitnik
Copy link
Member

AFAIK this cod was not touched for months if not years, I have no idea why it suddenly started failing.

@jozkee any ideas?

@danmoseley
Copy link
Member

danmoseley commented Jun 23, 2024

Notes --started 6/19. Windows only both 32 and 64 bit. Apparently no relevant changes in IO or interop stuff.

Test is expecting error event from the OS for particularly large buffer.

  1. takes default 8KB size and divides by (17 + file name length + 1) to figure how much buffer can hold.
    Not clear where this comes from, and it doesn't convert WCHAR into bytes so it will over-estimate. But also seems 17 should be 12, see below. So it should divide by (12 + 2 * (file name length + 1))?
  2. it fires 10 events for each of those entries to try to overflow it.

Guess: wild guess OS patched? Or IO hardware upgraded? Try updating the 10x multiplier.

Aside: comments seem to suggest FILE_NOTIFY_INFORMATION is 16 + 2 * (Path.GetFileName(file.Path).Length + 1) but the leading bytes appear to be 12 not 16 (3x DWORD). In either case that doesn't make 17.

// that it had an effect. The size needed per operation is determined by the struct layout of
// FILE_NOTIFY_INFORMATION. This works out to 16 + 2 * (Path.GetFileName(file.Path).Length + 1) bytes, where filePath
// is the path to changed file relative to the path passed into ReadDirectoryChanges.

@v-wenyuxu
Copy link

Failed in: runtime-coreclr crossgen2 20240622.1

Failed tests:

net9.0-windows-Release-x64-TestReadyToRun_Release-(Windows.Nano.1809.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64
    - System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject

Error message:

Did not observe an error event within 500ms and 3 attempts.

Stack trace:

   at System.IO.Tests.InternalBufferSizeTests.FileSystemWatcher_InternalBufferSize_SynchronizingObject() in /_/src/libraries/System.IO.FileSystem.Watcher/tests/FileSystemWatcher.InternalBufferSize.cs:line 82
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)

@dotnet-policy-service dotnet-policy-service bot removed the untriaged New issue has not been triaged by the area owner label Jun 24, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Jul 25, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.IO blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' Known Build Error Use this to report build issues in the .NET Helix tab
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants