Skip to content

Conversation

@davsclaus
Copy link
Contributor

…nt (and potentially other situations)

Description

Target

  • I checked that the commit is targeting the correct branch (Camel 4 uses the main branch)

Tracking

  • If this is a large change, bug fix, or code improvement, I checked there is a JIRA issue filed for the change (usually before you start working on it).

Apache Camel coding standards and style

  • I checked that each commit in the pull request has a meaningful subject line and body.
  • I have run mvn clean install -DskipTests locally from root folder and I have committed all auto-generated changes.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 5, 2025

🌟 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.

  • 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.

@davsclaus davsclaus requested a review from squakez December 8, 2025 09:12
Copy link
Contributor

@squakez squakez left a comment

Choose a reason for hiding this comment

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

I don't have a deep knowledge of the core architecture. However I think this may become inconsistent under certain situations given that we always set the MDC but we are not 100% sure we unset it (as it happens elsewhere). IMO a more consistent solution would be to understand how the "intercept" works and make it able to be wrapped by any InterceptStrategy provided.

This very same problem is probably happening with customers' own strategies and possibly with other components that have a similar behavior of the MDC (eg, the telemetry ones). So, even if we "patch" it with this PR, the root cause will still exists.

I had planned to had another look soonish in order to understand how to make the interception (and others feature) part of the wrapped execution of any InterceptStrategy, so I had this Jira parked. If we're not in a rush, you can keep this on hold and I will try to analyse any alternative to understand a more consistent design if it is doable or not.

@squakez
Copy link
Contributor

squakez commented Dec 9, 2025

On top of that, this would defeat the intent of design change we introduced to make the set/unset logic transactional: https://github.com/apache/camel/blob/main/proposals/mdc.adoc#proposal

@davsclaus
Copy link
Contributor Author

For transacted then its not a problem as it will be forced executed on the same thread, and unset is not needed. Its also better to not unset as then the MDC values are still present if 3rd party frameworks does logging.

About custom intercept strategy then its not the goal to have such hard-core feature as something that just snap in. Camel is a old framework and some part have their own pros/cons.

@davsclaus davsclaus marked this pull request as draft December 9, 2025 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants