Skip to content

chore(camel-test-infra-couchbase): upgrade couchbase.container to 8.0.0#21891

Merged
apupier merged 4 commits intomainfrom
automated/upgrade-couchbase-container-8.0.0-18
Mar 19, 2026
Merged

chore(camel-test-infra-couchbase): upgrade couchbase.container to 8.0.0#21891
apupier merged 4 commits intomainfrom
automated/upgrade-couchbase-container-8.0.0-18

Conversation

@github-actions
Copy link
Contributor

This PR updates the couchbase.container container image to version 8.0.0.

Update Details

  • Property: couchbase.container
  • Image: mirror.gcr.io/couchbase/server
  • File: /home/runner/work/camel/camel/test-infra/camel-test-infra-couchbase/src/main/resources/org/apache/camel/test/infra/couchbase/services/container.properties
  • Old version: 7.6.2
  • New version: 8.0.0

Verification

Please verify:

  • Container image version is compatible with existing tests
  • No breaking changes in the updated version
  • Tests pass with the new version

Run the following to verify:

mvn clean verify -pl camel-test-infra-couchbase

This PR was automatically created by the Container Version Upgrade workflow.

Update couchbase.container from 7.6.2 to 8.0.0
@github-actions github-actions bot added dependencies Pull requests that update a dependency file container-images For check container upgrades automated For Check Container upgrade labels Mar 10, 2026
@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/component-test camel-couchbase

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/component-test camel-couchbase

Result ✅ The tests passed successfully

@github-actions
Copy link
Contributor Author

🤖 The Apache Camel test robot will run the tests for you 👍

Copy link
Contributor

@apupier apupier left a comment

Choose a reason for hiding this comment

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

requires specific change:

