Commit 5836295
fix(cloudfoundry): avoid nil panic on failed DCA connection
getDCAClient stored the result of GetClusterAgentClient (which returns
(*DCAClient, error)) directly into the c.dcaClient interface field before
checking the error. On a failed connection the returned nil *DCAClient was
boxed into the interface, producing a non-nil "typed nil". The next Pull
passed the `c.dcaClient != nil` cache check and panicked when calling
GetCFAppsMetadataForNode on the nil receiver.
Assign to a local *DCAClient and only store it on success. Also call the
local client returned by getDCAClient in Pull instead of the field.
This regressed in 7.81 when GetClusterAgentClient's return type changed from
DCAClientInterface to *DCAClient (#50814); previously the error path returned
a true nil interface and was harmless.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 98c5a2c commit 5836295
3 files changed
Lines changed: 63 additions & 3 deletions
File tree
- comp/core/workloadmeta/collectors/internal/cloudfoundry/vm
- releasenotes/notes
Lines changed: 8 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| |||
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
234 | | - | |
235 | | - | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
236 | 240 | | |
237 | 241 | | |
238 | 242 | | |
239 | 243 | | |
240 | 244 | | |
| 245 | + | |
241 | 246 | | |
242 | 247 | | |
243 | 248 | | |
| |||
Lines changed: 40 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
438 | 438 | | |
439 | 439 | | |
440 | 440 | | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
441 | 481 | | |
442 | 482 | | |
443 | 483 | | |
| |||
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
0 commit comments