Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix: prevent activity bump for prebuilt workspaces#19263

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
ssncferreira merged 9 commits intomainfromssncferreira/fix-activity-bump-prebuilds
Aug 20, 2025

Conversation

ssncferreira
Copy link
Contributor

@ssncferreirassncferreira commentedAug 8, 2025
edited
Loading

Description

This PR ensures that activity-based deadline extensions ("activity bumping") are not applied to prebuilt workspaces. Prebuilds are managed by the reconciliation loop and must not havedeadline ormax_deadline values set or extended, as they are not part of the regular lifecycle executor path.

Changes

  • UpdateActivityBumpWorkspace SQL query to discard prebuilt workspaces
  • Update application layer to avoid calling activity bump logic on prebuilt workspaces

Related with:

Copy link
Member

@johnstcnjohnstcn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

also missing tests here

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Can you check theEXPLAIN output before and after?

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

The query already filters byworkspace_id, so theowner_id predicate is evaluated only after fetching that single row. This means there should be no measurable performance difference.

EXPLAIN output:

ifallowed {
nextAutostart=next
// Prebuilds are not subject to activity-based deadline bumps
if!workspace.IsPrebuild() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

suggestion: invert the logic and continue / return early

Copy link
ContributorAuthor

@ssncferreirassncferreiraAug 19, 2025
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Initially, that was my approach, but this function seems to do a lot of things:

  • Update agent stats
  • Update prometheus metrics (for observability)
  • Activity bump (for lifecycle management)
  • Bump workspacelast_used_at (for usage tracking)
  • Sendstats_update notify event (AFAIU this is related with real-time updates on the UI regarding the workspace).

Therefore, I kept all these updates except the activity bump since it was the only related with lifecycle parameters. For the case of prebuilds I believe it should be all or nothing, either this approach or we check if it is a prebuild in the beginning of the function and return early. Not sure what is the workflow that makes more sense here for prebuilds.

johnstcn reacted with thumbs up emoji
ssncferreira added a commit that referenced this pull requestAug 13, 2025
## DescriptionThis PR ensures that prebuilt workspaces are properly excluded from thelifecycle executor and treated as a separate class of workspaces, fullymanaged by the prebuild reconciliation loop.It introduces two lifecycle guarantees:* When a prebuilt workspace is created (i.e., when the workspace buildcompletes), all lifecycle-related fields are unset, ensuring theworkspace does not participate in TTL, autostop, autostart, dormancy, orauto-deletion logic.* When a prebuilt workspace is claimed, it transitions into a regularuser workspace. At this point, all lifecycle fields are correctlypopulated according to template-level configurations, allowing theworkspace to be managed by the lifecycle executor as expected.## Changes* Prebuilt workspaces now have all lifecycle-relevant fields unsetduring creation* When a prebuild is claimed:* Lifecycle fields are set based on template and workspace levelconfigurations. This ensures a clean transition into the standardworkspace lifecycle flow.* Updated lifecycle-related SQL update queries to explicitly excludeprebuilt workspaces.## Relates Related issue:#18898To reduce the scope of this PR and make the review process moremanageable, the original implementation has been split into thefollowing focused PRs:*#19259*#19263*#19264*#19265These PRs should be considered in conjunction with this one tounderstand the complete set of lifecycle separation changes for prebuiltworkspaces.
@github-actionsgithub-actionsbot added the staleThis issue is like stale bread. labelAug 19, 2025
@ssncferreirassncferreira marked this pull request as ready for reviewAugust 19, 2025 14:32
@ssncferreirassncferreira removed the staleThis issue is like stale bread. labelAug 19, 2025
@ssncferreirassncferreira merged commit560cf84 intomainAug 20, 2025
30 checks passed
@ssncferreirassncferreira deleted the ssncferreira/fix-activity-bump-prebuilds branchAugust 20, 2025 11:19
@github-actionsgithub-actionsbot locked and limited conversation to collaboratorsAug 20, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
Reviewers

@johnstcnjohnstcnjohnstcn approved these changes

@SasSwartSasSwartAwaiting requested review from SasSwart

Assignees

@ssncferreirassncferreira

Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

2 participants
@ssncferreira@johnstcn

[8]ページ先頭

©2009-2025 Movatter.jp