-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Corrupt saved object passes import validation, breaks UI, and blocks upgrades #118621
Comments
I tried importing that same bad dashboard into a 7.11 instance and it did block it, so at least that part of the saved object import validation is already fixed. |
Pinging @elastic/kibana-core (Team:Core) |
Manually tempering with export files is not supported and can lead, one way or the other, to corrupted state and undesired behavior after import. We're aware of these problems, and are actively working on improving the validation and data-consistency checks of our saved objects API. #104088 is the first step, that will add per-type validation schema, to add a layer of protection against tempered or invalid data during both create and import operations. |
The only reason I manually tampered with the file was to exactly recreate the issue that naturally occurred in a live cluster. I'm not sure how the original dashboard ended up in that state. |
Pinging @elastic/kibana-presentation (Team:Presentation) |
@elastic/kibana-presentation We don't know the root cause of this corrupt data, but using #104088 for your saved objects will prevent this from happening in the future. |
Closing this in favour of #139684, as adding schema validations (as described in that issue) will fix this one. |
Kibana version: 7.9.3 upgrading to 7.13.4
Elasticsearch version: 7.9.3 upgrading to 7.13.4
Server OS version: Elastic Cloud
Browser version: N/A
Browser OS version: N/A
Original install method (e.g. download page, yum, from source, etc.): Elastic Cloud
Describe the bug: When upgrading from 7.9.3 to 7.13.2, invalid saved object will completely block the upgrade. These are logged as failed saved objects migrations.
Steps to reproduce:
import.ndjson
file and import into Kibana:attributes
block.Expected behavior:
Screenshots (if relevant):
The corrupt dashboard breaks the entire
Saved Objects
page:It blocks the dashboard list, the UI never renders the page:
AND it entirely blocks an upgrade in Elastic Cloud:
Errors in browser console (if relevant):
TypeError: record.title is undefined
(See screenshot above)
Provide logs and/or server output (if relevant):
From the
kibana.log
we see this same dashboard blocks the upgrade:Any additional context:
At first this may seem like the answer is "well, don't add a corrupt dashboard" but the example here came from a genuine user experience, they hit this exact scenario attempting a cloud-managed upgrade.
So my main question is: why can't we just flag bad objects in the saved object migration for review after the upgrade, instead of abandoning the entire process?
The text was updated successfully, but these errors were encountered: