Defer daemon-wise `LegacyBuildGraph` construction to post-fork.

Review Request #4168 - Created Aug. 18, 2016 and submitted

Kris Wilson
3482, 3792, 3797
jsirois, nhoward_tw, stuhood
  • Pass a LegacyGraphHelper instance around for on-demand graph construction vs a pre-constructed LegacyBuildGraph instance.
  • Internalize construction of LegacyAddressMapper in EngineInitializer and refine GoalRunner._select_buildgraph_and_address_mapper accordingly.
  • Add an EngineInitializer.warm_product_graph() method and plumb to SchedulerService.
  • Update and move EngineInitializer.open_legacy_graph() into the test module where it's used and away from the EngineInitializer API.
  • Implement deferred exception handling in DaemonPantsRunner to address #3482.
  • Misc cleanups, renames for clarity, etc.

Fixes #3482
Fixes #3792

+ local testing with the daemon both in pants and Twitter's source monorepo.

Stu Hood
Yujie Chen
Kris Wilson
Review request changed

Status: Closed (submitted)

Change Summary:

thanks Stu & Yujie! submitted @ 1d78f3da6c5ce4a948d0dc41c37ba25670fc5ac2