[�[1;31mERROR�[m] �[1;31mErrors: �[m
[�[1;31mERROR�[m] �[1;31m  ConsumeMessagesWithLimitIT>CouchbaseIntegrationTestBase.setUpCouchbase:57 » ViewService View Query Failed: {"error":"not_found","reason":"views are supported only on couchbase buckets with couchstore storage backend"}
�[m
[�[1;31mERROR�[m] �[1;31m  ConsumeResumeStrategyIT>CouchbaseIntegrationTestBase.setUpCouchbase:57 » ViewService View Query Failed: {"error":"not_found","reason":"views are supported only on couchbase buckets with couchstore storage backend"}
�[m

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/component-test camel-couchbase

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/component-test camel-couchbase

Result ✅ The tests passed successfully

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/update-branch

@github-actions
Copy link
Contributor Author

✅ Branch updated successfully by merging main.

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/component-test camel-couchbase

@github-actions
Copy link
Contributor Author

/component-test camel-couchbase tests passed successfully.

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/update-branch

@github-actions
Copy link
Contributor Author

✅ Branch updated successfully by merging main.

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

/component-test camel-couchbase

@github-actions
Copy link
Contributor Author

/component-test camel-couchbase tests passed successfully.

⚠️ Some integration tests are disabled on GitHub Actions (@DisabledIfSystemProperty(named = "ci.env.name")) and require manual verification:

  • components/camel-couchbase: 5 test(s) disabled on GitHub Actions

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

Local test results for Couchbase 8.0.0:

Mixed results — producer tests pass, consumer tests fail:

Test Result
ProduceMessagesSimpleIT ✅ PASSED
ProduceMessagesWithAutoIDIT ✅ PASSED
RemoveMessagesIT ✅ PASSED
ConsumeMessagesWithLimitIT ❌ FAILED
ConsumeResumeStrategyIT ❌ FAILED

The consumer test failures are caused by:

ViewServiceException: views are supported only on couchbase buckets with couchstore storage backend

Couchbase 8.0.0 changed the default storage backend from CouchStore to Magma. Map/Reduce views are not supported on Magma. The test base class CouchbaseIntegrationTestBase creates a bucket with the default storage backend and then upserts a design document (view), which fails.

To fix, either:

  1. Specify StorageBackend.COUCHSTORE when creating the test bucket in CouchbaseIntegrationTestBase.setUpCouchbase()
  2. Or migrate the consumer to use SQL++/N1QL queries instead of views (views are deprecated in Couchbase 7.x+)

This PR is not safe to merge without addressing the storage backend change.

Couchbase 8.0.0 changed the default storage backend from CouchStore to
Magma. Map/Reduce views only work with CouchStore, so explicitly set
StorageBackend.COUCHSTORE when creating the test bucket.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Contributor Author

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using build-all, build-dependents, skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@gnodet
Copy link
Contributor

gnodet commented Mar 10, 2026

I've verified the Couchbase 8.0.0 upgrade locally with Docker — all 28 unit tests + 3 integration tests pass.

Issue: Couchbase 8.0.0 changed the default storage backend from CouchStore to Magma. Map/Reduce views (used by the integration tests) only work with CouchStore, so creating a bucket without explicitly setting the storage backend now fails with a ViewServiceException.

Fix: The additional commit (d143a1c) explicitly sets StorageBackend.COUCHSTORE when creating the test bucket in CouchbaseIntegrationTestBase.java.

@apupier could you double-check locally if you have a chance? The CI build passes (JDK 21 + JDK 25).

@gnodet gnodet requested a review from apupier March 11, 2026 09:18
Copy link
Contributor

@apupier apupier left a comment

Choose a reason for hiding this comment

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

Couchbase 8.0.0 changed the default storage backend from CouchStore to Magma. Map/Reduce views (used by the integration tests) only work with CouchStore, so creating a bucket without explicitly setting the storage backend now fails with a ViewServiceException.

Does it mean that the component must be improved to work with default?
Are all tests requiring Map/reduce views? What do you think to have some tests with the Couchstore and some tests using the default magma?

@github-actions
Copy link
Contributor Author

Superseded by a newer version (8.0.0).

@github-actions github-actions bot closed this Mar 16, 2026
@github-actions github-actions bot deleted the automated/upgrade-couchbase-container-8.0.0-18 branch March 16, 2026 06:41
@apupier apupier restored the automated/upgrade-couchbase-container-8.0.0-18 branch March 16, 2026 07:42
@apupier apupier reopened this Mar 16, 2026
@github-actions
Copy link
Contributor Author

🧪 CI tested the following changed modules:

  • components/camel-couchbase
  • test-infra/camel-test-infra-couchbase
Full reactor (76 modules)
  • Camel :: All Components Sync point
  • Camel :: All Components Sync point [pom]
  • Camel :: Assembly
  • Camel :: Assembly [pom]
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated) [maven-plugin]
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated) SUCCESS [ 0.909 s]
  • Camel :: Catalog :: Camel Catalog
  • Camel :: Catalog :: Camel Catalog [jar]
  • Camel :: Catalog :: Camel Report Maven Plugin
  • Camel :: Catalog :: Camel Report Maven Plugin [maven-plugin]
  • Camel :: Catalog :: Camel Route Parser
  • Camel :: Catalog :: Camel Route Parser [jar]
  • Camel :: Catalog :: Console
  • Camel :: Catalog :: Console [jar]
  • Camel :: Catalog :: Dummy Component
  • Camel :: Catalog :: Dummy Component [jar]
  • Camel :: Catalog :: Lucene (deprecated)
  • Camel :: Catalog :: Lucene (deprecated) [jar]
  • Camel :: Catalog :: Maven
  • Camel :: Catalog :: Maven [jar]
  • Camel :: Catalog :: Suggest
  • Camel :: Catalog :: Suggest [jar]
  • Camel :: Component DSL
  • Camel :: Component DSL [jar]
  • Camel :: Couchbase
  • Camel :: Couchbase [jar]
  • Camel :: Coverage
  • Camel :: Coverage [pom]
  • Camel :: Docs
  • Camel :: Docs [pom]
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL [jar]
  • Camel :: Endpoint DSL :: Support
  • Camel :: Endpoint DSL :: Support [jar]
  • Camel :: Integration Tests
  • Camel :: Integration Tests [jar]
  • Camel :: JBang :: Core
  • Camel :: JBang :: Core [jar]
  • Camel :: JBang :: Integration tests
  • Camel :: JBang :: Integration tests [jar]
  • Camel :: JBang :: MCP
  • Camel :: JBang :: MCP [jar]
  • Camel :: JBang :: Main
  • Camel :: JBang :: Main [jar]
  • Camel :: JBang :: Plugin :: Edit
  • Camel :: JBang :: Plugin :: Edit [jar]
  • Camel :: JBang :: Plugin :: Generate
  • Camel :: JBang :: Plugin :: Generate [jar]
  • Camel :: JBang :: Plugin :: Kubernetes
  • Camel :: JBang :: Plugin :: Kubernetes [jar]
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: Route Parser [jar]
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Testing [jar]
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: JBang :: Plugin :: Validate [jar]
  • Camel :: Kamelet Main
  • Camel :: Kamelet Main [jar]
  • Camel :: Launcher
  • Camel :: Launcher [jar]
  • Camel :: Launcher :: Container
  • Camel :: Launcher :: Container [pom]
  • Camel :: Test Infra :: All test services
  • Camel :: Test Infra :: All test services [jar]
  • Camel :: Test Infra :: Couchbase
  • Camel :: Test Infra :: Couchbase [jar]
  • Camel :: YAML DSL
  • Camel :: YAML DSL [jar]
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Deserializers [jar]
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Maven Plugins [maven-plugin]
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator [jar]
  • Camel :: YAML DSL :: Validator Maven Plugin
  • Camel :: YAML DSL :: Validator Maven Plugin [maven-plugin]

@apupier
Copy link
Contributor

apupier commented Mar 19, 2026

Couchbase 8.0.0 changed the default storage backend from CouchStore to Magma. Map/Reduce views (used by the integration tests) only work with CouchStore, so creating a bucket without explicitly setting the storage backend now fails with a ViewServiceException.

Does it mean that the component must be improved to work with default? Are all tests requiring Map/reduce views? What do you think to have some tests with the Couchstore and some tests using the default magma?

@gnodet ^^

Copy link
Contributor

@gnodet gnodet left a comment

Choose a reason for hiding this comment

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

The change to force StorageBackend.COUCHSTORE is the right pragmatic fix for now.

Some context on the broader picture:

The consumer is fundamentally tied to MapReduce ViewsCouchbaseConsumer.java uses bucket.viewQuery() as its sole mechanism to poll for documents. MapReduce Views were deprecated in Couchbase 7.0 and don't work with the Magma storage backend, which became the default in 8.0.

Test breakdown:

  • Consumer tests (ConsumeMessagesWithLimitIT, ConsumeResumeStrategyIT) — require views, so they must use CouchStore
  • Producer tests (ProduceMessagesSimpleIT, ProduceMessagesWithAutoIDIT, RemoveMessagesIT) — only use KV operations (get/upsert/remove), so they could theoretically run with the default Magma backend

@apupier Re: your questions — splitting producer tests to use Magma and consumer tests to use CouchStore is possible but adds complexity for limited value (KV operations working with Magma is a Couchbase SDK guarantee). The real improvement is migrating the consumer from deprecated Views to SQL++ (N1QL) queries, which I've filed as a separate issue.

Copy link
Contributor

@gnodet gnodet left a comment

Choose a reason for hiding this comment

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

I've filed CAMEL-23218 to track modernizing the consumer from deprecated MapReduce Views to SQL++ (N1QL) queries.

@apupier apupier merged commit b850713 into main Mar 19, 2026
8 checks passed
@apupier apupier deleted the automated/upgrade-couchbase-container-8.0.0-18 branch March 19, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated For Check Container upgrade components container-images For check container upgrades dependencies Pull requests that update a dependency file test-infra

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants