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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
id = 957
title = "qemu-m68k: python runtime failures, \"The futex facility returned an unexpected error code.\""
state = "closed"
created_at = "2022-04-02T15:17:28.037Z"
closed_at = "2022-08-30T00:58:36.508Z"
labels = ["Closed::Invalid", "linux-user", "target: m68k"]
url = "https://gitlab.com/qemu-project/qemu/-/issues/957"
host-os = "Gentoo Linux"
host-arch = "m68k"
qemu-version = "6.2.0"
guest-os = "Gentoo Linux"
guest-arch = "m68k"
description = """The python interpreter (both Python 3.9 and Python 3.10) crashes during a rebuild of Python itself (fairly reproducible but not always at the same point of the build; using MAKEOPTS=-j1 or running under high system load decreases the probability, as does using the qemu -systrace switch). The output is
```
The futex facility returned an unexpected error code.
```
Digging into glibc sources, this error together with an abort occurs when the return value of a futex call is not in a short list of allowed values, see ``nptl/futex-internal.c`` and ``sysdeps/nptl/futex-internal.h``.
Running qemu with QEMU_STRACE=1 decreases the probability of the error greatly, but after some attempts I was able to get a log. Several threads seem to write at the same time, leading to rather garbled output, but my interpretation is an error value of "Invalid argument".
```
116876 get_thread_area(0x00000001) = 989882672
116876 116876 get_thread_area(0x00000001)get_thread_area(0x00000018) = 989882672
= 1065219744
116876 get_thread_area(0x00000000) = 1065219744
116876 futex(0x3f5003fa,FUTEX_PRIVATE_FLAG|FUTEX_WAIT116876 ,2,116876 NULL,0x3fffda10,get_thread_area(0xffffffff) = 1065219744
futex(0x3f5003fa,1073732112)FUTEX_PRIVATE_FLAG|FUTEX_WAIT = ,2,NULL,-1 errno=22 (Invalid argument)116876 get_thread_area(0x00000000)
= 1065219744
0x3fffda10,116876 get_thread_area(0x00000000)1073732112 = )1065219744
116876 futex(0x3f7d4c34,FUTEX_PRIVATE_FLAG|FUTEX_WAKE,1,NULL,NULL, = 0)-1 errno=22 (Invalid argument)
= 0
= 116876 get_thread_area(0x3f7d4c34)1 =
116876 get_thread_area(0x00000000) = 1065219744
926968112
116876 get_thread_area(0x00000016) = 926968112
116876 get_thread_area(0x00000000) = 1065219744
116876 get_thread_area(0x00000000) = 1065219744
116876 get_thread_area(0x00000001)116876 = futex(116876 0x3f5003fa,get_thread_area(0x00000000)FUTEX_PRIVATE_FLAG| = 926968112
116876 get_thread_area(0x00000000) = 926968112FUTEX_WAKE
,1,116876 NULL,0x3fffda10,get_thread_area(0x00000000) = 926968112
1065219744
116876 get_thread_area(0x00000001)116876 = 1065219744
1073732112) = 116876 -1 errno=22 (Invalid argument)
futex(0x3ba005fc,FUTEX_PRIVATE_FLAG|FUTEX_CLOCK_REALTIME|FUTEX_WAIT_BITSET,0,NULL,NULL,get_thread_area(0x00000000)0 = 926968112)
116876 get_thread_area(0x00000000) = 926968112
116876 futex(0x3f7d4c38,FUTEX_PRIVATE_FLAG|FUTEX_WAKE,1,NULL,0x40007bf8,1073773560) = 0
116876 futex(0x40053a8c,FUTEX_PRIVATE_FLAG|FUTEX_WAKE,1,NULL,NULL,0) = 1
= 0
116876 get_thread_area(0x40053a8c) = 885025072
116876 get_thread_area(0x00000001) = 885025072
116876 get_thread_area(0x00b4b456) = 885025072
116876 get_thread_area(0x00000000) = 885025072
116876 get_thread_area(0x00000000) = 885025072
116876 Unknown syscall 403
116876 get_thread_area(0x00000000) = 885025072
116876 get_thread_area(0x00003baa) = 885025072
116876 get_thread_area(0x00003b01) = 885025072
116876 get_thread_area(0x00003b01) = 885025072
116876 116876 futex(get_thread_area(0x00b4b456)0x3f7d4c30,FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET,0,0x34bfe62c,NULL,0) = 926968112
116876 get_thread_area(0x00000018) = 926968112
116876 get_thread_area(0x3ed5b9c8) = 926968112
116876 get_thread_area(0x00000000) = 926968112
116876 get_thread_area(0x00000000) = 926968112
116876 get_thread_area(0x00000000) = 926968112
116876 get_thread_area(0x00000000) = 926968112
116876 get_thread_area(0x00000000) = 926968112
116876 futex(0x3f7d4c30,FUTEX_PRIVATE_FLAG|FUTEX_WAKE,1,NULL,NULL,0) = 1
116876 get_thread_area(0x00000000) = 926968112
116876 get_thread_area(0x00000001) = 926968112
116876 get_thread_area(0x0000000f) = 926968112116876 = 0
116876 get_thread_area(0x00000001) = 926968112
116876 get_thread_area(0x00000001) = 926968112
116876 get_thread_area(0x00000001)writev(2,0x3affed88,0x1) = 926968112
The futex facility returned an unexpected error code.
116876 get_thread_area(0x3f7d4c30) = 885025072
```
Advice on how to do further debuggging is appreciated."""
reproduce = "n/a"
additional = "n/a"
|