warmup_time: nil crashes metadata existence checks

Open Beginner friendly
#112 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
ruby
Domain
cloud

Research direction

Start at ComputeMetadata#warmup_time and trace its use in ensure_existence and post_update_existence. Add regression coverage for a nil warmup_time, confirming ensure_existence uses the minimum explicit check and a failed existence probe settles to :no. Run the focused disabled-warmup model tests and the full suite to verify completion.

Written by the indexing model from the issue text.

Description

Summary

ComputeMetadata#warmup_time is writable and documented as a duration, but assigning nil to disable the warmup window leads to arithmetic/comparison errors in both ensure_existence and post_update_existence.

Reproduction

On current main (7936c72eb2c809214858f47473aafb04c6bbf469):

  1. Create a ComputeMetadata instance.
  2. Set warmup_time = nil.
  3. Call ensure_existence, or exercise a failed existence update.

The former evaluates @startup_time + nil; the latter compares time against the same expression.

Proposed correction

Treat nil as no warmup window: use the normal minimum one-second explicit check in ensure_existence, and allow a failed existence probe to settle to :no immediately. I verified the focused disabled-warmup model and the full current suite (91 runs / 419 assertions / 0 failures / 0 errors / 2 skips).

If nil is not intended to be supported, rejecting it in the writer would make the contract explicit; silently accepting it and failing later is the current correctness issue.

I used an AI coding assistant during investigation and verification. I am opening this issue first because this repository requires tests and a Google CLA for pull requests; I have not modified repository tests or signed a CLA as part of this audit.

Dominant language
Ruby
Stars
16
Forks
12
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from googleapis/ruby-cloud-env

All issues in googleapis/ruby-cloud-env

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.