Page MenuHomePhabricator

Simplify "builtin file" management and recover from races
ClosedPublic

Authored by epriestley on Jul 11 2016, 4:19 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 21, 4:28 PM
Unknown Object (File)
Wed, Apr 17, 4:36 PM
Unknown Object (File)
Wed, Apr 17, 2:09 PM
Unknown Object (File)
Fri, Apr 12, 6:36 AM
Unknown Object (File)
Sun, Apr 7, 5:19 PM
Unknown Object (File)
Mon, Apr 1, 4:50 PM
Unknown Object (File)
Mon, Apr 1, 3:19 AM
Unknown Object (File)
Mon, Apr 1, 3:19 AM
Subscribers
None

Details

Summary

Fixes T11307. Fixes T8124. Currently, builtin files are tracked by using a special transform with an invalid source ID.

Just use a dedicated column instead. The transform thing is too clever/weird/hacky and exposes us to issues with the "file" and "transform" tables getting out of sync (possibly the issue in T11307?) and with race conditions.

Test Plan
  • Loaded profile "edit picture" page, saw builtins.
  • Deleted all builtin files, put 3 second sleep in the storage engine write, loaded profile page in two windows.
    • Before patch: one of them failed with a race.
    • After patch: both of them loaded.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Simplify "builtin file" management and recover from races.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
chad edited edge metadata.
This revision is now accepted and ready to land.Jul 11 2016, 4:24 PM
This revision was automatically updated to reflect the committed changes.