On Mon, May 19, 2025 at 05:25:39PM +0800, limingming3 wrote:
pick_eevdf() may return NULL, which would triggers NULL pointer dereference and crash when best and curr are both NULL.
There are two cases when curr would be NULL:
- curr is NULL when enter pick_eevdf
- we set it to NUll when curr is not on_rq or eligible.
And when we went to the best = curr flow, the se should never be NULL, So when best and curr are both NULL, we'd better set best = se to avoid return NULL.
Below crash is what I encounter very low probability on our server and I have not reproduce it, and I also found other people feedback some similar crash on lore. So believe the issue is really exit.
If you've found those emails, you'll also have found me telling them this is the wrong fix.
This (returning NULL) can only happen when the internal state is broken. Ignoring the NULL will then hide the actual problem.
Can you reproduce on the latest kernels?, 6.1 is so old I don't even remember what's in there.