1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<think>
Okay, so I need to classify this bug report into one of the given categories. Let's read through the information carefully.
The user reports that the "-serial unix:" option in qemu-system-arm is broken in QEMU 2.6.0 but works fine in 2.5.1. The issue causes parts of the output to disappear occasionally.
They identified a specific commit as the cause: "char: ensure all clients are in non-blocking mode" by Daniel P. Berrange. This commit sets the UNIX socket to non-blocking mode, which is intended to improve performance and prevent blocking calls.
However, the problem arises because the function `qemu_chr_fe_write` doesn't handle the `EAGAIN` error properly when writing data. In non-blocking mode, if the socket buffer is full, write operations can return `EAGAIN`, indicating that the operation cannot be completed immediately. The current code doesn't loop to retry the write until all data is sent or handle this case correctly.
The user suggests a fix by modifying `qemu-char.c` to add a loop that retries writes when `EAGAIN` occurs, ensuring that all data is eventually written without losing any output.
Now, looking at the possible categories:
- **mistranslation**: Incorrect mapping from source to target. Doesn't fit here since it's about sockets.
- **assembly**: Lowering issues in assembly code. Not applicable here.
- **other**: A catch-all category.
- **device**: Hardware device-related bugs. Maybe, but not directly the case.
- **graphic**: Graphics issues. No relevance.
- **socket**: This seems directly related to socket handling.
- **network**: Network-related bugs; sockets are part of networking.
- **KVM**: Kernel-based virtual machine. Not relevant here.
- **boot**, **vnc**, **debug**, **files**, **permissions**, **performance**, **kernel**, **peripherals**, **hypervisor**: None of these seem to fit as well.
The issue is specifically about the handling of a UNIX socket in QEMU, which relates to network communication. However, since it's more about the socket implementation and how writes are handled non-blocking mode, "socket" seems like the most precise category.
</think>
network
|