You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The CI-produced x86 IIS module (fuzzy.dll, ssdeep) was built with MinGW gcc and imported the MinGW runtime DLLs (libgcc_s_dw2-1.dll -> libwinpthread-1.dll). These were not packaged in the MSI, so the x86 module failed to load in 32-bit application pools with error 126 (ERROR_MOD_NOT_FOUND), while the x64 module worked fine.
Fix
In .github/workflows/test-ci-windows.yml, build ssdeep with -static-libgcc so the MinGW runtime is statically linked into fuzzy.dll. The resulting x86 DLL is self-contained and loads cleanly in 32-bit application pools without needing the external MinGW runtime DLLs.
Regression test
Added a new Test IIS Module in 32-bit Application Pool step that:
Verifies the globally-registered ModSecurity IIS (32bits) native module exists.
Creates a dedicated 32-bit application pool and site, then confirms a request returns HTTP 200.
Checks the Application event log for dll failed to load / error 126 entries.
The test was validated against the previous (broken) build: with the old dynamic-link build the 32-bit pool returned HTTP 503 (module failed to load) and the step correctly failed; with this fix it returns HTTP 200 and passes.
Validation
Fixed build: all jobs green, including the new 32-bit pool test (HTTP 200, no load errors).
Old build (temporary revert): the new 32-bit pool test correctly failed with unexpected status 503, confirming it reproduces and catches the x86 load issue.
Auto reviews are disabled on base/target branches other than the default branch.
Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 1be1a09d-6d83-4de4-86c6-bda126d1b618
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
🔍 Trigger review
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #3599
The CI-produced x86 IIS module (
fuzzy.dll, ssdeep) was built with MinGW gcc and imported the MinGW runtime DLLs (libgcc_s_dw2-1.dll->libwinpthread-1.dll). These were not packaged in the MSI, so the x86 module failed to load in 32-bit application pools with error 126 (ERROR_MOD_NOT_FOUND), while the x64 module worked fine.Fix
In
.github/workflows/test-ci-windows.yml, build ssdeep with-static-libgccso the MinGW runtime is statically linked intofuzzy.dll. The resulting x86 DLL is self-contained and loads cleanly in 32-bit application pools without needing the external MinGW runtime DLLs.Regression test
Added a new
Test IIS Module in 32-bit Application Poolstep that:ModSecurity IIS (32bits)native module exists.dll failed to load/ error 126 entries.The test was validated against the previous (broken) build: with the old dynamic-link build the 32-bit pool returned HTTP 503 (module failed to load) and the step correctly failed; with this fix it returns HTTP 200 and passes.
Validation
unexpected status 503, confirming it reproduces and catches the x86 load issue.