[roll] Roll fuchsia [fxfs] Fix a bug causing stress builders to fail.

`rebuild_strategy()` was made to return false if we scan the disk and
find no changes to the in-memory free extent information.

This 'no changes' did not include overflow tag information which
seemed fine to me at first but there is a specific edge case that can
cause issues:

1. Fragment the device enough to fill size bucket A and overflow
   buckets B and C=A+B.
2. Free a high range of size A. Because we keep the lowest
   offsets in RAM, this range is immediately dropped from memory but
   it happens to be adjacent to an overflowed range B. Together the
   two ranges form a free (but still overflowed) range C.
3. We then consume all in-memory size A ranges, triggering
   `rebuild_strategy()`.
4. This removes the overflow marker but doesn't result in any range
   changes to the in-memory representation.

Boom! We blow up because we think we're in a loop, but if we just
tried to allocate one more time, we'd find that the overflow marker
is cleared and the next-biggest size bucket would be used.

Original-Bug: b/345105394
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1066152
Original-Revision: 7888622f7184d3c5062a44063fc5999a021c653a
GitOrigin-RevId: fe5cd93625557adefa5eb892b1574efbc2285137
Change-Id: Icbab42713c3fbe57974ef77e21028f42cda4c4cc
1 file changed
tree: 71a65038ee71055e9954f69960b9791ee1d26ae7
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.