Commit 0640b72
committed
fix: honor server-directed FDv1 Fallback Directive in initializer phase
Previously the X-LD-FD-Fallback response header was honored only in
the synchronizer phase, and in the synchronizer phase a payload
arriving alongside the directive was discarded because the streaming
processor halted before applying it. Per the updated FDv2 Data System
spec, the directive must be honored in both initializer and
synchronizer phases, must take precedence over the section 1.2
failover algorithm, and must let any accompanying payload be applied
before the SDK switches terminally to the FDv1 Fallback Synchronizer.
Carry the signal explicitly on the public initializer/synchronizer
result types -- Basis.fallback_to_fdv1 and Update.fallback_to_fdv1 --
so callers cannot silently drop it. Update.revert_to_fdv1 is renamed
to Update.fallback_to_fdv1 to match the spec terminology.1 parent 1c700b4 commit 0640b72
8 files changed
Lines changed: 475 additions & 65 deletions
File tree
- ldclient
- impl
- datasourcev2
- datasystem
- testing/impl
- datasourcev2
- datasystem
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
171 | 182 | | |
172 | 183 | | |
173 | 184 | | |
| |||
179 | 190 | | |
180 | 191 | | |
181 | 192 | | |
182 | | - | |
| 193 | + | |
183 | 194 | | |
184 | 195 | | |
185 | 196 | | |
| |||
204 | 215 | | |
205 | 216 | | |
206 | 217 | | |
| 218 | + | |
| 219 | + | |
207 | 220 | | |
208 | | - | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
209 | 224 | | |
210 | 225 | | |
211 | 226 | | |
212 | 227 | | |
213 | 228 | | |
| 229 | + | |
214 | 230 | | |
215 | 231 | | |
216 | 232 | | |
| |||
223 | 239 | | |
224 | 240 | | |
225 | 241 | | |
| 242 | + | |
226 | 243 | | |
227 | 244 | | |
228 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
166 | 166 | | |
167 | 167 | | |
168 | 168 | | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
169 | 174 | | |
170 | 175 | | |
171 | 176 | | |
| |||
186 | 191 | | |
187 | 192 | | |
188 | 193 | | |
189 | | - | |
190 | 194 | | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
| 195 | + | |
| 196 | + | |
200 | 197 | | |
201 | 198 | | |
202 | 199 | | |
| |||
206 | 203 | | |
207 | 204 | | |
208 | 205 | | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
209 | 218 | | |
210 | 219 | | |
211 | 220 | | |
| |||
229 | 238 | | |
230 | 239 | | |
231 | 240 | | |
232 | | - | |
| 241 | + | |
233 | 242 | | |
234 | 243 | | |
235 | 244 | | |
| |||
353 | 362 | | |
354 | 363 | | |
355 | 364 | | |
356 | | - | |
| 365 | + | |
357 | 366 | | |
358 | 367 | | |
359 | 368 | | |
| |||
377 | 386 | | |
378 | 387 | | |
379 | 388 | | |
380 | | - | |
| 389 | + | |
381 | 390 | | |
382 | 391 | | |
383 | 392 | | |
| |||
394 | 403 | | |
395 | 404 | | |
396 | 405 | | |
397 | | - | |
| 406 | + | |
398 | 407 | | |
399 | 408 | | |
400 | 409 | | |
| |||
416 | 425 | | |
417 | 426 | | |
418 | 427 | | |
419 | | - | |
| 428 | + | |
420 | 429 | | |
421 | 430 | | |
422 | 431 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
276 | 277 | | |
277 | 278 | | |
278 | 279 | | |
279 | | - | |
| 280 | + | |
280 | 281 | | |
281 | 282 | | |
282 | 283 | | |
| |||
403 | 404 | | |
404 | 405 | | |
405 | 406 | | |
406 | | - | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
407 | 427 | | |
408 | 428 | | |
409 | 429 | | |
| |||
414 | 434 | | |
415 | 435 | | |
416 | 436 | | |
417 | | - | |
418 | | - | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
419 | 447 | | |
420 | | - | |
| 448 | + | |
421 | 449 | | |
422 | 450 | | |
423 | 451 | | |
424 | | - | |
| 452 | + | |
425 | 453 | | |
426 | 454 | | |
427 | 455 | | |
| |||
431 | 459 | | |
432 | 460 | | |
433 | 461 | | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
434 | 481 | | |
435 | 482 | | |
436 | 483 | | |
| |||
442 | 489 | | |
443 | 490 | | |
444 | 491 | | |
445 | | - | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
446 | 502 | | |
447 | 503 | | |
| 504 | + | |
448 | 505 | | |
449 | 506 | | |
450 | 507 | | |
| |||
476 | 533 | | |
477 | 534 | | |
478 | 535 | | |
479 | | - | |
| 536 | + | |
480 | 537 | | |
481 | 538 | | |
482 | 539 | | |
483 | 540 | | |
484 | | - | |
| 541 | + | |
485 | 542 | | |
486 | 543 | | |
487 | 544 | | |
| |||
608 | 665 | | |
609 | 666 | | |
610 | 667 | | |
611 | | - | |
612 | | - | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
613 | 673 | | |
614 | 674 | | |
615 | 675 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1366 | 1366 | | |
1367 | 1367 | | |
1368 | 1368 | | |
| 1369 | + | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
1369 | 1376 | | |
1370 | 1377 | | |
1371 | 1378 | | |
| |||
1647 | 1654 | | |
1648 | 1655 | | |
1649 | 1656 | | |
1650 | | - | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
1651 | 1665 | | |
1652 | 1666 | | |
1653 | 1667 | | |
| |||
0 commit comments