#2840 closed bug (fixed)
via_rhine II ethernet controller: svn hangs
Reported by: | Adek336 | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Drivers/Network | Version: | R1/pre-alpha1 |
Keywords: | Cc: | black.belt.jimmy@… | |
Blocked By: | Blocking: | ||
Platform: | All |
Description
Ethernet controller is via_rhine II, I can begin a svn checkout of the haiku sources, it downloads some files and hangs (I waited for a few minutes but it didn't continue). After killing svn and removing the partial downloads, I can again try to checkout but only a few files download (sometimes 800, sometimes 5000); it stops on different files.
Sometimes but rarely, after killing svn and trying to rm -r trunk causes rm: FATAL: directory trunk//src/build/.svn
changed dev/ino, different directories get mentioned here.
In KDL I can see that the svn thread is waiting for a semaphore called "tcp receive" during the hang.
Attachments (1)
Change History (10)
comment:1 by , 16 years ago
comment:3 by , 16 years ago
When the network is heavily loaded, svn (although more slowly) is able to download a lot more files. After downloading about 30,000 files the network load (previously caused by additional downloads on another computer in the LAN) decreased, and then svn hung.
follow-up: 5 comment:4 by , 16 years ago
This happens on a via_rhine II and does not happen on a broadcom tigon3 adapter.
comment:5 by , 16 years ago
Replying to Adek336:
This happens on a via_rhine II and does not happen on a broadcom tigon3 adapter.
I have the same issue with via_rhine and rtl8139. I cannot so an SVN checkout without killing the stalled SVN and restarting it. Needed to run svn cleanup possibly delete some files or directories to get it to start again. SVN usually stops about four times doing a complete checkout of the haiku trunk.
comment:6 by , 16 years ago
Cc: | added |
---|
comment:7 by , 16 years ago
compat_read() was conscious only of the first mbuf in a mbuf chain. Actually not all drivers seem to create long mbuf chains, and in practice, only packets small enough to fit in MHLEN bytes and trigger (totlen + off + max_linkhdr <= MLEN) in m_devget() but big enough to have (total_len >= MHLEN - max_linkhdr) would be broken into two mbufs.
patch fixes this and #2908.
comment:8 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Nice catch! I've applied it in hrev28599.
comment:9 by , 16 years ago
Component: | Applications/Command Line Tools → Drivers/Network |
---|
svn 1.4.6, haiku hrev28099