Skip to content

common : re-arm reasoning budget after DONE on new <think>#22323

Merged
pwilkin merged 1 commit intoggml-org:masterfrom
BruceJillis:fix/reasoning-budget-multi-block
Apr 28, 2026
Merged

common : re-arm reasoning budget after DONE on new <think>#22323
pwilkin merged 1 commit intoggml-org:masterfrom
BruceJillis:fix/reasoning-budget-multi-block

Conversation

@BruceJillis
Copy link
Copy Markdown
Contributor

Overview

DONE state in reasoning budget state machine absorbs start tags, causing any block after the first to run unbudgeted. This makes it so the reasoning budget is a no-op for multi-block thinking models. Using the Qwen3.6-27B model with the recommended settings causes this issue to appear [1]. The fix is to re-arm in DONE on a match and transition to COUNTING with a fresh budget. I've added a regression test in test-reasoning-budget to test for this new behavior and all 6 tests pass.

  • [1] "Thinking Preservation: we've introduced a new option to retain reasoning context from historical messages, streamlining iterative development and reducing overhead." - https://huggingface.co/Qwen/Qwen3.6-27B

Additional information

Reproducible using: unsloth/Qwen3.6-27B-GGUF, server flags: --reasoning-budget 128 --reasoning-format deepseek --jinja, base commit: master at 15fa3c493 (b8920)

Request body

{
  "model": "kimi-q36-27b",
  "messages": [
    { "role": "user", "content": "Get the current time, then tell me what it is." },
    {
      "role": "assistant",
      "content": "<think>The user wants the time. I should call get_time to retrieve it.</think>",
      "tool_calls": [
        {
          "id": "call_1",
          "type": "function",
          "function": { "name": "get_time", "arguments": "{}" }
        }
      ]
    },
    { "role": "tool", "tool_call_id": "call_1", "content": "12:00 PM UTC" }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_time",
        "description": "Get the current time.",
        "parameters": { "type": "object", "properties": {} }
      }
    }
  ],
  "temperature": 0.3,
  "max_tokens": 512
}

Before

reasoning-budget: activated, budget=128 tokens
reasoning-budget: deactivated (natural end)
[prompt processing done; 54 tokens generated with no further reasoning-budget events]

The second <think> (the assistant prefill at end of prompt) hit DONE state and was silently absorbed. The subsequent generation ran without budget enforcement.

After (this PR)

reasoning-budget: activated, budget=128 tokens
reasoning-budget: deactivated (natural end)
reasoning-budget: re-activated on new start tag, budget=128 tokens
reasoning-budget: deactivated (natural end)

The new re-activated on new start tag line is the fix in common_reasoning_budget_accept: when a start tag is accepted in DONE, the sampler transitions back to COUNTING with a fresh budget. The downstream deactivated (natural end) confirms the second block was tracked to completion.

Related work includes: #21594 handles cross-generation reset and #21141 adds a conclusion state. Both are independent of this fix which targets the case of multiple blocks in the same request.

Requirements

  • I have read and agree with the contributing guidelines
  • AI usage disclosure: YES. I used AI for assistance (tracking down the root cause by reviewing opencode session exports and captured llama server logs, searching for duplicate issues / PRs, tightening code comments, iteration on reproduction and testing iterations of the fix). I have reviewed all changes, understand them fully, and take responsibility for the submitted code.

DONE state absorbs all tokens including a new start tag, causing any think blocks after the first to run unbudgeted. Observed on unsloth/Qwen3.6-27B-GGUF which interleaves multiple <think> blocks per response.

Fixed by advancing start_matcher in DONE branch and re-arming to COUNTING with a fresh budget on match. Adds regression test (test-reasoning-budget: test 6).
@BruceJillis BruceJillis requested review from a team and ggerganov as code owners April 24, 2026 15:01
@github-actions github-actions Bot added the testing Everything test related label Apr 24, 2026
@aldehir
Copy link
Copy Markdown
Contributor

aldehir commented Apr 24, 2026

[1] "Thinking Preservation: we've introduced a new option to retain reasoning context from historical messages, streamlining iterative development and reducing overhead." - https://huggingface.co/Qwen/Qwen3.6-27B

This doesn't mean the model produces multiple thinking blocks within a single generation. It means thinking blocks from previous generations aren't stripped from the context on later turns. Those are two different things.

Also, the template itself doesn't handle content with multiple thinking blocks. I suspect the real issue here is that your thinking budget is too low, which is confusing the model. Some models will leak thinking in other ways when you over-constrain them.

@pwilkin
Copy link
Copy Markdown
Member

pwilkin commented Apr 24, 2026

As @aldehir said. From my tests on Qwen3.5/3.6, using too low of a reasoning budget would cause the model to spill reasoning over to content. In extreme cases, it would do what you're describing as "opening a second thinking block", but that isn't a legitimate construction.

@pwilkin pwilkin added the wontfix This will not be worked on label Apr 24, 2026
@BruceJillis
Copy link
Copy Markdown
Contributor Author

