-
Notifications
You must be signed in to change notification settings - Fork 24.9k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
behavioral_analytics-events-final_pipeline parsing fails in a mixed cluster #95766
Comments
Pinging @elastic/enterprise-search (Team:Enterprise Search) |
Pinging @elastic/es-data-management (Team:Data Management) |
My reading of this sentence indicates that this is not just a quirk of the test framework but is a real production problem that could affect production customers during rolling upgrades if we release like this. I haven't spent a long time investigating this and I am not sure how bad the effect would be during the mixed version state, but just wanted to note that this issue deserves a proper investigation before 8.8.0 is released. For example, if the cluster was ingesting data during the rolling upgrade would that ingest break during the period between the new ingest pipeline being installed and the ingest nodes getting upgraded to the newer version? An approach the ML team has used for rolling upgrade situations like this is to not start using new functionality until the entire cluster has been upgraded to the newer version. |
I do not know if this breaks ingest pipelines on the older nodes (possibly) but one consequence is that the final pipeline will not be available on older nodes. The expected behaviour that documents will be processed through the final pipeline does not necessarily hold and now there is uncertainty about what the index contains. I agree in this case it is best to wait for the cluster to be fully upgraded. |
Great catch, thanks @davidkyle!
+1, we should never try to update/create these pipelines in a mixed cluster imo. |
Hey @davidkyle, Thank you for the heads up. |
…fig (elastic#95778) In elastic#95766 the ML trained model deployment upgrade tests fail due to an invalid ingest processor configuration. ML stopped parsing the full ingest pipeline in version 8.3.1 so the tests can be re-enable when upgrading from 8.3.1 or later.
Hey @davidkyle, I have just merged #95780 which is fixing this issue. |
@afoucret I re-enabled the ml tests that were failing (#96193) and I'm seeing the same I don't see the fix you linked to in the main branch anymore. Is there an alternative mechanism that should prevent this kind of error? Here's the build failure : https://gradle-enterprise.elastic.co/s/ch256gh4tunnc/tests/:x-pack:qa:rolling-upgrade:v8.2.1%23twoThirdsUpgradedTest/org.elasticsearch.upgrades.MLModelDeploymentsUpgradeIT/testTrainedModelDeployment?top-execution=1 |
Oups sorry @davidkyle, we had some back and forth with this one. The current implementation in main is in a bad state because the ingest pipeline management has been moved to core Elasticsearch and the logic to check the version was removed. Thanks for reopening the issue, we'll work on a fix and update/close this issue when it's done (hopefully very soon). |
Thanks @jimczi |
Elasticsearch Version
main
Installed Plugins
No response
Java Version
bundled
OS Version
macOS
Problem Description
The pipeline defined in
behavioral_analytics-events-final_pipeline.json
uses the newignore_missing
setting for theuri_parts
ingest processor added in #95068.The pipeline is referenced in the index template
behavioral_analytics-events-settings.json
.That template may be PUT as a node is upgraded during a rolling upgrade, in that mixed cluster scenario only the upgraded nodes recognise the new
ignore_missing
setting.Steps to Reproduce
The problem appears in the rolling upgrade test failure tracked in #95360
Logs (if relevant)
The text was updated successfully, but these errors were encountered: