GoogleCloudPlatform / GoogleCloudPlatform/cloud-run-button

cloudshell_open incorrectly executes shell scriprt (prebuild hook) with `gsutil -m` commands

Open
#245 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
553
Forks
98
PR merge metrics
No merged PRs in 30d

Description

When a prebuild hook execute `gsutil` with `-m` (multiprocessing) option it exits.
Here's a reproducing demo:
https://github.com/evil-shrike/cloud-run-button-test2.git

the script has the following lines:
```
echo "Starting copying of application files to $GCS_BASE_PATH"
gsutil -m rsync -r -x ".*/__pycache__/.*|[.].*" ./app $GCS_BASE_PATH
echo "Application files have been copied"
gsutil -m -h "Content-Type:text/plain" cp ./*.yaml $GCS_BASE_PATH/
echo "All done"
```
and when executed by cloudshell_open we won't see the "Application files have been copied" output. Needless to say that normally when execute manually from within Cloud Shell terminal it works fine.

outout:
```
+ ./prebuild.sh
+ gcloud config set project adsapi-sd
Updated property [core/project].
+ ./setup.sh deploy_files
Starting copying of application files to gs://adsapi-sd/crb-test

WARNING: gsutil rsync uses hashes when modification time is not available at
both the source and destination. Your crcmod installation isn't using the
module's C extension, so checksumming will run very slowly. If this is your
first rsync since updating gsutil, this rsync can take significantly longer than
usual. For help installing the extension, please see "gsutil help crcmod".

Building synchronization state...
Starting synchronization...
Copying file://./app/test.py [Content-Type=text/x-python]...
[ ! ] Attempting to build this application with its Dockerfile...
[ ! ] FYI, running the following command:
```

If I remove `-m` option from gsutil then it starts working as expected.

The issue make deploying applications via Cloud Run Button very cumbersome.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.