forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit825d89d
committed
Fix deadlock danger when atomic ops are done under spinlock.
This was a danger only for --disable-spinlocks in combination withatomic operations unsupported by the current platform.While atomics.c was careful to signal that a separate semaphore oughtto be used when spinlock emulation is active, spin.c didn't actuallyimplement that mechanism. That's my (Andres') fault, it seems to havegotten lost during the development of the atomic operations support.Fix that issue and add test for nesting atomic operations inside aspinlock.Author: Andres FreundDiscussion:https://postgr.es/m/20200605023302.g6v3ydozy5txifji@alap3.anarazel.deBackpatch: 9.5-1 parente027219 commit825d89d
2 files changed
+119
-30
lines changedLines changed: 67 additions & 30 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
28 | 28 |
| |
29 | 29 |
| |
30 | 30 |
| |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
31 | 42 |
| |
32 |
| - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
33 | 49 |
| |
34 | 50 |
| |
35 | 51 |
| |
| |||
38 | 54 |
| |
39 | 55 |
| |
40 | 56 |
| |
41 |
| - | |
| 57 | + | |
42 | 58 |
| |
43 | 59 |
| |
44 |
| - | |
45 |
| - | |
46 | 60 |
| |
47 | 61 |
| |
48 | 62 |
| |
49 | 63 |
| |
50 | 64 |
| |
51 | 65 |
| |
52 |
| - | |
| 66 | + | |
53 | 67 |
| |
54 |
| - | |
55 | 68 |
| |
56 |
| - | |
57 |
| - | |
58 |
| - | |
59 |
| - | |
60 |
| - | |
61 |
| - | |
62 |
| - | |
63 |
| - | |
64 |
| - | |
65 |
| - | |
66 |
| - | |
67 |
| - | |
68 |
| - | |
| 69 | + | |
69 | 70 |
| |
70 | 71 |
| |
71 | 72 |
| |
| |||
92 | 93 |
| |
93 | 94 |
| |
94 | 95 |
| |
95 |
| - | |
96 |
| - | |
97 |
| - | |
98 |
| - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
99 | 106 |
| |
100 | 107 |
| |
101 |
| - | |
| 108 | + | |
102 | 109 |
| |
103 | 110 |
| |
104 | 111 |
| |
105 | 112 |
| |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
106 | 120 |
| |
107 | 121 |
| |
108 | 122 |
| |
109 | 123 |
| |
110 |
| - | |
111 |
| - | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
112 | 149 |
| |
113 | 150 |
| |
114 | 151 |
| |
115 | 152 |
| |
116 | 153 |
| |
117 | 154 |
| |
118 | 155 |
| |
119 |
| - | |
120 |
| - | |
| 156 | + | |
| 157 | + | |
121 | 158 |
| |
122 | 159 |
| |
123 | 160 |
| |
| |||
134 | 171 |
| |
135 | 172 |
| |
136 | 173 |
| |
137 |
| - | |
138 |
| - | |
| 174 | + | |
| 175 | + | |
139 | 176 |
| |
140 | 177 |
| |
141 | 178 |
| |
|
Lines changed: 52 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
891 | 891 |
| |
892 | 892 |
| |
893 | 893 |
| |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
894 | 944 |
| |
895 | 945 |
| |
896 | 946 |
| |
| |||
907 | 957 |
| |
908 | 958 |
| |
909 | 959 |
| |
| 960 | + | |
| 961 | + | |
910 | 962 |
| |
911 | 963 |
| |
912 | 964 |
| |
|
0 commit comments
Comments
(0)