opensearch-project / index-management-dashboards-plugin

🗃 Manage policies and jobs and automate periodic data operations in OpenSearch Dashboards
https://opensearch.org/docs/latest/im-plugin/index/
Apache License 2.0
15 stars 86 forks source link

[BUG] Opensearch Dashboards Forcemerge #943

Open yanicksimon opened 1 year ago

yanicksimon commented 1 year ago

Describe the bug

If you want to start a forcemerge via the Opensearch Dashboard as it says in the instructions: https://opensearch.org/docs/latest/dashboards/im-dashboards/forcemerge then the message appears that the forcemerge has been started, but in reality no one was triggered on the cluster. After some seconds a successful message appears.. If you run the forcemerge via the dev console, it will be executed on the cluster, but will run into a timeout in the dev console. If you run the forcemerge with the same technical user trought the API directly to the cluster, everythings works as expected. I have the feeling that something is being transmitted incorrectly between opensearch dashboard and opensearch cluster. User has "indices:*" index_allowed_actions.

The opensearch dashboard logs are a little bit confused. When the User has "indices:*" under index_allowed_actions I received following message:

Index Management - CommonService - apiCaller StatusCodeError: [status_exception] lronConfig LRON:indices:admin/forcemerge not found at respond (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/transport.js:349:15) at checkRespForFailure (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/transport.js:306:7) at HttpConnector. (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/connectors/http.js:173:7) at IncomingMessage.wrapper (/usr/share/opensearch-dashboards/node_modules/lodash/lodash.js:4991:19) at IncomingMessage.emit (node:events:525:35) at IncomingMessage.emit (node:domain:489:12) at endReadableNT (node:internal/streams/readable:1359:12) at processTicksAndRejections (node:internal/process/task_queues:82:21) { status: 404, displayName: 'NotFound', path: '/_plugins/_im/lron/LRON%3Aindices%3Aadmin%2Fforcemerge', query: undefined, body: { error: { root_cause: [Array], type: 'status_exception', reason: 'lronConfig LRON:indices:admin/forcemerge not found' }, status: 404 }, statusCode: 404, response: '{"error":{"root_cause":[{"type":"status_exception","reason":"lronConfig LRON:indices:admin/forcemerge not found"}],"type":"status_exception","reason":"lronConfig LRON:indices:admin/forcemerge not found"},"status":404}', toString: [Function (anonymous)], toJSON: [Function (anonymous)]}

What the heck is LRON? When the user has "indices_all" under index_allowed_actions then I receive the following message:

Index Management - CommonService - apiCaller StatusCodeError: [index_not_found_exception] no such index [.opensearch-control-center], with { index=".opensearch-control-center" & resource.id=".opensearch-control-center" & resource.type="index_expression" & index_uuid="na" } at respond (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/transport.js:349:15) at checkRespForFailure (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/transport.js:306:7) at HttpConnector. (/usr/share/opensearch-dashboards/node_modules/elasticsearch/src/lib/connectors/http.js:173:7) at IncomingMessage.wrapper (/usr/share/opensearch-dashboards/node_modules/lodash/lodash.js:4991:19) at IncomingMessage.emit (node:events:525:35) at IncomingMessage.emit (node:domain:489:12) at endReadableNT (node:internal/streams/readable:1359:12) at processTicksAndRejections (node:internal/process/task_queues:82:21) { status: 404, displayName: 'NotFound', path: '/_plugins/_im/lron/LRON%3Aindices%3Aadmin%2Fforcemerge', query: undefined, body: { error: { root_cause: [Array], type: 'index_not_found_exception', reason: 'no such index [.opensearch-control-center]', index: '.opensearch-control-center', 'resource.id': '.opensearch-control-center', 'resource.type': 'index_expression', index_uuid: 'na' }, status: 404 }, statusCode: 404, response: '{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [.opensearch-control-center]","index":".opensearch-control-center","resource.id":".opensearch-control-center","resource.type":"index_expression","index_uuid":"na"}],"type":"index_not_found_exception","reason":"no such index [.opensearch-control-center]","index":".opensearch-control-center","resource.id":".opensearch-control-center","resource.type":"index_expression","index_uuid":"na"},"status":404}', toString: [Function (anonymous)], toJSON: [Function (anonymous)]}

I don't now what the difference between these permissions are (as documented these should identically), but I think something is completely Bug! It would be very nice to get some help to solve these problems.

To Reproduce Steps to reproduce the behavior:

See instructions here: https://opensearch.org/docs/latest/dashboards/im-dashboards/forcemerge

Expected behavior A forcemerge will be triggered at the cluster and I can see the forcemerge in the thread pools or in the queue at the clusters.

OpenSearch Version 2.11.0

Dashboards Version 2.11.0

Plugins

Screenshots

Host/Environment (please complete the following information):

Additional context

yanicksimon commented 11 months ago

Any feedback on this?

dblock commented 5 months ago

[Triage -- attendees 1, 2, 3, 4, 5, 6, 7]

Looks like a number of real problems here. @yanicksimon any interest in picking those up?