Bug 272755 - net/dante: unbreak
Summary: net/dante: unbreak
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Alexey Dokuchaev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-07-27 14:43 UTC by Hiroo Ono
Modified: 2024-02-05 10:52 UTC (History)
4 users (show)

See Also:


Attachments
patch to unbreak net/dante (8.67 KB, patch)
2023-07-27 14:43 UTC, Hiroo Ono
no flags Details | Diff
isolated test case (6.21 KB, text/plain)
2023-08-02 22:26 UTC, Gleb Smirnoff
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hiroo Ono 2023-07-27 14:43:04 UTC
Created attachment 243648 [details]
patch to unbreak net/dante

net/dante is marked BROKEN after L_PIPETYPE() test ran away on the official package building machine.
cf. https://lists.freebsd.org/archives/freebsd-pkg-fallout/2023-February/317284.html

As this test is known to work on my machine (and some of others), the "pipeside" variable is known to be "recvbased". So, skip this test and set the result to "recvbased" should unbreak this port (theoretically).
Comment 1 commit-hook freebsd_committer freebsd_triage 2023-07-29 16:58:13 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2b81a5f3f73c8bcd910c246ff25bb1fc0135e7a9

commit 2b81a5f3f73c8bcd910c246ff25bb1fc0135e7a9
Author:     Hiroo Ono <hiroo.ono+freebsd@gmail.com>
AuthorDate: 2023-07-28 06:40:02 +0000
Commit:     Fernando Apesteguía <fernape@FreeBSD.org>
CommitDate: 2023-07-29 16:57:34 +0000

    net/dante: unbreak

    Disable ran away test that works in local machines but for some reason fails in
    the official builders.

    PR:             272755
    Reported by:    hiroo.ono+freebsd@gmail.com

 net/dante/Makefile                       |   4 +-
 net/dante/files/patch-acinclude.m4 (new) | 276 +++++++++++++++++++++++++++++++
 2 files changed, 277 insertions(+), 3 deletions(-)
Comment 2 Fernando Apesteguía freebsd_committer freebsd_triage 2023-07-29 16:58:18 UTC
Committed,

