Bug 1365940

Summary: [ruby] Problem to send empty UDP packet
Product: [Fedora] Fedora Reporter: Rafael Fonseca <rdossant>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: gansalmon, itamar, jonathan, kernel-maint, labbott, madhu.chinakonda, mchehab, mmorsi, mtasaka, pbrobinson, skumari, s, strzibny, tagoh, vanmeeuwen+fedora, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: kernel-4.7.2-201.fc24 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-02 20:52:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 1071880, 1051573    

Description Rafael Fonseca 2016-08-10 14:37:36 UTC
Description of problem: when ruby is compiled under kernel >= 4.7, we get the following error

  1) Failure:
TestSocketNonblock#test_udp_recv_nonblock [/builddir/build/BUILD/ruby-2.3.1/test/socket/test_nonblock.rb:128]:
cygwin 1.5.19 has a problem to send an empty UDP packet. [ruby-dev:28915].
Exception raised:
<#<Timeout::Error: execution expired>>.

  2) Failure:
TestSocketNonblock#test_udp_recvfrom_nonblock [/builddir/build/BUILD/ruby-2.3.1/test/socket/test_nonblock.rb:106]:
cygwin 1.5.19 has a problem to send an empty UDP packet. [ruby-dev:28915].
Exception raised:
<#<Timeout::Error: execution expired>>.

15847 tests, 2235440 assertions, 2 failures, 0 errors, 38 skips

ruby -v: ruby 2.3.1p112 (2016-04-26 revision 54768) [powerpc64le-linux]
uncommon.mk:612: recipe for target 'yes-test-almost' failed
make: *** [yes-test-almost] Error 2

Version-Release number of selected component (if applicable): 2.3.1-57


How reproducible: always when kernel>=4.7 is used


Additional info: it happens in both ppc64 and ppc64le. Note that the current Fedora builders don't user kernel 4.7, so you can't reproduce it in koji but it can be reproduced in a mockbuild.

Comment 1 Vít Ondruch 2016-08-16 06:32:06 UTC
It seems to be issue on my x86_64 as well ...

Comment 2 Vít Ondruch 2016-08-16 07:12:55 UTC
Reassigning to Kernel, since this is Kernel regression IMO.

Comment 3 Vít Ondruch 2016-08-16 07:21:58 UTC
Just FTR, these are the lines where the tests fail:

https://github.com/ruby/ruby/blob/trunk/test/socket/test_nonblock.rb#L106
https://github.com/ruby/ruby/blob/trunk/test/socket/test_nonblock.rb#L128

and yes, there used to be some issue with cygwin, which couldn't send empty UDP packet, but that doesn't be the case.

Comment 4 Vít Ondruch 2016-08-16 07:43:28 UTC
This can be used to disable the test cases in case this should become issue on builders:

```
@@ -668,6 +668,11 @@ DISABLE_TESTS="$DISABLE_TESTS -x test_fork.rb"
 DISABLE_TESTS="$DISABLE_TESTS -x test_case_comprehensive.rb"
 DISABLE_TESTS="$DISABLE_TESTS -x test_unicode_normalize.rb"
 
+# This seems to be due to Linux 4.7+ regressin.
+# https://bugzilla.redhat.com/show_bug.cgi?id=1365940
+DISABLE_TESTS="$DISABLE_TESTS -n !/test_udp_recv_nonblock/"
+DISABLE_TESTS="$DISABLE_TESTS -n !/test_udp_recvfrom_nonblock/"
+
 make check TESTS="-v $DISABLE_TESTS"
 
 %post libs -p /sbin/ldconfig
```

Comment 5 Vít Ondruch 2016-08-17 08:17:57 UTC
I should probably mention the kernel version I am using:

$ uname -a
Linux unused-4-132.brq.redhat.com 4.7.0-2.fc26.x86_64 #1 SMP Wed Jul 27 13:39:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ rpm -q kernel
kernel-4.5.0-1.fc25.x86_64
kernel-4.6.0-1.fc25.x86_64
kernel-4.7.0-2.fc26.x86_64

Comment 6 Laura Abbott 2016-08-23 16:05:47 UTC
I'm seeing the same behavior and am doing a kernel bisect. The 4.7.2 update is going to be filed in bodhi for more system wide testing. We'll see what happens from there.

Comment 7 Laura Abbott 2016-08-23 17:20:04 UTC
commit e6afc8ace6dd5cef5e812f26c72579da8806f5ac
Author: samanthakumar <samanthakumar@google.com>
Date:   Tue Apr 5 12:41:15 2016 -0400

    udp: remove headers from UDP packets before queueing
    
    Remove UDP transport headers before queueing packets for reception.
    This change simplifies a follow-up patch to add MSG_PEEK support.
    
    Signed-off-by: Sam Kumar <samanthakumar@google.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>


This seems to be the bad commit. Going to follow up with networking folks.

Comment 8 Laura Abbott 2016-08-24 00:05:41 UTC
Networking maintainers gave a fix. I applied it to the appropriate branches so it should get picked up the next time we do a build. 4.7.2-100 and 4.7.2-200 do not have the fix though.

Comment 9 Vít Ondruch 2016-08-24 13:20:42 UTC
(In reply to Laura Abbott from comment #8)
Good news. Thank you Laura for analysis and pushing this forward.

Comment 10 Fedora Update System 2016-08-29 16:20:00 UTC
kernel-4.7.2-201.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-2e5ebfed6d

Comment 11 Fedora Update System 2016-08-29 16:22:28 UTC
kernel-4.7.2-101.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-f1adaaadc6

Comment 12 Fedora Update System 2016-08-31 12:58:08 UTC
kernel-4.7.2-201.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-2e5ebfed6d

Comment 13 Fedora Update System 2016-08-31 12:58:35 UTC
kernel-4.7.2-101.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-f1adaaadc6

Comment 14 Fedora Update System 2016-09-02 20:50:52 UTC
kernel-4.7.2-201.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2016-09-02 23:19:26 UTC
kernel-4.7.2-101.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.