GoogleCloudPlatform / GoogleCloudPlatform/PerfKitBenchmarker
Hard-to-debug error behavior with static VMs
- Dominant language
- Python
- Stars
- 2k
- Forks
- 562
- Avg merge
- 4h 55m
- Merged PRs (30d)
- 69
Description
I wrote a static VMs file, but accidentally left the public key path blank. I had a config file like this:
```
static_vms:
- &vm_1
ssh_private_key:
ip_address: ...
```
This lead to PKB looping on "waiting for boot completion" but never erroring out. Here is what I think happened: YAML parsing returned a dict with `"ssh_private_key": None` as a member. This got passed around until the None propagated to `vm_util.IssueCommand`, which constructed an ssh command string that included "-i None". This, predictably, failed to SSH, and so `IssueCommand` returned an error. However, the retry loop at linux_virtual_machine.py:390 didn't realize that the error was unrecoverable and kept retrying, resulting in an apparent PKB hang.
Ideally, PKB would detect that the SSH private key was not specified and error much earlier in the process.
Contributor guide
Assessment
This issue has not been assessed yet.