Thanks!
Comment 3 Alexey Dokuchaev freebsd_committer freebsd_triage 2023-07-29 18:21:11 UTC
(In reply to Hiroo Ono from comment #0)
> net/dante is marked BROKEN after L_PIPETYPE() test ran away on the official
> package building machine. [...]
> checking read/send-side pipe system... =>> Killing runaway build after 7200
> seconds with no output
Interesting.  I believe this bug was reported last year as bug #265087 and should have been fixed on 2022-12-14.  Gleb, can you take another look at this?

> So, skip this test and set the result to "recvbased"
Masking the bug out is not the right approach, we must hunt it down and fix it for real.
Comment 4 Hiroo Ono 2023-07-29 19:18:48 UTC
Thank you for taking a look at this problem.
From a comment in bug #269844, this problem seems to have appeared also in bug #192295 (11.0-CURRENT #0 r268969: Tue Jul 22 12:50:29 CEST 2014, dante 1.4.1) and bug #202197 (FreeBSD 9.3-RELEASE-p21, dante 1.4.1). There have been some fixes for each bug, but it occurred again. From the pkg-fallout in February 2023, net/dante 1.4.3 fails for the following environment:

main-powerpc64: building for: FreeBSD main-powerpc64-default-job-10 14.0-CURRENT FreeBSD 14.0-CURRENT 1400078 powerpc
https://lists.freebsd.org/archives/freebsd-pkg-fallout/2023-February/318200.html
main-armv6: building for: FreeBSD main-armv6-default-job-03 14.0-CURRENT FreeBSD 14.0-CURRENT 1400078 arm
https://lists.freebsd.org/archives/freebsd-pkg-fallout/2023-February/318024.html

These are main but older than the fix in bug #265087? (commit 7a2c93b86ef75390a60a4b4d6e3911b36221dfbe)

Other failures are on 13.1R
https://lists.freebsd.org/archives/freebsd-pkg-fallout/2023-February/317934.html
https://lists.freebsd.org/archives/freebsd-pkg-fallout/2023-February/317563.html
and on 12.3R
https://lists.freebsd.org/archives/freebsd-pkg-fallout/2023-February/317487.html

If the fix in commit 7a2c93b86ef75390a60a4b4d6e3911b36221dfbe solves the problem,
my patch to skip the test should be limited to the version before the commit above
(and be eliminated in the future).

Also, it is needed to check if the test in net/dante 1.4.1 and 1.4.3 are same or different.
Comment 5 Hiroo Ono 2023-07-29 19:26:26 UTC
(In reply to Hiroo Ono from comment #4)
> Also, it is needed to check if the test in net/dante 1.4.1 and 1.4.3 are same or different.

Checked the source of dante 1.4.1 and 1.4.3. It seems there were no change in L_PIPETYPE() test.
Comment 6 Hiroo Ono 2023-07-29 19:34:08 UTC
(In reply to Hiroo Ono from comment #4)
> These are main but older than the fix in bug #265087? (commit 7a2c93b86ef75390a60a4b4d6e3911b36221dfbe)

Sorry, FreeBSD_version 1400078 is between 2023-02-08 and 2023-02-14, so these are after the commit 7a2c93b86ef75390a60a4b4d6e3911b36221dfbe.
Comment 7 Gleb Smirnoff freebsd_committer freebsd_triage 2023-08-02 22:26:01 UTC
I second Alexey's opinion that a failing case shall not be disabled but taken care of.

In my tree I reverted both commits to the port and failed to reproduce the failure. I isolated the failing test case into separate C file. Can you please try it on the cluster where the port failed?
Comment 8 Gleb Smirnoff freebsd_committer freebsd_triage 2023-08-02 22:26:32 UTC
Created attachment 243811 [details]
isolated test case
Comment 9 Hiroo Ono 2023-08-07 18:13:09 UTC
(In reply to Gleb Smirnoff from comment #7)
I do not have access to the FreeBSD package building machine. Do I have to contact portmgr@ to test?
Comment 10 Alexey Dokuchaev freebsd_committer freebsd_triage 2023-08-08 03:15:13 UTC
(In reply to Hiroo Ono from comment #9)
> Do I have to contact portmgr@ to test?
No, you don't. :-)  I'll try to reproduce it on the cluster and provide feedback.
Comment 11 Mark Linimon freebsd_committer freebsd_triage 2024-01-19 15:33:09 UTC
^Triage: over to commenter for further evaluation.
Comment 12 Alexey Dokuchaev freebsd_committer freebsd_triage 2024-01-30 10:38:13 UTC
(In reply to Hiroo Ono from comment #4)
> main-powerpc64: building for: FreeBSD main-powerpc64-default-job-10
> 14.0-CURRENT FreeBSD 14.0-CURRENT 1400078 powerpc
That 1400078 is the jail version, the host one is still 1400073.  Remember, this is the kernel bug we're dealing with. :-)

Let's review the history.  The bug had been introduced in base 65572cade35 on Feb 14 2022.  One regression, for send(2), was quickly fixed in base d2b3a0ed31e three days later, on Feb 17 2022.  The second one, for write(2), took longer to discover (see bug #265087, filed on 2022-07-08) and fix, which finally happened in base 7a2c93b86ef on Dec 14 2022.  This all (bug and two fixes) happened on main and were never merged to stable/13 or previous branches (stable/14 was created only on 2023-07-13).

So how come `net/dante' had been failing on cluster across all FreeBSD releases, even 12.3, between February and April 2023, per those build logs, until the test disablement was merged to Q2 in May?  Apparently, the answer is in these two lines which are common for broken build logs:

    Host OSVERSION: 1400073
    Jail OSVERSION: 1203000 (for 12.3)

__FreeBSD_version had been bumped to 1400073 in base 9c950139051, that's Oct 17 2022 (the bug is still there); next bump was with base e28932c643e on Dec 8 2022 (the bug is still there).  So the cluster was running buggy kernel at the time of those early 2023 builds.

Unless someone finds a flaw in this analysis, I'm going to remove the bogus patch (which should not have been committed in the first place) and restore the test.
Comment 13 Gleb Smirnoff freebsd_committer freebsd_triage 2024-01-30 11:12:29 UTC
This analysis looks correct to me. Thanks, Alexey!
Comment 14 commit-hook freebsd_committer freebsd_triage 2024-02-05 10:46:46 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1b25faa3f9e7604f59613b5d52bd562148f63c04

commit 1b25faa3f9e7604f59613b5d52bd562148f63c04
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2024-02-05 10:44:44 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2024-02-05 10:44:44 +0000

    net/dante: restore read/send-side pipe system check during configure

    It was disabled (patched out) in July 2023 based on the pkg-fallout@
    emails, nearly seven months after the last regression which could be
    causing it had been fixed.  Evidently, the cluster was running buggy
    kernel for its port-building jails long enough to confuse people the
    problem was still somehow exhibiting itself.

    While here, assume maintainership, fix some DRY bugs in the Makefile,
    and install the manpages under $PREFIX/share/man per new world order.

    PR:     272755
    Fixes:  2b81a5f3f73c

 net/dante/Makefile                        |  31 ++--
 net/dante/files/patch-acinclude.m4 (gone) | 276 ------------------------------
 net/dante/pkg-plist                       |   8 +-
 3 files changed, 21 insertions(+), 294 deletions(-)