[1] "Thinking Preservation: we've introduced a new option to retain reasoning context from historical messages, streamlining iterative development and reducing overhead." - https://huggingface.co/Qwen/Qwen3.6-27B

This doesn't mean the model produces multiple thinking blocks within a single generation. It means thinking blocks from previous generations aren't stripped from the context on later turns. Those are two different things.

You are right, after reading it more carefully this is about thinking across turns. However preservation does indirectly put prior turn <think> blocks in the rendered prompt which combined with the assistant's <think> prefill produces a prompt with 2 tokens.

Also, the template itself doesn't handle content with multiple thinking blocks. I suspect the real issue here is that your thinking budget is too low, which is confusing the model. Some models will leak thinking in other ways when you over-constrain them.

The captured logs show both activated and deactivated (natural end) fire between prompt processing progress and prompt processing done meaning both <think> and </think> came from prompt tokens, not generation.

The first block ended with deactivated (natural end), not budget exhausted, so the budget wasn't the trigger. Also, generation hasn't begun when the bug fires, so "model confused by low budget" seems unlikely. The regression test (test-reasoning-budget test 6) reproduces the state-machine gap with a hand-fed token sequence, no model involvement. The bug is a state-machine correctness issue.

Before

t=3.46.875.429  task 219 | new prompt, task.n_tokens = 317
t=3.46.875.530  task 219 | prompt processing progress, n_tokens = 313
t=3.46.970.104  reasoning-budget: activated, budget=128 tokens
t=3.46.970.115  reasoning-budget: deactivated (natural end)
t=3.46.970.121  task 219 | init sampler
t=3.46.970.122  task 219 | prompt processing done
t=3.48.290.105  task 219 | stop processing: n_tokens = 369

After

t=0.16.800.728  reasoning-budget: activated, budget=128 tokens
t=0.16.800.756  reasoning-budget: deactivated (natural end)
t=0.16.800.762  reasoning-budget: re-activated on new start tag, budget=128 tokens
t=0.16.800.768  task 0 | init sampler
t=0.17.815.860  reasoning-budget: deactivated (natural end)   

NB. Happy to share the complete server logs (or re-run with a different budget/prompt) if it would help

@aldehir
Copy link
Copy Markdown
Contributor

aldehir commented Apr 24, 2026

The captured logs show both activated and deactivated (natural end) fire between prompt processing progress and prompt processing done meaning both and came from prompt tokens, not generation.

Ah, good catch. Yes, this is apparent with preserve_thinking = true. Your PR solves it, but I think the right solution is to avoid passing prompt tokens to the reasoning budget sampler. I'll follow up with a PR to do that.

@BruceJillis
Copy link
Copy Markdown
Contributor Author

Thanks for the clear pointer, @aldehir, after reading around more I can see what you mean. The accept_grammar parameter in common_sampler_accept already distinguishes prompt tokens from generation tokens and the grammar sampler already uses that gate. So I'm thinking rbudget should hook in there, gating on the caller's original value before grammar_should_apply(). Does that match what you had in mind?

I'm very new to this codebase, so I missed that entirely and went for the state-machine fix instead. Would you be okay with me submitting that as a follow-up PR? Let me know if you'd rather take it yourself, i'm happy to stand down.

@aldehir
Copy link
Copy Markdown
Contributor

aldehir commented Apr 25, 2026

So I'm thinking rbudget should hook in there, gating on the caller's original value before grammar_should_apply(). Does that match what you had in mind?

Yes, this is the issue. However, there's another subtle problem for templates that include an opening <think> in their template. The server will process all tokens from the template with accept_grammar = false, which means the reasoning budget sampler will never trigger if the guard is added.

I am exploring adding assistant prefill that requires the issue above fixed as well. For now, I think we can accept your PR as is.

@BruceJillis
Copy link
Copy Markdown
Contributor Author

Thanks @aldehir that is indeed a tricky edge case I hadn't considered. Happy to leave the prefill problem to you. Let me know if there's anything useful I can do while this PR works through review.

Copy link
Copy Markdown
Contributor

@aldehir aldehir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BruceJillis thank you for the PR and diagnosing the bug.

cc @pwilkin

@pwilkin
Copy link
Copy Markdown
Member

pwilkin commented Apr 28, 2026

Sorry, yeah, let's use this as a workaround for now and fix it properly as a followup.

@pwilkin pwilkin merged commit 52e5f0a into ggml-org:master Apr 28, 2026
44 of 46 checks passed
@tha80
Copy link
Copy Markdown
Contributor

tha80 commented Apr 29, 2026

@BruceJillis:
After your PR has been merged, I see the following in my log for a multi-turn agentic use-case:

