Unable to add MongoDB due to "+" in password

Description

User Impact:

Restrictions to add mongodb for monitoring due to complex password.

 

Steps to reproduce

  • Create MongoDB user for PMM with a + in the password

  • Use pmm-admin to add the service

Actual result

Expected Result

Workaround
Remove + from the password

 

We basically have broken an already fixed issue, https://jira.percona.com/browse/PMM-9320 

How to test

Side note: are also other special chars breaking the auth?

How to document

None

Attachments

3

Smart Checklist

hide

Activity

Show:

Peter Sirotnak December 5, 2024 at 6:33 AM

Not reproducible automated test enabled in pmm v2 and v3. Closing story.

Nurlan Moldomurov September 23, 2024 at 2:10 PM

can we retest it on the latest PMM?

Michael Okoko February 15, 2024 at 12:29 AM
Edited

Re: Yeah, the reason is that with that ticket, we started using getDiagnosticData for connection check, so the role no longer had sufficient permission. You can use any of these roles to get it to work: root, clusterAdmin or clusterMonitor

Vadym Yarosh February 14, 2024 at 5:35 PM

Automated test unskip is prepared:

Vadym Yarosh February 14, 2024 at 5:20 PM

tracing down Nurlan’s link I’ve used version 2.37.1 and the tests is passing. Used script

Same script fails on dev latest for both cases:

Please note the language: Unauthorized actually means insufficient permissions. While login procedure is “authentication”

Done

Details

Assignee

Reporter

Priority

Components

Needs QA

Yes

Needs Doc

No

Planned Version/s

Story Points

Regression Issue

Yes

Found by Automation

Yes

Affects versions

Smart Checklist Progress

Environment

{"node_id":"/node_id/06ab3cbc-7a3a-40ee-ab3c-a9fe56ab3d34","service_name":"mongodb_testing","address":"localhost","port":27019,"pmm_agent_id":"/agent_id/b6c7e041-771b-4d1d-8174-94059fbe0f96","environment":"modb-de","cluster":"mongodb_node_1","username":"test_user","password":"pass+","qan_mongodb_profiler":true,"metrics_mode":"AUTO","disable_collectors":null,"stats_collections":null,"collections_limit":-1,"log_level":"warn"}

DEBUG 2023-06-09 13:42:52.842527846Z: HTTP/1.1 400 Bad Request
Content-Length: 419
Connection: keep-alive
Content-Type: application/json
Date: Fri, 09 Jun 2023 13:42:52 GMT
Server: nginx
Strict-Transport-Security: max-age=63072000; includeSubdomains;

{
  "error": "Connection check failed: (Unauthorized) not authorized on admin to execute command { getDiagnosticData: 1, lsid: { id: UUID(\"6a5f965b-d91f-4a1d-9715-e7f0c0669900\") }, $db: \"admin\" }.",
  "code": 9,
  "message": "Connection check failed: (Unauthorized) not authorized on admin to execute command { getDiagnosticData: 1, lsid: { id: UUID(\"6a5f965b-d91f-4a1d-9715-e7f0c0669900\") }, $db: \"admin\" }."
}
DEBUG 2023-06-09 13:42:52.84263703Z: Result: <nil>                               
DEBUG 2023-06-09 13:42:52.842653471Z: Error: &mongo_db.AddMongoDBDefault{_statusCode:400, Payload*mongo_db.AddMongoDBDefaultBody)(0xc0006482d0)}
Connection check failed: (Unauthorized) not authorized on admin to execute command { getDiagnosticData: 1, lsid: { id: UUID("6a5f965b-d91f-4a1d-9715-e7f0c0669900") }, $db: "admin" }.

Smart Checklist

Created June 9, 2023 at 1:58 PM
Updated December 5, 2024 at 6:34 AM
Resolved December 5, 2024 at 6:34 AM