summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/2410.toml
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-05-30 16:52:07 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-05-30 16:52:17 +0200
commit9260319e7411ff8281700a532caa436f40120ec4 (patch)
tree2f6bfe5f3458dd49d328d3a9eb508595450adec0 /gitlab/issues/target_missing/host_missing/accel_missing/2410.toml
parent225caa38269323af1bfc2daadff5ec8bd930747f (diff)
downloadqemu-analysis-9260319e7411ff8281700a532caa436f40120ec4.tar.gz
qemu-analysis-9260319e7411ff8281700a532caa436f40120ec4.zip
gitlab scraper: download in toml and text format
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/2410.toml')
-rw-r--r--gitlab/issues/target_missing/host_missing/accel_missing/2410.toml100
1 files changed, 0 insertions, 100 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/2410.toml b/gitlab/issues/target_missing/host_missing/accel_missing/2410.toml
deleted file mode 100644
index 7518fc36c..000000000
--- a/gitlab/issues/target_missing/host_missing/accel_missing/2410.toml
+++ /dev/null
@@ -1,100 +0,0 @@
-id = 2410
-title = "linux-user: `Setsockopt` with IP_OPTIONS returns \"Protocol not available\" error"
-state = "opened"
-created_at = "2024-06-27T08:28:09.122Z"
-closed_at = "n/a"
-labels = ["kind::Bug", "linux-user"]
-url = "https://gitlab.com/qemu-project/qemu/-/issues/2410"
-host-os = "Ubuntu 22.04.3 LTS"
-host-arch = "x86_64"
-qemu-version = "6.2.0"
-guest-os = "Ubuntu 22.04.3 LTS"
-guest-arch = "RISC-V 64"
-description = """It seems that call to `setsockopt(sd, SOL_IP, IP_OPTIONS,_)` behaves differently on RISC-V Qemu than on x64 Linux. 
-On Linux syscall returns 0, but on Qemu it fails with `Protocol not available`.
-According [man](https://man7.org/linux/man-pages/man7/ip.7.html) `IP_OPTIONS` on `SOCK_STREAM` socket "should work"."""
-reproduce = """1. Use below toy program `setsockopt.c` and compile it without optimizations like:
-```
-    gcc -Wall -W -Wextra -std=gnu17 -pedantic setsockopt.c -o setsockopt
-```
-
-```
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int main() {
-    {
-        int sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-        if(sd < 0) {
-            perror("Opening stream socket error");
-            exit(1);
-        }
-        else
-            printf("Opening stream socket....OK.\\n");
-
-        struct sockaddr_in local_address = {AF_INET, htons(1234), {inet_addr("255.255.255.255")}, {0}};
-        int err = connect(sd, (struct sockaddr*)&local_address, (socklen_t)16);
-
-        if (err < 0) {
-            perror("Connect error");
-            close(sd);
-        }
-        else
-            printf("Connect...OK.\\n");
-    }
-    {
-        int sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-        if(sd < 0) {
-            perror("Opening stream socket error");
-            exit(1);
-        }
-        else
-            printf("Opening stream socket....OK.\\n");
-
-        char option[4] = {0};
-        if(setsockopt(sd, SOL_IP, IP_OPTIONS, (char *)option, sizeof(option)) < 0) {
-            perror("setsockopt error");
-            close(sd);
-            exit(1);
-        }
-        else
-            printf("setsockopt...OK.\\n");
-
-        struct sockaddr_in local_address = {AF_INET, htons(1234), {inet_addr("255.255.255.255")}, {0}};
-        int err = connect(sd, (struct sockaddr*)&local_address, (socklen_t)16);
-
-        if (err < 0) {
-            perror("Connect error");
-            close(sd);
-        }
-        else
-            printf("Connect...OK.\\n");
-    }
-    return 0;
-}
-```
-
-
-2. Run program on Qemu and compare output with output from x64 build. In my case it looks like:
-```
-root@AMDC4705:~/runtime/connect$ ./setsockopt-x64
-Opening stream socket....OK.
-Connect error: Network is unreachable
-Opening stream socket....OK.
-setsockopt...OK.
-Connect error: Network is unreachable
-
-root@AMDC4705:/runtime/connect# ./setsockopt-riscv
-Opening stream socket....OK.
-Connect error: Network is unreachable
-Opening stream socket....OK.
-setsockopt error: Protocol not available
-```"""
-additional = """In above demo option `value` is quite artificial. However I tried passing many different `option` arguments (with same `SOL_IP` + `IP_OPTIONS` combination) but always ended up with `setsockopt` failure. 
-From the other hand on x64 it worked fine. Then I realized that appropriate path in Qemu was unimplemented: https://github.com/qemu/qemu/blob/master/linux-user/syscall.c#L2141"""