Commit cbe23a3
authored
[fix](job) fix NPE in routine load Kafka meta request (#63180)
### What problem does this PR solve?
Problem Summary:
In a single-BE deployment, Kafka routine load fetches topic metadata
through the only BE. If that BE cannot connect to Kafka, the metadata
request fails and the BE is skipped in the current retry loop. Then FE
may have no normal candidate backend left and falls back to backend ids
in the routine load blacklist.
The blacklist can contain stale backend ids that no longer exist in
`SystemInfoService`. In that case, `KafkaUtil` may get a null `Backend`
and throw a NullPointerException when calling `be.getHost()`. This hides
the real Kafka metadata error, such as broker connection failure.
This PR filters stale backend ids when reading the routine load
blacklist and adds a final null check before creating the BE address.
The original Kafka metadata error is preserved instead of being replaced
by the secondary NPE.
A regression case is added with an invalid `kafka_broker_list` to verify
that routine load reports the expected Kafka metadata error path.1 parent 90ec8ad commit cbe23a3
2 files changed
Lines changed: 76 additions & 3 deletions
File tree
- fe/fe-core/src/main/java/org/apache/doris/datasource/kafka
- regression-test/suites/load_p0/routine_load
Lines changed: 20 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
256 | | - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
257 | 265 | | |
258 | 266 | | |
259 | 267 | | |
| |||
264 | 272 | | |
265 | 273 | | |
266 | 274 | | |
267 | | - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
268 | 285 | | |
269 | 286 | | |
270 | 287 | | |
| |||
Lines changed: 56 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
153 | 209 | | |
154 | 210 | | |
0 commit comments