Skip to content

CBG-5511: Stop db loading opting out of mobile collection if bootstrap migration is done#8440

Open
gregns1 wants to merge 4 commits into
mainfrom
CBG-5511
Open

CBG-5511: Stop db loading opting out of mobile collection if bootstrap migration is done#8440
gregns1 wants to merge 4 commits into
mainfrom
CBG-5511

Conversation

@gregns1

@gregns1 gregns1 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

CBG-5511

Stop loading/creating a db is bootstrap level migration is done for the bucket but the db is opted out of mobile collection

Pre-review checklist

  • Removed debug logging (fmt.Print, log.Print, ...)
  • Logging sensitive data? Make sure it's tagged (e.g. base.UD(docID), base.MD(dbName))
  • Updated relevant information in the API specifications (such as endpoint descriptions, schemas, ...) in docs/api

Dependencies (if applicable)

  • Link upstream PRs
  • Update Go module dependencies when merged

Integration Tests

Copilot AI review requested due to automatic review settings July 10, 2026 09:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR adds a safety guard to prevent creating or loading databases without use_system_metadata_collection on buckets whose bootstrap metadata already resides in _system._mobile, avoiding cluster split-brain config states.

Changes:

  • Reject DB create/load when the bucket bootstrap target is _system._mobile but the DB config is not opted into the system metadata collection.
  • Introduce BucketBootstrapTargetIsSystemMobile on BootstrapConnection and implement it for Couchbase and Rosmar backends.
  • Add regression tests covering both “migrated” and “opted-in-from-start” bucket scenarios.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
rest/server_context.go Enforces opt-in requirement during DB load/add when bucket bootstrap target is _system._mobile.
rest/admin_api.go Enforces opt-in requirement during DB creation before persisting config.
base/bootstrap.go Extends BootstrapConnection with a method to resolve current bucket bootstrap target.
base/rosmar_cluster.go Probes/caches registry location and exposes BucketBootstrapTargetIsSystemMobile for Rosmar.
db/database_error.go Adds a new database error code/message for the opt-in-required case.
rest/metadatamigrationtest/metadata_migration_test.go Adds tests ensuring non-opt-in DBs are rejected when bucket bootstrap metadata is in _system._mobile.

Comment thread rest/server_context.go
Comment thread rest/admin_api.go
Comment thread base/rosmar_cluster.go
Comment thread base/rosmar_cluster.go
Comment thread rest/metadatamigrationtest/metadata_migration_test.go
@gregns1 gregns1 self-assigned this Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants