microsoft / microsoft/ebpf-for-windows

Usermode service isn't installed for JIT-capable installations via MSI

Open
#3,215 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug P3 triaged
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.