1
0
mirror of https://github.com/facebook/proxygen.git synced 2025-08-08 18:02:05 +03:00

Fetch source archive if cached artifact's built_marker is missing (#4035)

Summary:
X-link: https://github.com/facebookincubator/velox/pull/4035

If getdeps finds a cached build artifact, it currently skips fetching the
source archive, which is done by calling `fetcher.update()`:
https://www.internalfb.com/code/fbsource/[f64171219e95f47c81929cde0a09e720e079dd31]/fbcode/opensource/fbcode_builder/getdeps.py?lines=691

But without the built_marker, the script will still create a builder for the
artifact:
https://www.internalfb.com/code/fbsource/[f64171219e95f47c81929cde0a09e720e079dd31]/fbcode/opensource/fbcode_builder/getdeps.py?lines=600

This then fails when the builder tries to extract the missing source archive.
In Boost's case:
https://www.internalfb.com/code/fbsource/[f64171219e95f47c81929cde0a09e720e079dd31]/fbcode/opensource/fbcode_builder/getdeps/builder.py?lines=1021

This logic seems to have been broken for a while, but became a problem after
watchman's Windows build started finding cached boost and ninja artifacts that
were missing the built_marker, presumably uploaded by other projects as a
result of D42996394 (db79e34cc7).

This change fixes the broken watchman build, but itself doesn't get us back to
using cached artifacts.

Reviewed By: kmancini

Differential Revision: D43260530

fbshipit-source-id: ac0072f213a534aada4046d34fe090510fc5d618
This commit is contained in:
Mark Shroyer
2023-02-16 11:31:40 -08:00
committed by Facebook GitHub Bot
parent 738d1d47ab
commit 47dde7c249

View File

@@ -688,7 +688,10 @@ class BuildCmd(ProjectCmdBase):
):
reconfigure = False
sources_changed = False
if not cached_project.download():
if cached_project.download():
if not os.path.exists(built_marker):
fetcher.update()
else:
check_fetcher = True
if os.path.exists(built_marker):
check_fetcher = False