Fuzz: "==5839== ERROR: libFuzzer: timeout after 1411 seconds" (ubuntu-latest)
- Dominant language
- Rust
- Stars
- 1k
- Forks
- 212
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 65
Description
The fuzz-testing workflow has detected a bug.
Auto-Minimized Fuzzing Input That Triggers the Bug: Click this line.
Note: If the input is multi-line then the end-of-line characters '
' (0x0A) and '
' (0x0D)
may affect the reproducibility of the bug. If you fail to repro the bug with the input shown below
then you may want to go to the workflow that reported this GitHub bug,
download the artifact, and extract the file with the exact minimized input.
```qs
(Input minimization failed, see the workflow logs and artifacts)
```
The branch/commit the bug has been found in: Click.
If the developers fail to repro the bug in the latest main then the branch/commit info below can help them to make sure
that they are using the correct way to repro. If the bug is reproducible in the branch/commit below, but not in latest main,
then the bug is likely fixed already or is not in the main branch.
```log
Branch: * main
commit d123f370561f35188b2dfe7227735348a8b65f3e
Author: Dima Fedoriaka
Date: Mon Jul 20 20:56:36 2026 -0700
Std.Core.GetConfig (#3486)
* Store key-value configuration map in compiler state (actually, in
PassContext).
* Add `Std.Core.GetConfig` to access config value stored inside compiler
state (actually it's stored in PassContext.
* It must be in `Std.Core` so we can refer to it in HIR pass.
* Add HIR transformation pass `ConfigInline` to relace`GetConfig(key,
default)` with a literal
* If key is found, replaces call with found value.
* Otherwise replaces with default.
* Only supports 4 types (string, int, bool, double).
* Error if stored or default value has type other than these 4 types, or
when stored value has different type than default. This guarantees, for
example, that `GetConfig("key", 1)` will not be replaced with a String
value if config has `{'key": "1"}`.
* Also require that both key and default value are literals.
* Add Python API to set config:
* The config must be set by passing Python dict to Context constructor.
If not passed, empty dict is used.
* Deliberately not supported in `qsharp.init`.
* Once `Context` is created, it's immutable. To use different config
value, new `Context` must be created. This makes it valid for
`GetConfig` to be a function, not operation.
* This is propagated from Python to Rust by passing dict to
`Interpreter::new`.
* It's impossible to mutate config after `Context` is created using
Python API.
* Tests:
* Unit tests for rule.
* Interpreter tests (in compiler/qsc/src/interpret/tests.rs) using
simulator, including tests for all possible errors.
* One QIR generator test to make sure the GetConfig is inlined in QIR.
This single test takes 3 seconds to run. However, We we have 24 qirgen
tests, each taking 3-6 seconds to run - meaning qirgen tests are slow.
Example:
```python
import qdk
context = qdk.Context(qsharp_config={"experiment_name": "baseline", "shots": 1000})
assert context.eval('Std.Core.GetConfig("experiment_name", "")') == "baseline"
assert context.eval('Std.Core.GetConfig("shots", 100)') == 1000
assert context.eval('Std.Core.GetConfig("noise_level", 0.01)') == 0.01
```
```
**Other Info**
- [**Workflow**](https://github.com/microsoft/qdk/actions/runs/29800583170) (contains the run artifacts).
- **Workflow Agent System Info:** `ubuntu-latest: Linux runnervm3jd5f 6.17.0-1020-azure #20~24.04.1-Ubuntu SMP Fri Jun 19 20:09:14 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux`.
Contributor guide
Assessment
This issue has not been assessed yet.