Skip to content

Eval bug: Granite 4 crashes when certain strings (seems both : and \u) are included in tool argumentsΒ #16465

@shun095

Description

@shun095

Name and Version

$ ./build/bin/llama-server --version
load_backend: loaded BLAS backend from /home/shun/Documents/dev/llama.cpp/build/bin/libggml-blas.so
ggml_cuda_init: GGML_CUDA_FORCE_MMQ: no
ggml_cuda_init: GGML_CUDA_FORCE_CUBLAS: no
ggml_cuda_init: found 1 CUDA devices:
Device 0: NVIDIA GeForce RTX 3070, compute capability 8.6, VMM: yes
load_backend: loaded CUDA backend from /home/shun/Documents/dev/llama.cpp/build/bin/libggml-cuda.so
ggml_cuda_init: GGML_CUDA_FORCE_MMQ: no
ggml_cuda_init: GGML_CUDA_FORCE_CUBLAS: no
ggml_cuda_init: found 1 ROCm devices:
Device 0: Radeon RX 7900 XTX, gfx1100 (0x1100), VMM: no, Wave Size: 32
load_backend: loaded ROCm backend from /home/shun/Documents/dev/llama.cpp/build/bin/libggml-hip.so
ggml_vulkan: Found 2 Vulkan devices:
ggml_vulkan: 0 = NVIDIA GeForce RTX 3070 (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2
ggml_vulkan: 1 = Radeon RX 7900 XTX (RADV GFX1100) (radv) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 64 | shared memory: 65536 | int dot: 1 | matrix cores: none
load_backend: loaded Vulkan backend from /home/shun/Documents/dev/llama.cpp/build/bin/libggml-vulkan.so
load_backend: loaded CPU backend from /home/shun/Documents/dev/llama.cpp/build/bin/libggml-cpu-haswell.so
version: 893 (4e0388a)
built with cc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0 for x86_64-linux-gnu

Operating systems

Linux

GGML backends

CUDA

Hardware

NVIDIA GeForce RTX 3070

Models

unsloth/granite-4.0-h-tiny-GGUF:Q4_K_M

Problem description & steps to reproduce

Granite 4 crashes when certain strings (seems both : and \u) are included in tool arguments.
It looks json parser problem, but I couldn't reproduce with unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF:UD-Q4_K_XL.
(Maybe Qwen is trained not to output \u?)
This may be related to #16415, where the stack trace points to the same json-partial.cpp:245.

Steps to reproduce:

  1. Launch the server
$ ./build/bin/llama-server -hf unsloth/granite-4.0-h-tiny-GGUF:Q4_K_M \
  -ngl 100 \
  -fa on \
  -dev "CUDA0" \
  -b 2048 \
  -ub 2048 \
  --jinja \
  --reasoning-format deepseek \
  -c 2048 \
  -np 1 \
  --temp 0
  1. Send a request with following command
$ curl http://localhost:8080/v1/chat/completions -d '{
    "model": "gpt-3.5-turbo",
    "tools": [
        {
        "type":"function",
        "function":{
            "name":"note",
            "description":"Write note",
            "parameters":{
            "type":"object",
            "properties":{
                "content":{
                "type":"string",
                "description":"Content of the note."
                }
            },
            "required":["content"]
            }
        }
        }
    ],
    "messages": [
        {
        "role": "user",
        "content": "Write note with this string exactly.: \"the pattern: /\u1F47D\u00ab\""
        }
    ],
    "stream": true
}'

First Bad Commit

No response

Relevant log output

$ ./build/bin/llama-server -hf unsloth/granite-4.0-h-tiny-GGUF:Q4_K_M \
  -ngl 100 \
  -fa on \
  -dev "CUDA0" \
  -b 2048 \
  -ub 2048 \
  --jinja \
  --reasoning-format deepseek \
  -c 2048 \
  -np 1 \
  --temp 0 -v

...

srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 8
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 9, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 211, n_cache_tokens = 211, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"id":"olOwzxBJxMxE97eKkjWXct7GkDtR4mwP","type":"function","function":{"name":"note","arguments":""}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 19: syntax error while parsing object key - invalid string: missing closing quote; last read: '"'; expected string literal: <<<
{"name": "note", ">>>
Parsed partial JSON: {"name":"note","596516649":1} (json_healing_marker: 596516649)
Cleaned up JSON {"name":"note","596516649":1} to {"name":"note"} (json_healing_marker : '596516649')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 9, n_remaining = -1, next token:   330 ' "'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 9
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 10, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 212, n_cache_tokens = 212, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 28: syntax error while parsing object key - invalid string: missing closing quote; last read: '"arguments'; expected string literal: <<<
{"name": "note", "arguments>>>
Parsed partial JSON: {"name":"note","arguments1189641421":1} (json_healing_marker: 1189641421)
Cleaned up JSON {"name":"note","arguments1189641421":1} to {"name":"note"} (json_healing_marker : '1189641421')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 10, n_remaining = -1, next token: 16774 'arguments'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 10
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 11, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 213, n_cache_tokens = 213, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments":
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments":
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 30: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal: <<<
{"name": "note", "arguments":>>>
Parsed partial JSON: {"name":"note","arguments":"1025202362"} (json_healing_marker: "1025202362)
Cleaned up JSON {"name":"note","arguments":"1025202362"} to {"name":"note"} (json_healing_marker : '"1025202362')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 11, n_remaining = -1, next token:   794 '":'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 11
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 12, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 214, n_cache_tokens = 214, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 33: syntax error while parsing object key - invalid string: missing closing quote; last read: '"'; expected string literal: <<<
{"name": "note", "arguments": {">>>
Parsed partial JSON: {"name":"note","arguments":{"1350490027":1}} (json_healing_marker: 1350490027)
Cleaned up JSON {"name":"note","arguments":{"1350490027":1}} to {"name":"note","arguments":"{\""} (json_healing_marker : '1350490027')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 12, n_remaining = -1, next token:  5324 ' {"'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 12
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 13, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 215, n_cache_tokens = 215, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 40: syntax error while parsing object key - invalid string: missing closing quote; last read: '"content'; expected string literal: <<<
{"name": "note", "arguments": {"content>>>
Parsed partial JSON: {"name":"note","arguments":{"content783368690":1}} (json_healing_marker: 783368690)
Cleaned up JSON {"name":"note","arguments":{"content783368690":1}} to {"name":"note","arguments":"{\"content"} (json_healing_marker : '783368690')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 13, n_remaining = -1, next token:  1834 'content'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 13
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 14, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 216, n_cache_tokens = 216, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"content"}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content":
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content":
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 42: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal: <<<
{"name": "note", "arguments": {"content":>>>
Parsed partial JSON: {"name":"note","arguments":{"content":"1102520059"}} (json_healing_marker: "1102520059)
Cleaned up JSON {"name":"note","arguments":{"content":"1102520059"}} to {"name":"note","arguments":"{\"content\":"} (json_healing_marker : '"1102520059')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 14, n_remaining = -1, next token:   794 '":'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 14
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 15, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 217, n_cache_tokens = 217, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":"}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content": "
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content": "
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 44: syntax error while parsing value - invalid string: missing closing quote; last read: '"': <<<
{"name": "note", "arguments": {"content": ">>>
Parsed partial JSON: {"name":"note","arguments":{"content":"2044897763"}} (json_healing_marker: 2044897763)
Cleaned up JSON {"name":"note","arguments":{"content":"2044897763"}} to {"name":"note","arguments":"{\"content\":\""} (json_healing_marker : '2044897763')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 15, n_remaining = -1, next token:   330 ' "'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 15
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 16, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 218, n_cache_tokens = 218, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\""}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content": "the
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content": "the
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 47: syntax error while parsing value - invalid string: missing closing quote; last read: '"the': <<<
{"name": "note", "arguments": {"content": "the>>>
Parsed partial JSON: {"name":"note","arguments":{"content":"the1967513926"}} (json_healing_marker: 1967513926)
Cleaned up JSON {"name":"note","arguments":{"content":"the1967513926"}} to {"name":"note","arguments":"{\"content\":\"the"} (json_healing_marker : '1967513926')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 16, n_remaining = -1, next token:  1820 'the'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 16
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 17, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 219, n_cache_tokens = 219, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"the"}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content": "the pattern
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content": "the pattern
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 55: syntax error while parsing value - invalid string: missing closing quote; last read: '"the pattern': <<<
{"name": "note", "arguments": {"content": "the pattern>>>
Parsed partial JSON: {"name":"note","arguments":{"content":"the pattern1365180540"}} (json_healing_marker: 1365180540)
Cleaned up JSON {"name":"note","arguments":{"content":"the pattern1365180540"}} to {"name":"note","arguments":"{\"content\":\"the pattern"} (json_healing_marker : '1365180540')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 17, n_remaining = -1, next token:  5497 ' pattern'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 17
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 18, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 220, n_cache_tokens = 220, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" pattern"}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content": "the pattern:
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content": "the pattern:
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 56: syntax error while parsing value - invalid string: missing closing quote; last read: '"the pattern:': <<<
{"name": "note", "arguments": {"content": "the pattern:>>>
Parsed partial JSON: {"name":"note","arguments":{"content":"the pattern:1540383426"}} (json_healing_marker: 1540383426)
Cleaned up JSON {"name":"note","arguments":{"content":"the pattern:1540383426"}} to {"name":"note","arguments":"{\"content\":\"the pattern:"} (json_healing_marker : '1540383426')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 18, n_remaining = -1, next token:    25 ':'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 18
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 19, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 221, n_cache_tokens = 221, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":":"}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content": "the pattern: /
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content": "the pattern: /
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 58: syntax error while parsing value - invalid string: missing closing quote; last read: '"the pattern: /': <<<
{"name": "note", "arguments": {"content": "the pattern: />>>
Parsed partial JSON: {"name":"note","arguments":{"content":"the pattern: /304089172"}} (json_healing_marker: 304089172)
Cleaned up JSON {"name":"note","arguments":{"content":"the pattern: /304089172"}} to {"name":"note","arguments":"{\"content\":\"the pattern: /"} (json_healing_marker : '304089172')
Partial parse: incomplete tool call
srv          send: sending result for task id = 0
srv          send: task id = 0 pushed to result queue
slot process_toke: id  0 | task 0 | n_decoded = 19, n_remaining = -1, next token:   611 ' /'
srv  update_slots: run slots completed
que    start_loop: waiting for new tasks
que    start_loop: processing new tasks
que    start_loop: processing task, id = 19
que    start_loop: update slots
srv  update_slots: posting NEXT_RESPONSE
que          post: new task, id = 20, front = 0
slot update_slots: id  0 | task 0 | slot decode token, n_ctx = 2048, n_past = 222, n_cache_tokens = 222, truncated = 0
srv  update_slots: decoding batch, n_tokens = 1
clear_adapter_lora: call
set_embeddings: value = 0
data stream, to_send: data: {"choices":[{"finish_reason":null,"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" /"}}]}}],"created":1759847729,"id":"chatcmpl-rAY0A6nrcZKniMds1faVfd0yfGFAEok2","model":"gpt-3.5-turbo","system_fingerprint":"b893-4e0388aa8","object":"chat.completion.chunk"}

srv  update_chat_: Parsing chat message: <tool_call>
{"name": "note", "arguments": {"content": "the pattern: /\u
Parsing input with format Hermes 2 Pro: <tool_call>
{"name": "note", "arguments": {"content": "the pattern: /\u
Failed to parse up to error: [json.exception.parse_error.101] parse error at line 2, column 60: syntax error while parsing value - invalid string: '\u' must be followed by 4 hex digits; last read: '"the pattern: /\u': <<<
{"name": "note", "arguments": {"content": "the pattern: /\u>>>
[New LWP 1426796]
[New LWP 1426802]
[New LWP 1426805]
[New LWP 1427481]
[New LWP 1427482]
[New LWP 1427483]
[New LWP 1427484]
[New LWP 1427485]
[New LWP 1427486]
[New LWP 1427487]
[New LWP 1427488]
[New LWP 1427489]
[New LWP 1427490]
[New LWP 1427491]
[New LWP 1427492]
[New LWP 1427493]
[New LWP 1427494]
[New LWP 1427495]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007b30498ea42f in __GI___wait4 (pid=pid@entry=1429203, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
30	../sysdeps/unix/sysv/linux/wait4.c: No such file or directory.
#0  0x00007b30498ea42f in __GI___wait4 (pid=pid@entry=1429203, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
30	in ../sysdeps/unix/sysv/linux/wait4.c
#1  0x00007b30498ea3ab in __GI___waitpid (pid=pid@entry=1429203, stat_loc=stat_loc@entry=0x0, options=options@entry=0) at ./posix/waitpid.c:38
38	./posix/waitpid.c: No such file or directory.
#2  0x00007b304a2e5d13 in ggml_print_backtrace () at /home/shun/Documents/dev/llama.cpp/ggml/src/ggml.c:196
196	        waitpid(child_pid, NULL, 0);
#3  0x00007b304a2f3cbf in ggml_uncaught_exception () at /home/shun/Documents/dev/llama.cpp/ggml/src/ggml.cpp:9
9	    ggml_print_backtrace();
#4  0x00007b3049cae20c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007b3049cae277 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007b3049cae4d8 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x000057d9be5e881a in nlohmann::json_abi_v3_12_0::detail::json_sax_dom_callback_parser<nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::parse_error<nlohmann::json_abi_v3_12_0::detail::parse_error> (ex=..., this=<optimized out>) at /home/shun/Documents/dev/llama.cpp/common/../vendor/nlohmann/json.hpp:9378
9378	            JSON_THROW(ex);
#8  0x000057d9be6a2534 in nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser<nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::parse_error<nlohmann::json_abi_v3_12_0::detail::parse_error> (ex=..., this=0x7ffc5b41cd60) at /home/shun/Documents/dev/llama.cpp/common/../vendor/nlohmann/json.hpp:8981
8981	        if (allow_exceptions)
#9  nlohmann::json_abi_v3_12_0::detail::parser<nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::sax_parse_internal<nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser<nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > (this=0x7ffc5b41cf80, sax=sax@entry=0x7ffc5b41cd60) at /home/shun/Documents/dev/llama.cpp/common/../vendor/nlohmann/json.hpp:13324
13324	            return sax->parse_error(m_lexer.get_position(),
#10 0x000057d9be6a51a2 in nlohmann::json_abi_v3_12_0::detail::parser<nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::parse (this=0x7ffc5b41cf80, strict=<optimized out>, result=...) at /home/shun/Documents/dev/llama.cpp/common/../vendor/nlohmann/json.hpp:12984
12984	            sax_parse_internal(&sdp);
#11 0x000057d9be6f6c09 in nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>::parse<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::function<bool (int, nlohmann::json_abi_v3_12_0::detail::parse_event_t, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>&)>, bool, bool) (i=..., cb=..., allow_exceptions=<optimized out>, ignore_comments=<optimized out>) at /home/shun/Documents/dev/llama.cpp/common/../vendor/nlohmann/json.hpp:24063
24063	        parser(detail::input_adapter(std::forward<InputType>(i)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved,accessForwarded]
#12 0x000057d9be605e74 in common_json_parse (it=10 '\n', end=0 '\000', healing_marker="1303455736", out=...) at /home/shun/Documents/dev/llama.cpp/common/json-partial.cpp:245
245	            out.json = json::parse(str);
#13 0x000057d9be7a5668 in common_chat_msg_parser::try_consume_json (this=0x7ffc5b41dbe0) at /home/shun/Documents/dev/llama.cpp/common/chat-parser.cpp:266
266	    if (!common_json_parse(it, end, healing_marker_, result)) {
#14 0x000057d9be7a67f4 in common_chat_msg_parser::try_consume_json_with_dumped_args (this=this@entry=0x7ffc5b41dbe0, args_paths=std::vector of length 1, capacity 1 = {...}, content_paths=std::vector of length 0, capacity 0) at /home/shun/Documents/dev/llama.cpp/common/chat-parser.cpp:301
301	    auto partial = try_consume_json();
#15 0x000057d9be6fca59 in common_chat_parse_hermes_2_pro (builder=...) at /home/shun/Documents/dev/llama.cpp/common/chat.cpp:2273
2273	            if (auto tool_call = builder.try_consume_json_with_dumped_args({{"arguments"}})) {
#16 0x000057d9be70c2b0 in common_chat_parse (builder=...) at /home/shun/Documents/dev/llama.cpp/common/chat.cpp:2903
2903	            common_chat_parse_hermes_2_pro(builder);
#17 common_chat_parse (input="<tool_call>\n{\"name\": \"note\", \"arguments\": {\"content\": \"the pattern: /\\u", is_partial=<optimized out>, syntax=...) at /home/shun/Documents/dev/llama.cpp/common/chat.cpp:2935
2935	        common_chat_parse(builder);
#18 0x000057d9be65e0a0 in server_slot::update_chat_msg (this=this@entry=0x57d9f3c22ca0, diffs=std::vector of length 0, capacity 0) at /home/shun/Documents/dev/llama.cpp/tools/server/server.cpp:1620
1620	            params.oaicompat_chat_syntax);
#19 0x000057d9be65eada in server_context::send_partial_response (this=this@entry=0x7ffc5b420bd0, slot=..., tkn=..., is_progress=is_progress@entry=false) at /home/shun/Documents/dev/llama.cpp/tools/server/server.cpp:2776
2776	            slot.update_chat_msg(res->oaicompat_msg_diffs);
#20 0x000057d9be65f2cd in server_context::process_token (this=this@entry=0x7ffc5b420bd0, result=..., slot=...) at /home/shun/Documents/dev/llama.cpp/tools/server/server.cpp:2568
2568	                send_partial_response(slot, result, false);
#21 0x000057d9be690962 in server_context::update_slots (this=<optimized out>) at /home/shun/Documents/dev/llama.cpp/tools/server/server.cpp:3923
3923	                if (!process_token(result, slot)) {
#22 0x000057d9be64ac27 in std::function<void ()>::operator()() const (this=0x7ffc5b422348) at /usr/include/c++/11/bits/std_function.h:590
590		return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...);
#23 server_queue::start_loop (this=0x7ffc5b422228) at /home/shun/Documents/dev/llama.cpp/tools/server/server.cpp:1918
1918	            callback_update_slots();
#24 0x000057d9be609538 in main (argc=<optimized out>, argv=<optimized out>) at /home/shun/Documents/dev/llama.cpp/tools/server/server.cpp:5370
5370	    ctx_server.queue_tasks.start_loop();
[Inferior 1 (process 1426661) detached]
terminate called after throwing an instance of 'nlohmann::json_abi_v3_12_0::detail::parse_error'
  what():  [json.exception.parse_error.101] parse error at line 2, column 66: syntax error while parsing object - unexpected number literal; expected '}'
[1]    1426661 IOT instruction (core dumped)  ./build/bin/llama-server -hf unsloth/granite-4.0-h-tiny-GGUF:Q4_K_M -ngl 100

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions