Commit 2d2ea3c
committed
fix: Honor x-ld-fd-fallback header in fdv2 initializer phase
Prior to this change, the Ruby SDK only inspected the x-ld-fd-fallback
response header on FDv2 synchronizer responses. If an initializer
received the header, the signal was silently dropped and the SDK would
continue attempting subsequent initializers and FDv2 synchronizers
rather than reverting to FDv1.
The Initializer fetch contract now returns a FetchResult that pairs the
existing Result<Basis> with a fallback_to_fdv1 boolean. The FDv2 data
system branches on the new flag, applying any accompanying Basis before
swapping the synchronizer list for the FDv1 fallback builder, so
evaluations can serve the server-provided payload while FDv1 spins up.
When no FDv1 fallback is configured, the data system logs and clears
the synchronizer list, mirroring the synchronizer-triggered path.
Update.revert_to_fdv1 is renamed to Update.fallback_to_fdv1 with an
alias retained for backwards compatibility while FDv2 is in early
access. A shared LaunchDarkly::Impl::DataSystem.fdv1_fallback_requested?
helper replaces the duplicated header-string checks across the polling
and streaming data sources.1 parent 80b8e4e commit 2d2ea3c
13 files changed
Lines changed: 481 additions & 152 deletions
File tree
- lib/ldclient-rb
- impl
- data_system
- integrations
- test_data
- interfaces
- spec/impl
- data_system
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
250 | | - | |
251 | | - | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
252 | 253 | | |
253 | 254 | | |
254 | 255 | | |
| |||
257 | 258 | | |
258 | 259 | | |
259 | 260 | | |
260 | | - | |
| 261 | + | |
261 | 262 | | |
262 | 263 | | |
263 | | - | |
| 264 | + | |
264 | 265 | | |
265 | 266 | | |
266 | 267 | | |
267 | | - | |
| 268 | + | |
268 | 269 | | |
269 | 270 | | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
270 | 275 | | |
271 | 276 | | |
272 | 277 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | | - | |
218 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
219 | 234 | | |
220 | 235 | | |
221 | 236 | | |
| |||
228 | 243 | | |
229 | 244 | | |
230 | 245 | | |
231 | | - | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
232 | 255 | | |
233 | 256 | | |
234 | | - | |
| 257 | + | |
235 | 258 | | |
236 | 259 | | |
237 | | - | |
| 260 | + | |
238 | 261 | | |
239 | 262 | | |
240 | 263 | | |
241 | 264 | | |
242 | 265 | | |
243 | | - | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
244 | 270 | | |
245 | 271 | | |
246 | 272 | | |
247 | 273 | | |
248 | 274 | | |
249 | | - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
250 | 279 | | |
251 | 280 | | |
252 | | - | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
253 | 285 | | |
254 | 286 | | |
255 | | - | |
| 287 | + | |
256 | 288 | | |
257 | 289 | | |
258 | 290 | | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
259 | 304 | | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
260 | 310 | | |
261 | 311 | | |
262 | 312 | | |
263 | 313 | | |
| 314 | + | |
| 315 | + | |
264 | 316 | | |
265 | 317 | | |
266 | 318 | | |
| |||
410 | 462 | | |
411 | 463 | | |
412 | 464 | | |
413 | | - | |
| 465 | + | |
414 | 466 | | |
415 | 467 | | |
416 | 468 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
24 | 36 | | |
25 | 37 | | |
26 | 38 | | |
| |||
46 | 58 | | |
47 | 59 | | |
48 | 60 | | |
49 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
50 | 64 | | |
51 | 65 | | |
52 | | - | |
| 66 | + | |
53 | 67 | | |
54 | 68 | | |
55 | 69 | | |
| |||
73 | 87 | | |
74 | 88 | | |
75 | 89 | | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
| 90 | + | |
| 91 | + | |
83 | 92 | | |
84 | 93 | | |
85 | 94 | | |
| |||
99 | 108 | | |
100 | 109 | | |
101 | 110 | | |
102 | | - | |
| 111 | + | |
103 | 112 | | |
104 | 113 | | |
105 | 114 | | |
| |||
108 | 117 | | |
109 | 118 | | |
110 | 119 | | |
111 | | - | |
| 120 | + | |
112 | 121 | | |
113 | 122 | | |
114 | 123 | | |
| |||
118 | 127 | | |
119 | 128 | | |
120 | 129 | | |
121 | | - | |
| 130 | + | |
122 | 131 | | |
123 | 132 | | |
124 | 133 | | |
| |||
136 | 145 | | |
137 | 146 | | |
138 | 147 | | |
139 | | - | |
| 148 | + | |
140 | 149 | | |
141 | 150 | | |
142 | 151 | | |
| |||
145 | 154 | | |
146 | 155 | | |
147 | 156 | | |
148 | | - | |
| 157 | + | |
149 | 158 | | |
150 | 159 | | |
151 | 160 | | |
152 | | - | |
| 161 | + | |
153 | 162 | | |
154 | 163 | | |
155 | 164 | | |
156 | 165 | | |
157 | | - | |
| 166 | + | |
158 | 167 | | |
159 | 168 | | |
160 | 169 | | |
| |||
177 | 186 | | |
178 | 187 | | |
179 | 188 | | |
180 | | - | |
| 189 | + | |
181 | 190 | | |
182 | 191 | | |
183 | 192 | | |
184 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
185 | 205 | | |
186 | 206 | | |
187 | 207 | | |
188 | 208 | | |
189 | 209 | | |
190 | 210 | | |
191 | 211 | | |
192 | | - | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
193 | 216 | | |
194 | 217 | | |
195 | | - | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
196 | 222 | | |
197 | 223 | | |
198 | 224 | | |
| |||
206 | 232 | | |
207 | 233 | | |
208 | 234 | | |
209 | | - | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
210 | 239 | | |
211 | 240 | | |
212 | 241 | | |
213 | 242 | | |
214 | | - | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
215 | 247 | | |
216 | 248 | | |
217 | 249 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
| 93 | + | |
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
| 153 | + | |
157 | 154 | | |
158 | 155 | | |
159 | 156 | | |
| |||
286 | 283 | | |
287 | 284 | | |
288 | 285 | | |
289 | | - | |
| 286 | + | |
290 | 287 | | |
291 | 288 | | |
292 | 289 | | |
| |||
0 commit comments