microsoft / microsoft/ebpf-for-windows
Usermode service isn't installed for JIT-capable installations via MSI
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.6k
- Forks
- 311
- Avg merge
- 6d 10h
- Merged PRs (30d)
- 21
Description
### Describe the bug
Loading eBPF programs requiring JIT compilation/validation fails, when using just the MSI to install the component.
### OS information
N/A
### Steps taken to reproduce bug
1. Build the Release (not the Release-NativeOnly) configuration of the solution
2. Copy over the MSI to a test device
3. Install the service. There is no checkbox or other option to enable the usermode service.
4. Attempt to run `netsh ebpf add program ...` -- this step fails.
### Expected behavior
Programs should be able to be JIT compiled and loaded.
### Actual outcome
Operations fail; the error turns out to be an RPC failure, once it's debugged far enough. There is no RPC server to handle the call, because `ebpfsvc.exe install` wasn't run--and in fact the binary was not deployed on the device at all.
### Additional details
This works fine when using the deployment script, but I haven't been in a position to use that script, and have had to come up with various workarounds for my use case. Mostly they come down to copying over the built directory in sum and then using tools from it, but I was surprised by the seeming gap from installing via MSI.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the MSI installation path with the deployment script for Release builds, focusing on whether ebpfsvc.exe is deployed and installed. Reproduce with the MSI, then verify that netsh ebpf add program succeeds and that the usermode service is available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- operating-systems, release
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100