skypilot: sky launch error when path contains space

Hi Skypilot team,

I’m using google drive to sync .sky dir and soft link to ‘~/.sky’ (for #1211 ), it was fine, but today I got this subprocess.CalledProcessError error that seems to be due to my google drive path having a space in it.

Thanks!

# hanqing @ hanqings-MacBook-Pro in ~/src/whole_mouse_brain/gcp/sky on git:main o [19:21:02] C:1
$ sky launch -c jupyter -y sky-jupyter.yaml
Task from YAML spec: sky-jupyter.yaml
Running task on cluster jupyter...
I 10-13 19:21:33 cloud_vm_ray_backend.py:903] To view detailed progress: tail -n100 -f /Users/hanqing/sky_logs/sky-2022-10-13-19-21-33-522156/provision.log
I 10-13 19:21:33 cloud_vm_ray_backend.py:744] Cluster 'jupyter' (status: STOPPED) was previously launched in GCP (us-west1). Relaunching in that region.
I 10-13 19:21:35 authentication.py:240] OS Login is enabled for GCP project prod-635e. Running additional authentication steps.
cp: /Users/hanqing/My: No such file or directory
cp: Drive/work/sky_status/generated/jupyter.yml: No such file or directory
NAME       LAUNCHED   RESOURCES                STATUS   AUTOSTOP  COMMAND
l-jupyter  3 hrs ago  1x GCP(n2d-standard-96)  STOPPED  -         sky launch -c l-jupyter -y...
jupyter    4 hrs ago  1x GCP(n2d-standard-32)  STOPPED  -         sky launch -c jupyter -y ...

Traceback (most recent call last):
  File "/Users/hanqing/miniconda3/bin/sky", line 8, in <module>
    sys.exit(cli())
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 179, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/cli.py", line 916, in invoke
    return super().invoke(ctx)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 200, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/cli.py", line 1078, in launch
    _launch_with_confirm(
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/cli.py", line 649, in _launch_with_confirm
    sky.launch(
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 200, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 200, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/execution.py", line 290, in launch
    _execute(
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/execution.py", line 191, in _execute
    handle = backend.provision(task,
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 200, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 179, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/backends/backend.py", line 49, in provision
    return self._provision(task, to_provision, dryrun, stream_logs,
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/backends/cloud_vm_ray_backend.py", line 1705, in _provision
    config_dict = provisioner.provision_with_retries(
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 200, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/backends/cloud_vm_ray_backend.py", line 1377, in provision_with_retries
    config_dict = self._retry_region_zones(
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/backends/cloud_vm_ray_backend.py", line 918, in _retry_region_zones
    config_dict = backend_utils.write_cluster_config(
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/utils/common_utils.py", line 200, in _record
    return f(*args, **kwargs)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/backends/backend_utils.py", line 805, in write_cluster_config
    _optimize_file_mounts(yaml_path)
  File "/Users/hanqing/miniconda3/lib/python3.9/site-packages/sky/backends/backend_utils.py", line 248, in _optimize_file_mounts
    subprocess.run(f'cp -r {all_local_sources} {local_runtime_files_dir}/',
  File "/Users/hanqing/miniconda3/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'cp -r /Users/hanqing/My Drive/work/sky_status/generated/jupyter.yml /var/folders/39/k4llk3392zq9w1pxwq49jgnh0000gn/T/e8b9b9920e678eb57fe146c90ecfebec ~/.config/gcloud/credentials.db ~/.config/gcloud/application_default_credentials.json ~/.config/gcloud/access_tokens.db ~/.config/gcloud/configurations ~/.config/gcloud/legacy_credentials ~/.sky/.sky_gcp_config_default /var/folders/39/k4llk3392zq9w1pxwq49jgnh0000gn/T/tmp9e4380ak/' returned non-zero exit status 1.
(base)

This is the error info:

cp: /Users/hanqing/My: No such file or directory
cp: Drive/work/sky_status/generated/jupyter.yml: No such file or directory

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 15 (13 by maintainers)

Most upvoted comments

@infwinston, thank you! I tried the up-to-date skypilot, and it works all good for me.

The issue is auto-closed by github after I merged the PR. Please feel free to re-open it if the latest commit still doesn’t solve it.

Yes, it works for me. Thanks!

Thanks for the quick reply! I fixed it (just for now) by copying my .sky from google drive into ~/.sky

I think it is because my google drive path is /Users/hanqing/My Drive/... This is the subprocess call that parsed the path incorrectly: https://github.com/skypilot-org/skypilot/blob/master/sky/backends/backend_utils.py#L248-L250