Why your Linux kernel bug report might be fruitless
[last updated: 2024-01-06]
Prevalent reasons why Linux developers do not fix reported issues or ignore bug reports completely
These are the most frequent reasons why Linux kernel developers ignore bug reports or only react scantly to them:
At times one of the following aspects are why a bug report does not lead to significant traction or a fix:
Occasionally, the following can be a problem, too:
The text in the sections below explain each of the above aspects in more detail. It also describes a few related points for anyone wanting to understand the situation better:
Your kernel was apparently built by a Linux distributor or hardware vendor
Why? Many Linux kernel developers will not bother looking into bugs reported using such kernels: They suspect the problem might not be present in the code they are working on. That is quite possible, as kernels from Linux distributors or hardware vendors are often built from heavily modified sources, use add-on drivers, or from the developers perspective are ancient.
What to do? One option is to report the problem to your vendor. Your other option is to check if the problem occurs with a really fresh mainline kernel build from pristine Linux kernel sources (so called "vanilla kernel"); if it does, send a follow up to your report making that obvious.
Related information: See "Your kernel was apparently built from modified Linux sources" and "Your kernel apparently loaded add-on drivers" to learn why modified kernels and add-on drivers for many upstream kernel developers are a no-go. To learn why any kernel series older than three months usually are a problem, checkout "You used a longterm kernel to report a bug that's not a regression within the particular longterm series"; and "You did not use a mainline kernel less than two weeks old" explains why even the newest kernel version from the latest stable series is not fresh enough.
Note though, a few upstream Linux kernel developers are willing to look into bugs reported with the latest default kernel from distributions like Arch Linux, Debian Sid, Fedora Linux, or openSUSE Tumbleweed – at least as long as it's based on a quite recent release from the latest Linux stable series. That's because those distributions only apply small modifications, which some developers consider to be close enough to upstream. But be warned, for quite a few or maybe many developers these kernels are not good enough – they hence might ignore or reject reports with such kernels.
Your kernel was apparently built from modified Linux sources
Why? Many Linux kernel developers don't bother looking into bugs with such kernels: they suspect the problem might not happen with the code they are working on, as there is a decent chance those modifications cause the problem.
What to do? Verify if the problem occurs with a really fresh mainline kernel built from pristine sources (so called "vanilla kernel"); if it does, send a follow up to your report making that obvious.
Related information: Some developers won't even take a closer look if the applied modifications are small and seem harmless, as even those can cause all sorts of trouble – often even in areas that look totally unrelated.
One developer tried to explain the situation like this:
"Imagine having published a thick book under an Open Source license requiring attribution. A book that becomes really famous through derivatives published by other people, who often modify parts of the text, add additional chapters, or do both. It's only natural that some of those changes and additions will contain errors. Some readers will report those to you, the attributed main author. In the beginning you likely care enough to check any reported error and fix them in your text if they are present there. But due to the popularity and the many derivatives that at some point can becomes tedious, if it turns out many of the reported mistakes haven't been in your text in the first place. So much so, that you might stop investigating any reports about bugs in modified works, as the time seems better spent on more fruitful work – especially when you have much on your plate already."
Your kernel apparently loaded add-on drivers
Why? Many upstream developers don't care at all about bugs in kernels that load add-on drivers, especially proprietary ones. From their perspective the situation is similar to modifications at buildtime (see above): there is quite a chance the problem doesn't even happen with the upstream Linux kernel.
What to do? Verify if the problem occurs with a really fresh mainline kernel build from pristine sources (so called "vanilla kernel"); if it does, send a follow up to your report making that obvious.
Related information: Once loaded, a kernel driver can modify every aspect of the kernel – a potential some proprietary add-on drivers are known to use for their gain. Proprietary drivers furthermore also make it a lot harder and sometimes impossible to properly debug an issue.
Almost no developer of the Linux kernel thus will bother to look when your system uses proprietary drivers (like those from Nvidia). For many developers GPLv2-compatible drivers developed independently from the upstream kernel are a problem as well – like those from independent Open Source developers or those companies distribute separately or bundled with other software (like VirtualBox).
You submitted the report to the wrong place (bugzilla.kernel.org can be one)
Why? The kernel developers make things quite hard for people reporting bugs, as the right place to submit a bug report to depends on where in the kernel the problem occurs; reports filed in other places might thus not even reach the developers.
The latter can easily happen with bugzilla.kernel.org: it seems to be a central place to report bugs, when in fact it is not. Many reports filed there thus are never seen by any developer; quite a few of the latter can not even be reached through the bug tracker at all.
Bug reports sent solely to mailing lists often won't be seen by the appropriate developers either, especially when they were sent only to the Linux kernel mailing list (LKML).
What to do? Consult the Linux kernel's "reporting issues" document to check the appropriate destination to report for your particular issue. Then resubmit the report there, but ensure to add a small note with a link to the earlier report. Most of the time you have to send your new report by mail to the maintainers with the appropriate mailing lists in CC. In rare cases bugzilla.kernel.org is the proper place; and sometimes you have to file the report on external trackers like gitlab.freedesktop.org.
All developers who received a mailed report assumed it's something someone else should handle
Why? It can easily happen that everyone considers your report something one of the other recipients should look into; this is especially likely when it's totally unclear which kernel subsystem is at fault.
What to do? Send a public reply to your report in which you directly ask the maintainers of the subsystem for advice which seems most likely at fault (use your best guess here). Hence have only those in the "To:" field of the mail and move everybody else to "CC:". Start your mail by greeting those maintainers using their names; afterwards ask kindly why you did not receive a reply and ask for advice on how to get things rolling.
You used a longterm kernel to report a bug that's not a regression within the particular longterm series
Why? The regular Linux kernel developers might have not bothered a closer look, as they assumed it's something for the stable team (which also handles longterm kernels) to look into; the latter at the same time might have assumed it's something for the regular Linux kernel developers to handle. And then in the end nobody will look into your report.
What to do? Basically follow the Linux kernel's "reporting issues" document . That will make you test a fresh mainline kernel, which is needed to determine if your bug is something for the regular developers or the stable team to handle – or might be one of those issues that will never be fixed in the particular longterm series anyway.
Related information: For more details about why nobody picked up your report see "Most developers do not care about bugs in longterm kernels" and "Reporting bugs to the stable team is often just a detour".
Your kernel is based on a mainline release more than three months old
Why? Unless you are reporting a regressions within a stable or longterm kernel series it's likely that no developer will care about the report. From their perspective, the version is too old:
If it's not a longterm kernel it is either already unsupported or will get stamped "End of life" (EOL) any day now.
If it's a longterm kernel it is pretty likely your report fell through the cracks; see "You used a longterm kernel to report a bug that's not a regression within the particular longterm series" above for details.
What to do? Verify if the problem occurs with a really fresh mainline kernel build from pristine sources (so called "vanilla kernel"); if it does, send a follow up to your report making that obvious.
Related information: There are new mainline releases every nine or ten weeks (e.g. a bit more than two months); the stable kernel series based on the previous release is often stamped "end of life" three to four weeks later. Said mainline release is about three months old by then.
Your report was hard for others to grasp (too vague, confusing, many links …)
Why? Many upstream Linux kernel developers seem to take only a few seconds to decide if bug reports they receive are worth reading. And even if they take a closer look they sometimes quickly move on to other work, if a report for one reason or another is hard to grasp.
There are many reasons why a report might fall into this category. Among the frequent reasons are descriptions that are too brief, too detailed, too vague, too confusing, or not self-contained (e.g. crucial details are only found via links or referrals to other reports or discussions).
What to do? If you suspect this might be the reason why your report was ignored, try to send a new, better one – ideally by letting a friend or two check the text before submitting it. In the new report apologize while pointing to the old report; that's important, as otherwise it might look like you are trying to send the similar reports over and over again, which would be considered rude.
Related information: See "Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything. " to understand why developers are not required to look into each bug report they receive.
Also check the Linux kernel's "reporting issues" document document, which has a section explaining how to create a good report. Especially the subject and first paragraph are crucial, as many developers won't read further unless those gather their interest.
The tone threw people off
Why? Developer might turn away and ignore a bug, if a report or participants in the following discussion make them feel annoyed (for good or bad reasons).
What to do? Try again after a while using a friendlier tone. Point to your old report when doing so; that's important, as otherwise it might look like you are trying to send the similar reports over and over again, which would be considered rude. Also when necessary apologize for your or other people's tone in earlier messages.
Related information: See "Your bug is neither a regression nor a severe issue" and "Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything. " to understand why developers are free to ignore many bug reports.
You reported the problem in a reply to an earlier report
Why? These reports frequently fall through the cracks for various reasons:
The initial report had problems like those outlined in this document and therefore did not gain traction; adding something to it often is unable to revive things.
The initial report described a problem with similar or identical symptoms, but in the end have totally different causes or requires machine specific workarounds (a "quirk" entry); then it can easily happen that in the end only some or none of the issues brought up during the discussion is addressed.
The initial report is considered resolved and developers stopped following it.
What to do? Send a new report that mentions the earlier report and link to it; the latter is important, as otherwise it might look like you are trying to send similar reports over and over again, which would be considered rude. Drop a quick note and a link in the earlier discussion as well.
Related information: Only join existing reports, if you are extremely sure they are about the exact same issue. In all other cases report problems independently while noting and linking the report that looks similar to you; afterwards go to the earlier report and reply with a short note and a link to your new report. That way everybody following the old report becomes aware of your ne one – and those with the most knowledge about the topic have everything at hand to quickly decide if it's the same or a different cause.
Your report covered multiple issues
Why? Some or all issues covered in a report then might not be addressed, as developers might have missed that the report contained something for them. They for example might have stopped reading when they noticed a description about a problem some other developer has to handle. Or they quickly turned away, as the report from their point of view was complicated and confusing – which in fact often is the case for outsiders when a report covers multiple issues.
What to do? Send new reports, one per issue, unless they are very strongly entangled. Mention the earlier report and link to it; the latter is important, as otherwise it might look like you are trying to send similar reports over and over again, which would be considered rude. Drop a quick note and links to your new reports in a reply to the earlier report as well.
The discussion about the issue became long
Why? Developers might turn away, if many replies made a discussion about a bug hard to follow. That for example can happen easily when multiple people report similar symptoms in a thread that in face have different unrelated causes; off-topic, confusing, too much quotations, much too detailed comments, or too many attachments can be a problem, too. Such things are especially off-putting for new developers that might want to look into the issue, as they might not have the patience to walk through all of a bug's history.
What to do? It depends, it's a tricky situation. It's best to ask one of the developers for advice.
Sometimes summing the current state of affairs up might be enough to get the discussion on track again.
Sometimes abandoning the old discussion and reporting the issue anew is the only way forward – especially to untangle things when multiple people joined a report to describe similar symptoms caused by totally different bugs. When reporting anew, mention and link the earlier report; also send a quick reply to the old discussion with a short note and a link to your new report, which allows interested parties to follow.
You reported a regression in a stable or longterm series without checking if mainline is affected as well
Why? It's unclear who obliged to look into this: the regular developers of the code in question or the stable team.
What to do? Check if mainline is affected as well and share that into in a reply to the report; while doing so, clearly address the responsible developers, as they otherwise might assume it's a problem for the other party to handle.
Related information: See "Most of the time it's not the stable team that has to primarily fix bugs found in longterm kernels" for why different developers handle bugs depending on where they happen.
You reported a regression, but did not bisect it
Why? Without a bisection using "git bisect" it's unclear which part of the kernel is actually causing the issue, hence no developer might actually care enough to look closer into the report – and then the issue despite Linux' "no regressions" rule might never be fixed.
What to do? Bisect the regression.
Related information: Reporting a regression without having it bisected it is fine, as "It's totally fine to report a regression without having it bisected" explains below in more detail. But the contacted developers often won't have any idea about the cause. Then a bisection is needed to find which developers have to look into the issue.
Related apsects: "Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything.", "Developers sometimes expect your help", and "Developers sometimes depend on your help").
You did not provide details developers asked for
Why? Sometimes developers are unable to help, unless you provide additional data or debugging and testing results; other times they might be unmotivated to help until you provide more information. In both cases they might turn away, if you don't provide what was asked for or require a lot of assistance in the process.
What to do? Apologize in a follow-up while trying to finally provide the requested information. Or ask how to actually do what was asked for. But be careful, too many such questions can quickly become a problem: hence whenever possible try to to help yourself as much as possible using search engines or friends.
See "Developers sometimes expect your help", "Developers sometimes depend on your help", "It's in your interest and often required you test proposed fixes", and "Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything." to understand why developer might turn away in this case.
Your bug is neither a regression nor a severe issue
Why? You might simply be unlucky: kernel developers are expected to fix regressions and severe problems, but not required to address each and every other bug. Some in the end don't make the cut. There are also bugs that developers are unable to solve, for example due to the lack of hardware documentation.
What to do? If developers are ignoring a report about a regression or a severe bug, send a reminder highlighting this aspect. A kind reminder is okay for other issues as well (see "You were just unlucky" for details); but if that doesn't do the trick for those kinds of bugs it might mean that you simply won't receive any help.
Related information: see "Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything. " to understand why developers are not required to look into each bug report they receive. The Linux kernel's "reporting issues" document also describes in length what to do if you don't get any help.
You reported a regression, but did not make that aspect clear enough
Why? Kernel developers like most of us occasionally miss important things in writing, especially if those aspects were not made totally obvious.
What to do? Reply to your report and highlight that it's about a regression, for example by adjusting the subject and adding a quick note to the body. Remember to specify the last version that worked fine and the first broken one; ensure both are not modified or enhanced (see "Your kernel was apparently built from modified Linux sources" and "Your kernel apparently loaded add-on drivers").
You did not use a mainline kernel less than two weeks old
Why? Some developers don't even look into bug reports with stable kernels: they expect you to check the current mainline kernel, as the bug might be fixed there already.
What to do? verify if the problem occurs with a really fresh mainline kernel build from pristine sources (so called "vanilla kernel"); if it does, send a follow up to your report making that obvious.
You were just unlucky
Why? Kernel developers are like most of us: they have to deal with a lot and occasionally are overwhelmed – for example when they have not been near a keyboard for weeks due to things like vacation or an illness. Then see no other way forward than to ignore some or all things that recently were shoved in their direction – and your report might be among them.
There are also various other reasons why you might have been unlucky. Among them are lost emails, for example due do over-eager filters. It's also possible someone with your name earned such a bad reputation that the name landed on some peoples ignore lists.
What to do? If there is no progress for two or three weeks, do what the Linux kernel's "reporting issues" document suggests to do in this case. That basically boils down to: check if your report was ignored for some reason like those this document explains; if not, send a kind reminder asking for an update and if there is anything you can do.
Related information: reminder, be prepared to not get any help at all, due to the aspects explained in "Your bug is neither a regression nor a severe issue" and "Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything. ".
Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything
In the scope of upstream Linux kernel development all developers are considered volunteers – and as such obviously free to decide what to spend their time on.
That's because developers in the end fall into two groups:
Companies, universities, government agencies, and other institutions contribute voluntarily through employees, contractors, students, et. al.
Individuals contribute voluntarily in their own time.
Not even Linus Torvalds has a handle to make those do something he wishes, except his reputation and control over what is merged into mainline. That allows him to motivate and occasionally even compel those volunteers to do something he wants to see – but even for him that only works up to some point, as those institutions and individuals otherwise might stop contributing or even fork the Linux kernel.
That in principle is true even for regressions or severe bugs (e.g. vulnerabilities, data loss, or hardware damage) – but developers or maintainers will look into those to avoid a bad reputation, which would cause trouble for future contributions or might cost them their rank. That can also happen if developers regularly ignore decent bug reports – which is among the reasons why developers usually help there, too.
It's totally fine to report a regression without having it bisected
You might want to report regressions without having them bisected to avoid spending time and energy on a worthless bisection:
The developers might already know about the regression and its cause.
Sometimes a proper problem description is all developers need to pin-point the culprit through an educated guess.
An offer to bisect the problem is thus sufficient in your initial report, as that does something important: it will show that you are willing to do your share of the detective work required to fix the regression (see "Developers sometimes expect your help" and "Developers sometimes depend on your help" below). But if you don't receive a "we know about this" after two to three days, you want to start with the bisection; or even get ahead of the curve and start right after sending your report.
Most developers do not care about bugs in longterm kernels
The way the stable team is anchored within the Linux kernel's development process leads to various hidden and slightly unintuitive aspects. One of them: You don't want to report a bug in longterm kernel to the regular developers, as there is a decent chance they don't care about longterm kernels and thus ignore it.
That because regular developers are free to ignore stable and longterm kernels, as those are maintained by the stable team (see "Regular developers are free to ignore stable and longterm kernels" below). Some developers help the team somewhat, but even those often don't care much about reports on bugs in longterm kernels:
From their perspective it's quite possible there is nothing for them to do anyway, as your bug might already have been fixed in mainline – either intentionally or as a by-product of some other change.
There is a decent chance your problem is caused by incomplete backport by the stable team and from the developers perspective something they should fix.
Your issue might be a known bug that will never be fixed in that longterm series, as backporting the fix was deemed too risky.
Of course it's also quite possible your bug still happens in mainline Linux. But for developers it's often hard and sometimes impossible to check quickly (see "Developers sometimes expect your help"); and doing so in three of the four potential outcomes might be a waste of time for the developer, hence they often will not bother.
Regular developers are free to ignore stable and longterm kernels
The way the stable team is anchored within the Linux kernel's development process leads to various hidden and slightly unintuitive aspects. One of them: Participation in the maintenance of stable and longterm kernels has always been optional for regular kernel developers. That is unlikely to change any time soon.
Most of the reasons why it's that way lies in history, as early stable and longterm kernels were an effort individual developers started in the fringes of the development community. Some kernel developers liked the idea, but even most of those initially were unwilling to help. The individuals who started those series thus had to maintain their kernel series without real support from the wider community.
Stable and longterm kernels over time became somewhat more official when the front page of kernel.org started to advertise them and a "stable team" was formed to handle maintenance. Those series thus started to look like an effort by the community as a whole, but to this date that's not really the case: they are still considered primarily the domain of the stable team. It currently consists of just two people; a lot more developers than initially support the idea and help regularly, but many only help occasionally or never at all.
This situation was never questioned widely within the kernel developer community. It likely will remain like that, unless the core kernel developers declare participation in some or all stable and longterm series mandatory. There is nothing indicating something like that will happen any time soon.
Reporting bugs to the stable team is often just a detour
You do not want to report bugs to the stable team, unless it's a regression within a stable or longterm series. And even then it might be in your interest to report the issue primarily to the regular developers.
That's because the vast majority of bugs in stable and longterm kernels have to be fixed by the regular developers in mainline first; there are also bugs that won't be solved in older series at all. If you want to understand why, checkout the section "Most of the time it's not the stable team that has to primarily fix bugs found in longterm kernels " below.
To avoid wasting your time with developers that in the end won't help you anyway, as you almost always usually want to check if the issue you face happens in mainline as well – and report it straight to the regular developers as a bug in mainline in case it does. The stable team in that case doesn't need to be involved at all as long as the regular developers later tag the fix for backporting.
There is one exception to this advice: regressions within a stable or longterm series.
It's fine to report those directly to the stable team, as with a bit of luck they will know about the issue already. But the team has to cover all of the kernel, so often they will have no idea – and then will typically ask you to bisect the problem. At that point it yet again is often wise for you to check if the exact same regression occurs in mainline as well. Because if it does, it's appropriate to involve the regular developers (with the stable team in CC) – which dramatically increases chances to be lucky and avoid a bisection, as those developers know their area of the kernel way better than the stable team. That's why you might want to check mainline in the first place, even if you deal with a regressions within a stable or longterm series.
Most of the time it's not the stable team that has to primarily fix bugs found in longterm kernels
The way the stable team is anchored within the Linux kernel's development process leads to various hidden and slightly unintuitive aspects. One of them: The vast majority of bugs that happen with stable and longterm kernels in the end have to be fixed by regular developers in mainline first. That's because many bugs in those kernels are of two sorts:
The bug was already present in the mainline version the longterm series is based on.
The bug is caused by a backport of a change that causes the same regression to happen in mainline.
In both cases it is in everybody's interest to let the regular developer address the issue in mainline, as they have the most knowledge of the particular code; this also ensures the fix will be developed and tested safely away from regular users.
Thanks to this strategy bugs will never come back when you upgrade from a longterm series (say v5.10.y) to a later mainline release with the fix (say 5.19) or a stable series derived from them (v5.19.y). The approach also allows coordinated backporting, as similar problems would arise if a fix applied to the longterm series v5.10.y for some reason didn't make it into a later longterm series like 5.15.y.
This workflow furthermore makes it possible to safely evaluate the fix and its prerequisites before backporting – and if that is too risky they might abstain from it, unless it's addressing a regression in a backported commit. In that case you would have to update to a later kernel series to avoid it; the kernel developers recognise that's not ideal, but consider it as the better of two poor options.
In the end this leaves just two kinds of bugs to be primarily handled by the stable team (and thus fine to report directly to them, as explained above):
Regressions within a longterm kernel series that never occurred in mainline, as they are caused by broken or incomplete backport.
Regressions within a longterm kernel series already fixed in mainline.
There are also bugs that were resolved in mainline without the fix being backported – either on purpose due to high risks or because no one thought about it. The stable team might be willing to help in the latter case, if someone locates the fix – and maybe you are the only one with enough motivation to do so. Afterwards someone has to check if the patch applies cleanly on the particular longterm series, solves the problem, and doesn't create any regressions; yet again it might be something only you are motivated enough to do. See "Developers sometimes expect your help", "Developers sometimes depend on your help", and "Developers in the scope of the Linux kernel are considered volunteers that don't owe you anything. " to understand why it's that way.
Developers sometimes expect your help
Developers frequently depend on your help (see next point). But even when they do not, they will often ask you to provide details about the bug. Provide it, as developers otherwise might not be motivated enough to look into your issue:
They might suspect a configuration or hardware issue is causing the problem.
They might suspect it is an issue somebody else has to handle: it is quite common that the area where a problem shows itself is different from the area where it originates – and developers that take care of the former might have no clue about the latter.
Developers sometimes depend on your help
Sometimes developers not only expect your help (see previous point) but depend on it to fix the issue. Because in a lot cases they will be unable to reproduce the issue locally, as most of the kernel is drivers. Many issues therefore only occur in certain environments – and thus might be specific to your particular combination of platform, peripherals, distribution, and configuration. Developers then require debugging and test results from you, as they otherwise might be unable to understand and address the issue.
It's in your interest and often required you test proposed fixes
During the bug fixing process developers likely will ask you to test proposed fixes. It's in everybody's interest for you to help out here, as the developer might have no way to verify the change in practice (see "Developers sometimes depend on your help"). It also happens frequently that a fix works fine on the developers machine, but might not solve the problem on yours or causes new bugs there.
Reports with self-compiled kernels stand a much better chance
Linux kernel developers handle bugs differently – up to the point where some do not respond at all to reports that lack in certain regards. You can reduce that risk by making you report look like something that for developers seems worth spending time on:
Avoid any mistakes this document describes. Most importantly: report using a fresh, vanilla and ideally self-compiled kernel. Almost always that's mainline, except when it's a regression within a stable or longterm kernel: then the latest version of the affected series is enough.
Create a report that is easy for others to grasp and includes an offer to help with debugging and testing patches.
React to inquiries in a timely manner.
Reporting using a self-compiled kernel and offering to help with are the most important aspects here, as developers often will interpret that as: you are willing and likely also capable of helping to address the issue. That makes it a lot more likely that they will take the report seriously.