Commit 2057840
authored
Fix breadcrumb race condition: log() drops entry before logException(… (#8076)
…) reads it
CrashlyticsCore.log() used common.submit() which completed as soon as
the diskWrite task was enqueued, not when it finished. This allowed the
subsequent logException() common task to call
logFileManager.getLogString() before writeToLog() had run on the
diskWrite worker, silently dropping the breadcrumb from the non-fatal
report.
Fix: change to common.submitTask() so the common worker suspends until
the diskWrite task resolves before dispatching the next item (e.g.
logException).
Adds a regression test that calls log() immediately before
logException(), awaits only the common worker, and asserts the
breadcrumb is present on disk.
Fixes #80341 parent 433f564 commit 2057840
4 files changed
Lines changed: 40 additions & 5 deletions
File tree
- firebase-crashlytics
- src
- androidTest/java/com/google/firebase/crashlytics/internal/common
- main/java/com/google/firebase/crashlytics/internal/common
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
3 | 6 | | |
4 | 7 | | |
5 | 8 | | |
| |||
Lines changed: 26 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
458 | 459 | | |
459 | 460 | | |
460 | 461 | | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
461 | 487 | | |
462 | 488 | | |
463 | 489 | | |
| |||
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
793 | 794 | | |
794 | 795 | | |
795 | 796 | | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
796 | 803 | | |
797 | 804 | | |
798 | 805 | | |
| |||
Lines changed: 4 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
330 | 330 | | |
331 | 331 | | |
332 | 332 | | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
338 | 337 | | |
339 | 338 | | |
340 | 339 | | |
| |||
0 commit comments