adoptium / aqa-test-tools

Home of Test Results Summary Service (TRSS) and PerfNext. These tools are designed to improve our ability to monitor and triage tests at the Adoptium project. The code is generic enough that it is extensible for use by any project that needs to monitor multiple CI servers and aggregate their results.
Apache License 2.0
27 stars 79 forks source link

Exception in BuildProcessor "Cannot read properties of null" #891

Open smlambert opened 1 month ago

smlambert commented 1 month ago

Investigate the reason for the exception seen after a restart of TRSS in logs:

aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:03 AM 172.20.0.3 GET /static/js/main.c8c0ae06.js
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:03 AM 172.20.0.3 Returned 200 in 5 ms
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:12 AM 172.20.0.3 GET /buildDetail?parentId=6428664517052c67158cc8d5&testSummaryResult=total&buildNameRegex=%5ETest.*
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:12 AM 172.20.0.3 Returned 200 in 1 ms
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:26 AM 172.20.0.3 GET /allTestsInfo?buildId=65d7428b43ff67006e7c5749&limit=1
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:26 AM 172.20.0.3 Returned 200 in 1 ms
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:27 AM 172.20.0.3 HEAD /
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:34:27 AM 172.20.0.3 Returned 200 in 1 ms
aqa-test-tools-server-1  | 11:34:50 AM - error: Exception in BuildProcessor:  message=Cannot read properties of null (reading 'startsWith'), stack=TypeError: Cannot read properties of null (reading 'startsWith')
aqa-test-tools-server-1  |     at addCredential (/usr/src/app/Utils.js:18:21)
aqa-test-tools-server-1  |     at JenkinsInfo.getBuildInfo (/usr/src/app/JenkinsInfo.js:98:24)
aqa-test-tools-server-1  |     at BuildProcessor.execute (/usr/src/app/BuildProcessor.js:18:45)
aqa-test-tools-server-1  |     at EventHandler.processBuild (/usr/src/app/EventHandler.js:32:46)
aqa-test-tools-server-1  |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
aqa-test-tools-server-1  | 11:34:52 AM - verbose: EventHandler: processBuild() is waiting for 120 secs before checking DB for builds != Done
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:07 AM 172.20.0.3 GET /buildDetail?parentId=65c6fe0343ff67006e9cf174
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:07 AM 172.20.0.3 Returned 200 in 1 ms
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:26 AM 172.20.0.3 GET /deepHistory?testId=65f4f86743ff67006ee2569e
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:26 AM 172.20.0.3 Returned 200 in 1 ms
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:27 AM 172.20.0.3 HEAD /
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:27 AM 172.20.0.3 Returned 200 in 1 ms
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:30 AM 172.20.0.3 GET /static/js/main.c8c0ae06.js
aqa-test-tools-client-1  |  HTTP  7/13/2024 11:35:30 AM 172.20.0.3 Returned 200 in 0 ms
aqa-test-tools-mongo-1   | {"t":{"$date":"2024-07-13T11:35:34.547+00:00"},"s":"I",  "c":"COMMAND",  "id":51803,   "ctx":"conn4","msg":"Slow query","attr":{"type":"command","ns":"exampleDb.testResults","command":{"aggregate":"testResults","pipeline":[{"$match":{"tests._id":{"$oid":"65f4f86743ff67006ee2569e"}}},{"$unwind":"$tests"},{"$match":{"tests._id":{"$oid":"65f4f86743ff67006ee2569e"}}}],"cursor":{},"lsid":{"id":{"$uuid":"b7ec97a8-9ff8-4b00-ae13-033dbad21ff3"}},"$db":"exampleDb"},"planSummary":"COLLSCAN","keysExamined":0,"docsExamined":50202,"cursorExhausted":true,"numYields":50,"nreturned":1,"queryHash":"3DA02FF2","planCacheKey":"3DA02FF2","queryExecutionEngine":"classic","reslen":12514,"locks":{"FeatureCompatibilityVersion":{"acquireCount":{"r":52}},"Global":{"acquireCount":{"r":52}},"Mutex":{"acquireCount":{"r":2}}},"storage":{},"remote":"172.20.0.5:38014","protocol":"op_msg","durationMillis":284}}
smlambert commented 1 month ago

Maybe a side effect of seeing duplicate entries of pipelines being monitored, having removed the duplicates from the DB.

The TRSS server appears to be correctly monitoring the existing pipelines still.