Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#1254 closed bug (fixed)

rtl8139 read_hook: Error in package reception: bits: 20704 length 26088!!!

Reported by: kaoutsis Owned by: nielx
Priority: normal Milestone: R1
Component: Drivers/Network Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

updating haiku via network with rsync!:

client side: command: rsync -rav 192.168.0.135::test-vol /haiku (update recursively /haiku from the latest files resides in /test-vol in the remote machine) address: 192.168.0.105 cpu: 3Ghz P4 ram: 512 MB

server side: command: rsync --daemon (daemon working in the background, waiting requests) address: 192.168.0.135 cpu: 233Mhz Pentium-mmx ram: 109 MB

some notes: *both machines have rtl8139 *if a switch roles (server is client, and client be the server) process is going far and somewhere in the middle KDL say "welcome" with the well known problem "no more free pages"

  • rsync with small directories with ~200 kB works well

Attachments (2)

screen1.png (73.4 KB ) - added by kaoutsis 17 years ago.
the process and the error
syslog (116.8 KB ) - added by bbjimmy 17 years ago.
excerpt of the syslog with debug output enabled.

Download all attachments as: .zip

Change History (12)

by kaoutsis, 17 years ago

Attachment: screen1.png added

the process and the error

comment:1 by nielx, 17 years ago

Owner: changed from axeld to nielx

This is the driver written by me, so I'll take responsibility here (even though hugosantos is porting the BSD driver).

I'll have a quick look and I'll try to diagnose the problem ASAP.

comment:2 by bbjimmy, 17 years ago

similar trouble ... running Revision 2990 ... Opera stops receiving eata ... the system log shows:

KERN: libnetwork.so running in R5 compatibility mode. KERN: rtl8139 read_hook: Error in package reception: bits: 65528 length 63743!!! KERN: rtl8139 read_hook: Nothing to read!!!

using ifconfig to set the interface down then back up will allow the page to continue to load.

comment:3 by nielx, 17 years ago

I've investigated the problem. Unfortunately my rtl8139 seems to have died in the mean time, so I probably won't be fixing this (soon or at all). You know what: I'll give it a go and I'll check with you guys if the patch works or not.

What happens is this: somewhere there is a read error. Now I'm not completely certain whether or not the driver is to blame for it (which it might be), but what it should do after a read error is restart the read queue of the hardware. This is where the bug is.

The other reported problem of the original bug report, the running out of pages, is not in the driver. The driver does not allocate that much memory. So that might be in rsync. It's probably a bug in the kernel. Maybe the recent vm updates fixed this particular issue.

kaoutsis, does the problem always occur at the same point?

comment:4 by nielx, 17 years ago

Hmmm, it's a bit more difficult, because apparantly there should be an okay packet, else there would be more trouble. Would you enable more debug output and send me that in? You can do this by uncommenting line 51 of driver.c (in the /haiku/trunk/src/add-ons/kernel/drivers/network/rtl8139) and recompile. If you don't know how to do this, let me know and I can see if I can help. (preferably both kaoutsis and bbjimmy)

in reply to:  4 comment:5 by kaoutsis, 17 years ago

Replying to nielx:

... Would you enable more debug output and send me that in? You can do this by uncommenting line 51 of driver.c (in the /haiku/trunk/src/add-ons/kernel/drivers/network/rtl8139) and recompile. If you don't know how to do this, let me know and I can see if I can help. (preferably both kaoutsis and bbjimmy)

Ok, thanks for the interest. I will enable the debug output, no problem for me. aggregate comments:

  • the running out of pages, is indeed kernel problem; i just mentioned here to

give the whole picture of the test.

  • i have also seen the "opera case-problem" as described above, but after playing

with haiku for two hours at least, downloading several zip files from the internet. btw: the driver seems quite mature!

by bbjimmy, 17 years ago

Attachment: syslog added

excerpt of the syslog with debug output enabled.

comment:6 by bbjimmy, 17 years ago

With the debug output enabled, the driver does not come to a complete halt, it just does not load a page. ( note: if I replace the rtl8139 driver with the one that comes with BeOS MAX, pages load just fine and there does not seem to be any problem. This tends to indicate that the problem is indeed in the driver.

comment:7 by kaoutsis, 17 years ago

I also test the driver with the debug output enabled: the driver lost its performance; it hardly can ping the other local machine. taking a guess: It seems very busy printing the TRACE messages.

comment:8 by bbjimmy, 17 years ago

Now that the bsd rtl8139 driver is the default ( and seems to work ) I think we can close this ticket.

comment:9 by stippi, 17 years ago

Resolution: fixed
Status: newclosed

Makes sense. The code for which this bug would apply is even removed now.

comment:10 by nielx, 17 years ago

My first contribution now officially lives in history :-)

Note: See TracTickets for help on using tickets.