datawire / forge

Define and run multi-container apps in Kubernetes
http://forge.sh
Apache License 2.0
415 stars 43 forks source link

Forge scans my whole hard-drive #222

Closed fenos closed 5 years ago

fenos commented 5 years ago

Hi, Thanks for the great tool - It looks promising.

I spent plenty of time trying to understand why when I run forge build or forge deploy the script just hang!

It gets stuck in the descend function of the service.py for some reason! I added some print line to the see the current path scanned, it's traversing my entire hard drive!

this is the stacktrace once i kill the process:


║     Traceback (most recent call last):
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/core.py", line 331, in root
║         for name in self.load_services():
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/core.py", line 298, in load_services
║         self.scan(self.base)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/core.py", line 195, in scan
║         found = self.discovery.search(directory)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 142, in search
║         descend(directory, None, base_ignores)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 138, in descend
║         descend(child, parent, ignores)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 138, in descend
║         descend(child, parent, ignores)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 138, in descend
║         descend(child, parent, ignores)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 138, in descend
║         descend(child, parent, ignores)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 138, in descend
║         descend(child, parent, ignores)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 138, in descend
║         descend(child, parent, ignores)
║       File "/Users/fenos/.pex/install/Forge-0.4.15-py2-none-any.whl.9231fb8ee2b34ba80e2fa9fab3e8592e4ca4ae54/Forge-0.4.15-py2-none-any.whl/forge/service.py", line 121, in descend

my repo lives in ~/Documents/Projects/{name}/{repo}, inside the repo I have the service.yaml file.

Some debug information:

I added a print after This line - here's the output.

║ CONFIG: /Users/fenos/forge.yaml
('/Users/fenos/Documents/Projects/my-project/platform', None)
║ git rev-parse --abbrev-ref HEAD
║ master
('/Users/fenos/Documents/Projects/my-project/platform/gcloud', ║ git diff --quiet HEAD .
platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/platform', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/platform/resources', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/platform/resources/cluster', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/platform/resources/iam', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/platform/resources/bucket', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/platform/resources/service', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/platform/resources/sql', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/gbuilds', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/gcloud/gbuilds/forge', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/docker', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/docker/postgres', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/docker/node', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/k8s', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/.circleci', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('/Users/fenos/Documents/Projects/my-project/platform/.idea', platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha)
('FOUND', [platform:369e6bd43e2f2f61a06b499480e25c0e7a2b9b6a.sha])
('/Users/fenos', None)
...
...
...
all my hard drive!

when it gets to ('FOUND') means the function returned.

Any idea why forge it's doing this?

fenos commented 5 years ago

Ok - i found an option that solve my issue: --no-scan-base i suggest this to be the default.