From 35e42623add855f05479ff01a3d283c4815332ad Mon Sep 17 00:00:00 2001 From: Dylan Jew Date: Tue, 21 Apr 2026 13:31:46 -0400 Subject: [PATCH 1/2] Handle broken symlinks in devcontainer set up --- src/local/butler/common.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/local/butler/common.py b/src/local/butler/common.py index 4b955eb8acb..4e8a034970c 100644 --- a/src/local/butler/common.py +++ b/src/local/butler/common.py @@ -351,7 +351,7 @@ def install_dependencies(platform_name=None): def remove_symlink(target): """Removes a symlink.""" - if not os.path.exists(target): + if not os.path.lexists(target): return if os.path.isdir(target) and get_platform() == 'windows': @@ -372,7 +372,8 @@ def symlink(src, target): else: os.symlink(src, target) - assert os.path.exists(target), f'Failed to create {target} symlink for {src}.' + assert os.path.lexists( + target), f'Failed to create {target} symlink for {src}.' print(f'Created symlink: source: {src}, target {target}.') From 263c0c6963ce8f4858e51ddab29a3ee695d4ab4c Mon Sep 17 00:00:00 2001 From: Dylan Jew Date: Tue, 21 Apr 2026 14:03:11 -0400 Subject: [PATCH 2/2] catch bad symlink in assert --- src/local/butler/common.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/local/butler/common.py b/src/local/butler/common.py index 4e8a034970c..523d8c274c3 100644 --- a/src/local/butler/common.py +++ b/src/local/butler/common.py @@ -93,7 +93,7 @@ def _get_clusterfuzz_config_commit_sha(): def _compute_revision(timestamp, is_staging=False): """Return a source code revision. - + This revision contains the timestamp, git-sha, user, config git-sha, and appengine release (prod or staging). The ordinality of revision is crucial for updating source code. Later revision *must* be greater than earlier @@ -372,8 +372,7 @@ def symlink(src, target): else: os.symlink(src, target) - assert os.path.lexists( - target), f'Failed to create {target} symlink for {src}.' + assert os.path.exists(target), f'Failed to create {target} symlink for {src}.' print(f'Created symlink: source: {src}, target {target}.')