perl-IO-Socket-INET6-2.72-3.fc23 fails to build in F23 sometimes because t/io_multihomed6.t test fails from time to time: $ I=0; while (prove -b t/io_multihomed6.t); do I=$((I+1)); echo $I; done [...] 206 t/io_multihomed6.t .. ok All tests successful. Files=1, Tests=8, 1 wallclock secs ( 0.03 usr 0.01 sys + 0.05 cusr 0.01 csys = 0.10 CPU) Result: PASS 207 t/io_multihomed6.t .. 1/8 Can't use an undefined value as a symbol reference at t/io_multihomed6.t line 116. Can't use an undefined value as a symbol reference at t/io_multihomed6.t line 156. t/io_multihomed6.t .. Dubious, test returned 98 (wstat 25088, 0x6200) Failed 7/8 subtests
This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component.
This bug appears to have been reported against 'rawhide' during the Fedora 23 development cycle. Changing version to '23'. (As we did not run this process for some time, it could affect also pre-Fedora 23 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 23 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora23
This message is a reminder that Fedora 23 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 23. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '23'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 23 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle. Changing version to '26'.
This bug appears to have been reported against 'rawhide' during the Fedora 27 development cycle. Changing version to '27'.
This message is a reminder that Fedora 27 is nearing its end of life. On 2018-Nov-30 Fedora will stop maintaining and issuing updates for Fedora 27. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '27'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 27 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
This bug appears to have been reported against 'rawhide' during the Fedora 30 development cycle. Changing version to '30.
This message is a reminder that Fedora 30 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora 30 on 2020-05-26. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '30'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 30 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
This bug appears to have been reported against 'rawhide' during the Fedora 33 development cycle. Changing version to 33.
I created patch to fix error message in this case. https://src.fedoraproject.org/rpms/perl-IO-Socket-INET6/pull-request/1 After patching in testing cycle this bug seems like as: > listen on ::1 port 54577: Address already in use at t/io_multihomed6.t line 104. Port isn't closed properly before new run of test.
Good catch. It's true that there is no "close($second)" call in the parent (server) process. But all sockets are implicitly closed on a process exit. That means that the reproducer cannot accumulate open sockets. Historically, it was recommended to set SO_REUSEADDR for any listening socket. The reason was that after closing a socket, kernel keeps the port reserved (TIME-WAIT state) to prevent from other users to reuse the port early and catch a traffic from a previous connection. Maybe as TCP sequence numbers became more fortified, this idea lost its ground, but Linux still keeps the closed sockets in quarantine (see "ss -tanp" output). Reading socket(7) showed that there is a new SO_REUSEPORT option for enabling multiple sockets simultaneously listing on the same port and SO_REUSEADDR is probably only left for the closed sockets and early-reusing bind(3). Adding "ReuseAddr => 1," to the IO::Socket::INET6->new(Listen => 2, ...) call helps. Adding close($second) at the end of the parent process does not help.
Good catch. I totally missed that missing "close($second)" :-/ Ok, cannot help. "ReuseAddr => 1," helps, great result. And this is right fix.
@paul There is PR (https://src.fedoraproject.org/rpms/perl-IO-Socket-INET6/pull-request/1)
Thanks very much for this, it has been unfixed for a very long time. Merged and built: https://koji.fedoraproject.org/koji/taskinfo?taskID=68268285