On 2025/11/27 7:11, Aleksandr Nogikh wrote:
> It assumes that no new bug with the same manifestation can be
> introduced to the tree3 before tree3 receives the fixes for the
> previous bugs causing "WARNING in foo", right?
>
> If the initial fix is incomplete and there are actually bug3, bug4,
> and bug5 that cause "WARNING in foo", "WARNING in foo (3)" ends up
> recording crashes caused by bug3, bug4, and bug5; "WARNING in foo (4)"
> - crashes due to bug4, and bug5; "WARNING in foo (5)" - only crashes
> due to bug5. Which is not necessarily bad, but it's still something to
> keep in mind: these groups of crashes won't be perfectly separate.
If a fix which was already applied to tree1 is incomplete,
the same manifestation in tree1 is reported to "WARNING in foo (5)".
If a fix which was already applied to tree2 is incomplete,
the same manifestation in tree2 is reported to "WARNING in foo (4)".
If the same manifestation happened in a tree where a fix is not yet applied,
it is reported to "WARNING in foo (3)".
>
>>
>> After "#syz unfix" was sent on "WARNING in foo (4)", the problem that gets
>> "WARNING in foo" found in tree1 will be reported as "WARNING in foo (4)"
>> instead of "WARNING in foo (5)".
>>
>
> In this case, "WARNING in foo (4)" and "WARNING in foo (5)" become duplicates:
> - There are two reports to the public mailing lists, which increases
> the chance of separate discussions about the same issue, and just
> creates more confusion overall.
> - If someone sends another #syz fix for `(4)` without closing `(5)`,
> and the bug reappears, then new crashes will just go to `(5)`, and
> 1) we will end up with a collection of unrelated crashes again;
> 2) no new report is sent to the mailing lists.
That is not a big problem. Bug reports with no activity and no occurrence
will be automatically closed. That is, "WARNING in foo (5)" (which became
a duplicated of "WARNING in foo (4)" due to "#syz unfix" request) will be
automatically closed. (By the way, is "#syz unfix" used so frequently?)
>
> It can of course be solved somehow, I'm just worried about the total
> number of corner cases we must consider here.
What is important is that current "bug report opening rule" tends to fail to
figure out that already applied patches are incomplete. Once a developer sends
a patch for one bug report, that developer likely forgets about that bug report.
It likely takes at least 10 weeks before that developer is notified of the problem
being still there. (I think I am a rare developer who is monitoring not-yet-closed
but no-longer-open bug reports.) This is a side-effect of "don't close but don't
notify" until a fix is applied to all trees.
There might be projects where a bug report is not closed until a fix is applied
to all not-yet-EOL versions, but I guess that it won't take many weeks until a
fix is applied to all not-yet-EOL versions. (If it takes many weeks, they won't
be able to remember, and they likely use per-version child reports for tracking
purpose.) We can consider a git tree as a kind of version, and syzbot is managing
status for all versions using one report.
In addition to that, current situation that we can't specify which reproducer to
use for "#syz test" request makes it difficult to test patches for different
causes when multiple different causes are aggregated into one bug report.
If syzbot starts opening new bug reports, developers can figure out that already
applied patches are incomplete much earlier, and I am likely able to specify
which reproducer to use for "#syz test" request.