Well, it appears that this is legit. It's lighting the truncation flag. So to be safe, I'm going to write this to check first, and either read or re-alloc the buffer to get in one read()
Once I know that works reliably (by turning down the buffer size), I'll bring it up to 2k so that it's there as a safety, but doesn't fire on the platforms we've been working with. geir Geir Magnusson Jr wrote: > Time to further reveal my ignorance for all to see... hopefully some > good will come out of this. > > Netlink uses datagrams, and while I thought I understood them, it > appears I really don't. > > I thought that datagrams were only unreliable over the network - once > the OS made the bytes available on a recv*() call, they were secure. > > So I can do the following sequence w/ a 2k buffer : > > recvfrom(s, buf, 2048, MSG_PEEK) > > and get 1132 bytes back but since I used MSG_PEEK, the data is left to > read again. Then a real read w/ a buffer smaller than available data > > recvfrom(s, buf, 1024, 0) > > and get 1024 bytes read. Since that was my buffer size, and I know that > there were 1132 bytes there, I expect that I can do another > recvfrom(MSG_PEEK) and get 1132-1024 = 108 bytes. I try that : > > recvfrom(s, buf, 2048, MSG_PEEK) > > and get 20 bytes back, not 108 as (1132-1024 should result in..) > > Why? I know I'm rusty, but I used to do a lot of network programming, > and thought I groked this. > > Any ideas? > > geir > > Geir Magnusson Jr wrote: >> I seem to have found a doozy :) >> >> In hysock.c / getNextNetlinkMsg() there's an assumption that anything >> the kernel will ever send in a netlink request is less than 1k, so when >> processing the receive buffer, if there still is data in the buffer and >> it's not a complete message, it's considered an error. >> >> This is clearly wrong, and provable by simply doubling the buffer size. >> This is suboptimal, of course, because there is no guarantee that 2k >> will be enough one all systems either. >> >> I'm going to stare at this and attempt to rewrite it this weekend if I >> find some time. >> >> Man, this would be easier w/ a debugger :) >> >> geir >> >> >> George Harley wrote: >>> Geir Magnusson Jr wrote: >>>> I'm having 9 failures in and around this on ubuntu 6. I haven't looked >>>> to confirm this is the issue, but either way, yes, the tests should be >>>> accommodating. >>>> >>>> geir >>>> >>>> >>> Hi Geir, >>> >>> I believe that I have fixed up the tests for Debian (and maybe RHEL). >>> I'm happy to try and tackle any remaining issues but as I don't have >>> access to an Ubuntu machine I would be really grateful if you could >>> email details of the problems you are seeing. >>> >>> Thanks in advance, >>> George >>> >>> >>> >>>> Mark Hindess wrote: >>>> >>>>> Tests failed for me (and the linux build machine) with: >>>>> >>>>> Incorrect host name returned: localhost.localdomain != localhost >>>>> >>>>> junit.framework.AssertionFailedError: Incorrect host name returned: >>>>> localhost.localdomain != localhost >>>>> at >>>>> tests.api.java.net.InetAddressTest.test_getHostName(InetAddressTest.java:238) >>>>> >>>>> >>>>> Because the standard Debian installation defines 127.0.0.1 to be >>>>> localhost.localdomain. I think the tests need to be more accommodating >>>>> people aren't going to want to have to mess about with these system >>>>> configurations. >>>>> >>>>> -Mark. >>>>> >>>>> >>>>> On 23 June 2006 at 13:14, "Andrew Zhang" <[EMAIL PROTECTED]> >>>>> wrote: >>>>> >>>>>> ------=_Part_22520_3761084.1151039694395 >>>>>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >>>>>> Content-Transfer-Encoding: 7bit >>>>>> Content-Disposition: inline >>>>>> >>>>>> Hi Stepan, >>>>>> >>>>>> Maybe it needs configure /etc/hosts ? I'm not sure. >>>>>> >>>>>> I configured the host file on windows, the test passes. :) >>>>>> >>>>>> Thanks! >>>>>> >>>>>> >>>>>> On 6/23/06, Stepan Mishura <[EMAIL PROTECTED]> wrote: >>>>>> >>>>>>> Hi George, >>>>>>> >>>>>>> InetAddressTest and SocketPermissionTest still fails for me on Linux. >>>>>>> For example, InetAddressTest.test_getAllByNameLjava_lang_String failed >>>>>>> with: >>>>>>> >>>>>>> Incorrect number of aliases returned: 2 should be 1 >>>>>>> junit.framework.AssertionFailedError: Incorrect number of aliases >>>>>>> returned: >>>>>>> 2 should be 1 at >>>>>>> tests.api.java.net.InetAddressTest.test_getAllByNameLjava_lang_String >>>>>>> ( >>>>>>> InetAddressTest.java:165) at >>>>>>> java.lang.reflect.AccessibleObject.invokeV( >>>>>>> AccessibleObject.java:205) >>>>>>> >>>>>>> Thanks, >>>>>>> Stepan. >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >>>>>>> Sent: Friday, June 23, 2006 4:36 AM >>>>>>> To: [EMAIL PROTECTED] >>>>>>> Subject: svn commit: r416477 - in >>>>>>> /incubator/harmony/enhanced/classlib/trunk/modules/luni: ./ >>>>>>> src/main/java/java/net/ src/test/java/tests/api/java/net/ >>>>>>> >>>>>>> >>>>>>> >>>>>>> Author: gharley >>>>>>> >>>>>>> Date: Thu Jun 22 14:36:24 2006 >>>>>>> >>>>>>> New Revision: 416477 >>>>>>> >>>>>>> >>>>>>> >>>>>>> URL: http://svn.apache.org/viewvc?rev=416477&view=rev >>>>>>> >>>>>>> Log: >>>>>>> >>>>>>> Liberate ServerSocketTest, InetAddressTest and SocketPermissionTest >>>>>>> from >>>>>>> the >>>>>>> excludes list. Fix up a couple of bugs in InetAddressTest. Remove a >>>>>>> couple >>>>>>> of duplicate entries in tests.api.java.net.AllTests suite. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Modified: >>>>>>> >>>>>>> incubator/harmony/enhanced/classlib/trunk/modules/luni/build.xml >>>>>>> >>>>>>> >>>>>>> >>>>>>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/n >>>>>>> >>>>>>> >>>>>> et/ServerSocket.java >>>>>> >>>>>>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/ >>>>>>> >>>>>>> >>>>>> api/java/net/AllTests.java >>>>>> >>>>>>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/ >>>>>>> >>>>>>> >>>>>> api/java/net/InetAddressTest.java >>>>>> >>>>>>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/ >>>>>>> >>>>>>> >>>>>> api/java/net/ServerSocketTest.java >>>>>> >>>>>>> Modified: >>>>>>> incubator/harmony/enhanced/classlib/trunk/modules/luni/build.xml >>>>>>> >>>>>>> URL: >>>>>>> >>>>>>> http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modu >>>>>>> >>>>>>> >>>>>> les/luni/build.xml?rev=416477&r1=416476&r2=416477&view=diff >>>>>> >>>>>>> =========================================================================== >>>>>>> >>>>>>> >>>>>> === >>>>>> >>>>>>> <SNIP> >>>>>>> >>>>>>> -- >>>>>>> Thanks, >>>>>>> Stepan Mishura >>>>>>> Intel Middleware Products Division >>>>>>> >>>>>>> ------------------------------------------------------ >>>>>>> Terms of use : http://incubator.apache.org/harmony/mailing.html >>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>>> >>>>>>> >>>>>>> >>>>>> -- >>>>>> Andrew Zhang >>>>>> China Software Development Lab, IBM >>>>>> >>>>>> ------=_Part_22520_3761084.1151039694395-- >>>>>> >>>>> --------------------------------------------------------------------- >>>>> Terms of use : http://incubator.apache.org/harmony/mailing.html >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>> >>>>> >>>>> >>>>> >>>> --------------------------------------------------------------------- >>>> Terms of use : http://incubator.apache.org/harmony/mailing.html >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>>> >>> --------------------------------------------------------------------- >>> Terms of use : http://incubator.apache.org/harmony/mailing.html >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> --------------------------------------------------------------------- >> Terms of use : http://incubator.apache.org/harmony/mailing.html >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > > --------------------------------------------------------------------- > Terms of use : http://incubator.apache.org/harmony/mailing.html > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
