Skip to content

Fix ANCM app_offline.htm notification match using QueryCCH - #68341

Merged
BrennanConroy merged 1 commit into
dotnet:mainfrom
aw0lid:fix/ancm-filewatcher
Aug 14, 2026
Merged

Fix ANCM app_offline.htm notification match using QueryCCH#68341
BrennanConroy merged 1 commit into
dotnet:mainfrom
aw0lid:fix/ancm-filewatcher

Conversation

@aw0lid

@aw0lid aw0lid commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Fix ANCM app_offline.htm notification match using QueryCCH

Description

Fixes an issue in file watcher where FILE_WATCHER::HandleChangeCompletion compared the buffer capacity (QuerySizeCCH()) instead of the actual string length (QueryCCH()) against the notified filename length. This made the notification-driven app_offline.htm match path unreachable, causing the application to rely solely on the fallback existence check.

Changes

  • Replaced _strFileName.QuerySizeCCH() with _strFileName.QueryCCH() in filewatcher.cpp.
  • Added friend class FileWatcherTests in filewatcher.h.
  • Added MockAppOfflineTrackingApplication in FakeClasses.cpp.
  • Added native unit tests covering exact matches and prefix rejections in filewatcher_tests.cpp.
  • include filewatcher_tests.cpp in CommonLibTests.vcxproj.

Fixes #68283

@dotnet-policy-service dotnet-policy-service Bot added the community-contribution Indicates that the PR has been added by a community member label Aug 11, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Thanks for your PR, @aw0lid. Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

@aw0lid
aw0lid force-pushed the fix/ancm-filewatcher branch 3 times, most recently from b92814b to c21892e Compare August 11, 2026 12:26
@aw0lid
aw0lid marked this pull request as ready for review August 11, 2026 14:23
Comment thread src/Servers/IIS/AspNetCoreModuleV2/RequestHandlerLib/filewatcher.h Outdated
Comment thread src/Servers/IIS/AspNetCoreModuleV2/CommonLibTests/filewatcher_tests.cpp Outdated
@aw0lid
aw0lid force-pushed the fix/ancm-filewatcher branch from c21892e to 83b61c5 Compare August 14, 2026 11:50
@aw0lid
aw0lid requested a review from SamMonoRT as a code owner August 14, 2026 11:50
@aw0lid
aw0lid force-pushed the fix/ancm-filewatcher branch from 83b61c5 to e452474 Compare August 14, 2026 12:10
@aw0lid

aw0lid commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Hi everyone, could someone please re-run the failed checks? Here are the errors from the build logs:

azure-pipelines/ aspnetcore-ci (Build Monitor Helix Jobs)
Build log #L92
One or more non-monitor pipeline jobs failed.
azure-pipelines/ aspnetcore-ci (Build Monitor Helix Jobs)
Build log #L94
Bash exited with code '1'.

azure-pipelines/ aspnetcore-ci (Build Test: Windows Server x64)
CSC#L0
CSC(0,0): error CS2012: Cannot open 'D:\a\_work\1\s\artifacts\obj\Microsoft.Extensions.Localization.Abstractions\Release\net11.0\Microsoft.Extensions.Localization.Abstractions.pdb' for writing -- The requested operation cannot be performed on a file with a user-mapped section open. : 'D:\a\_work\1\s\artifacts\obj\Microsoft.Extensions.Localization.Abstractions\Release\net11.0\Microsoft.Extensions.Localization.Abstractions.pdb'.

azure-pipelines/ aspnetcore-ci (Build Test: Windows Server x64)
CSC#L0
CSC(0,0): error CS2012: Cannot open 'D:\a\_work\1\s\artifacts\obj\Microsoft.JSInterop\Release\net11.0\Microsoft.JSInterop.pdb' for writing -- The requested operation cannot be performed on a file with a user-mapped section open. : 'D:\a\_work\1\s\artifacts\obj\Microsoft.JSInterop\Release\net11.0\Microsoft.JSInterop.pdb'.

azure-pipelines/ aspnetcore-ci (Build Test: Windows Server x64)
CSC#L0
CSC(0,0): error CS2012: Cannot open 'D:\a\_work\1\s\artifacts\obj\Microsoft.AspNetCore.Components\Release\net11.0\Microsoft.AspNetCore.Components.pdb' for writing -- The requested operation cannot be performed on a file with a user-mapped section open. : 'D:\a\_work\1\s\artifacts\obj\Microsoft.AspNetCore.Components\Release\net11.0\Microsoft.AspNetCore.Components.pdb'.

Thank you!

@martincostello

Copy link
Copy Markdown
Member

could someone please re-run the failed checks?

You can re-run them yourself by closing and re-opening the PR, or merging the latest code from main and pushing that.

@aw0lid aw0lid closed this Aug 14, 2026
@aw0lid aw0lid reopened this Aug 14, 2026
@aw0lid

aw0lid commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Hi everyone, a quick update: the core build and test checks have passed successfully. The remaining failures are separate from this PR's changes. The PR is ready for code review. Thank you!

@BrennanConroy

Copy link
Copy Markdown
Member

/ba-g unrelated

@BrennanConroy
BrennanConroy merged commit 75c3218 into dotnet:main Aug 14, 2026
23 of 26 checks passed
@BrennanConroy

Copy link
Copy Markdown
Member

Thanks @aw0lid!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ANCM FILE_WATCHER: app_offline.htm notification match compares buffer capacity instead of string length, making the match path unreachable

3 participants