keylime / keylime/keylime

Unused verifier config options after migration to VerifierServer

Open
#1,908 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
566
Forks
194
Avg merge
1d 15h
Merged PRs (30d)
1

Description

## Problem

After the verifier was migrated from `cloud_verifier_tornado.main()` to the `VerifierServer` class (`keylime/cmd/verifier.py`), several configuration options are no longer read or used by the active code path. The old `main()` function in `cloud_verifier_tornado.py` is dead code — no entry point or caller invokes it.

## Affected Options

### Fully unused

1. **`num_workers`** — Read only in `cloud_verifier_tornado.main()` (line 3015). The `VerifierServer` path ignores it entirely and defaults to `cpu_count()` via the `Server.worker_count` property. Users setting this option get no effect.

2. **`zmq_port`** (section `[revocations]`) — Read in `main()` (line 3011) to feed `revocation_notifier.start_broker()`. However, `start_broker()` is **only called from `main()`** — the `VerifierServer` path never starts the zeromq revocation broker. This may mean zeromq-based revocation notifications are silently broken in the current code.

### Partially unused

3. **`request_timeout`** — In the old `main()` (line 2873), this overrides `exclude_db["request_timeout"]` which controls attestation HTTP request timeouts. In the active `VerifierServer` path, this override never happens — `exclude_db` keeps the hardcoded `DEFAULT_TIMEOUT` from the module level. The config value *is* separately read by `revocation_notifier.py` for webhook timeouts, so it's not entirely dead, but the attestation timeout use case is broken: operators changing `request_timeout` in the config will not affect attestation request behavior.

## Recommended Actions

For each option, either:
- **Wire it up** to the `VerifierServer` active code path, or
- **Mark as deprecated** and document that it has no effect

The `zmq_port` / `start_broker()` case may warrant its own investigation, as it could indicate that zeromq revocation notifications are not functional in the current codebase.

> This issue was generated with the assistance of Claude Opus 4.6 (Anthropic).

Contributor guide

Open the contributing guide

Research direction

Start with keylime/cmd/verifier.py and compare its active VerifierServer path with the dead main() in cloud_verifier_tornado.py. Read revocation_notifier.py and the handling of num_workers, zmq_port, and request_timeout to determine which options need wiring or deprecation. Done means each option's behavior is resolved and the resulting configuration is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.