srv  proxy_reques: proxying request to model Qwen3.6-27B-thinking on port 59055
[59055] srv  params_from_: Chat format: peg-native
[59055] slot get_availabl: id  1 | task -1 | selected slot by LCP similarity, sim_best = 1.000 (> 0.100 thold), f_keep = 1.000
[59055] slot launch_slot_: id  1 | task -1 | sampler chain: logits -> ?penalties -> ?dry -> ?top-n-sigma -> top-k -> ?typical -> top-p -> ?min-p -> ?xtc -> temp-ext -> dist 
[59055] slot launch_slot_: id  1 | task 1299 | processing task, is_child = 0
[59055] slot update_slots: id  1 | task 1299 | new prompt, n_ctx_slot = 262144, n_keep = 0, task.n_tokens = 139115
[59055] slot update_slots: id  1 | task 1299 | n_past = 139053, slot.prompt.tokens.size() = 139054, seq_id = 1, pos_min = 137609, n_swa = 0
[59055] slot update_slots: id  1 | task 1299 | Checking checkpoint with [137494, 137494] against 137609...
[59055] slot update_slots: id  1 | task 1299 | restored context checkpoint (pos_min = 137494, pos_max = 137494, n_tokens = 138939, n_past = 138939, size = 149.626 MiB)
[59055] slot update_slots: id  1 | task 1299 | n_tokens = 138939, memory_seq_rm [137495, end)
[59055] slot update_slots: id  1 | task 1299 | prompt processing progress, n_tokens = 139111, batch.n_tokens = 172, progress = 0.999971
[59055] slot update_slots: id  1 | task 1299 | n_tokens = 139111, memory_seq_rm [137667, end)
[59055] reasoning-budget: activated, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] reasoning-budget: deactivated (natural end)
[59055] reasoning-budget: re-activated on new start tag, budget=2147483647 tokens
[59055] slot init_sampler: id  1 | task 1299 | init sampler, took 17.59 ms, tokens: text = 137595, total = 139115
[59055] slot update_slots: id  1 | task 1299 | prompt processing done, n_tokens = 139115, batch.n_tokens = 4
[59055] slot create_check: id  1 | task 1299 | erasing old context checkpoint (pos_min = 63110, pos_max = 63110, n_tokens = 64555, size = 149.626 MiB)
[59055] slot create_check: id  1 | task 1299 | created context checkpoint 64 of 64 (pos_min = 137666, pos_max = 137666, n_tokens = 139111, size = 149.626 MiB)
[59055] begin: ngram_mod occupancy = 56043/4194304 (0.01)
[59055] srv  log_server_r: done request: POST /v1/chat/completions 127.0.0.1 200
srv  log_server_r: done request: POST /v1/chat/completions 172.20.0.1 200
[59055] reasoning-budget: deactivated (natural end)
[59055] slot print_timing: id  1 | task 1299 | 
[59055] prompt eval time =     510.39 ms /   176 tokens (    2.90 ms per token,   344.84 tokens per second)
[59055]        eval time =    1007.17 ms /    89 tokens (   11.32 ms per token,    88.37 tokens per second)
[59055]       total time =    1517.56 ms /   265 tokens
[59055] draft acceptance rate = 1.00000 (   85 accepted /    85 generated)
[59055] statistics ngram_mod: #calls(b,g,a) = 54 1024 135, #gen drafts = 135, #acc drafts = 135, #gen tokens = 8640, #acc tokens = 4371, dur(b,g,a) = 322.867, 35.561, 5.396 ms
[59055] slot      release: id  1 | task 1299 | stop processing: n_tokens = 139203, truncated = 0
[59055] srv  update_slots: all slots are idle

With every turn there are more of those "deactivated / re-activated" messages.

I think it is not doing any harm besides spamming my log, but nevertheless something that probably should get fixed.

As this PR is already merged, should I create a new issue for that?

@BruceJillis
Copy link
Copy Markdown
Contributor Author

@tha80 Thanks for reporting! This is a side effect of my fix.. the log lines were useful for validating the fix so I never considered they'd become noisy in long conversations. There's an architectural fix in the works (#22488) that will supersede this workaround. I'll check whether it resolves this too, and if not I'll push a follow-up PR asap.

cnsiva pushed a commit to saas-home/llama.cpp that referenced this pull request Apr 29, 2026
…22323)

DONE state absorbs all tokens including a new start tag, causing any think blocks after the first to run unbudgeted. Observed on unsloth/Qwen3.6-27B-GGUF which interleaves multiple <think> blocks per response.

Fixed by advancing start_matcher in DONE branch and re-arming to COUNTING with a fresh budget on match. Adds regression test (test-reasoning-budget: test 6).
rsenthilkumar6 pushed a commit to rsenthilkumar6/llama.cpp that referenced this pull request May 1, 2026
…22323)

DONE state absorbs all tokens including a new start tag, causing any think blocks after the first to run unbudgeted. Observed on unsloth/Qwen3.6-27B-GGUF which interleaves multiple <think> blocks per response.

Fixed by advancing start_matcher in DONE branch and re-arming to COUNTING with a fresh budget on match. Adds regression test (test-reasoning-budget: test 6).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

testing Everything test related wontfix This will not be worked on

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants