[9.3](backport #51716) Load Npcap wpcap.dll lazily to avoid blocking upgrades on Windows#51830
Merged
Conversation
6 tasks
Contributor
🤖 GitHub commentsJust comment with:
|
|
Pinging @elastic/sec-linux-platform (Team:Security-Linux Platform) |
|
Pinging @elastic/sec-windows-platform (Team:Security-Windows Platform) |
samuelvl
approved these changes
Jul 9, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
On Windows importing
gopacket/pcapused to loadwpcap.dllin the packageinit()(see elastic/gopacket#7).When elastic-agent runs the collector in process mode, every collector process (not only packetbeat) loads
wpcap.dllat startup:While any of these processes holds the DLL open, the packetbeat installer cannot replace
wpcap.dllto upgrade Npcap.Load
wpcap.dlllazily instead of at package init so only packetbeat loads it and only when needed.Checklist
I have made corresponding changes to the documentationI have made corresponding change to the default configuration files./changelog/fragmentsusing the changelog tool.Disruptive User Impact
None.
wpcap.dllis now loaded on demand instead of at startup. Packetbeat behaves the same but other beats no longer hold the DLL open.How to test this PR locally
On Windows with an older Npcap already installed, run Packetbeat with the Network Traffic input plus other Beats. Packetbeat should upgrade Npcap and start capturing instead of failing with
exit status 2.Automated:
mage systemTeston Windows runsTestWindowsNpcapInstaller, which now also verifies that a process only importing the capture code does not loadwpcap.dll.Related issues
This is an automatic backport of pull request #51716 done by [Mergify](https://mergify.com).