openafs/src
Andrew Deason 54fb96d2b6 RX: Avoid retrying calls on busy channels
When we receive an RX_PACKET_TYPE_BUSY packet, we currently ignore it.
This is a problem when the server has a long-running call on that same
call channel that we don't know about, since we will then keep
retrying the call on the same channel and keep getting
RX_PACKET_TYPE_BUSY responses.

Try to avoid this by returning the RX_CALL_TIMEOUT error when we get a
BUSY packet and there are other free call channels available on the
conn. When the application gets the error and retries the call, we
avoid using the same call channel again where possible. When all of
the call channels appear busy, we revert to effectively the old
behavior of retrying the call on the same channel until we get an
RX_CALL_DEAD (or similar) error.

FIXES 128671

Change-Id: I29b84aa36dcc856528c30d26811e5d6c4b78a1ca
Reviewed-on: http://gerrit.openafs.org/3431
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2011-01-27 07:59:48 -08:00
..
afs OpenBSD: No ruid/rgid in cred structure. 2011-01-19 17:55:15 -08:00
afsd afsd: CellItems doesn't apply to memcache mode 2011-01-12 19:25:34 -08:00
afsinstall windows-pcache-20050310 2005-03-11 05:33:12 +00:00
afsmonitor check curses-libs by configure 2010-11-27 07:45:30 -08:00
afsweb Unix: Rework build system 2010-10-11 08:00:29 -07:00
aklog aklog: Build a pthreaded, rather than lwp, version 2010-11-25 05:37:53 -08:00
audit libroken: Build on windows 2010-11-17 08:12:29 -08:00
auth auth: Move key related code to its own file 2011-01-02 06:20:43 -08:00
bozo Remove extra trailing \s in Makefiles 2010-12-27 12:02:45 -08:00
bu_utils Remove unreached lines 2010-12-06 21:38:13 -08:00
bubasics libroken: Build on windows 2010-11-17 08:12:29 -08:00
bucoord Don't trust # of entries from ListAttributes 2010-12-27 12:21:54 -08:00
budb Remove unreached lines 2010-12-06 21:38:13 -08:00
butc Remove unreached lines 2010-12-06 21:38:13 -08:00
butm Remove unreached lines 2010-12-06 21:38:13 -08:00
cf OpenBSD: Change code optimization setting 2011-01-19 17:55:51 -08:00
cmd Unix: Rework build system 2010-10-11 08:00:29 -07:00
comerr libroken: Build on windows 2010-11-17 08:12:29 -08:00
config OpenBSD: Add support for OpenBSD 4.8 2011-01-24 09:07:57 -08:00
crypto hcrypto: Cleanup all build products 2010-11-21 06:37:23 -08:00
dir OpenBSD: Remove user.h from dir.c for OpenBSD 4.8 2011-01-24 09:39:22 -08:00
dviced Remove local crypto 2010-11-19 05:07:57 -08:00
dvolser Remove local crypto 2010-11-19 05:07:57 -08:00
export Fix mech of building export on AIX 2010-12-10 08:46:21 -08:00
external Import of code from heimdal 2011-01-27 05:29:16 -08:00
finale Remove local crypto 2010-11-19 05:07:57 -08:00
fsint libroken: Build on windows 2010-11-17 08:12:29 -08:00
fsprobe Remove local crypto 2010-11-19 05:07:57 -08:00
gtx HPUX: Put __HP_CURSES back in 2010-12-22 20:32:10 -08:00
JAVA Remove local crypto 2010-11-19 05:07:57 -08:00
kauth Remove unreached lines 2010-12-06 21:38:13 -08:00
kopenafs Move include of sys/types.h in kopenafs.c 2010-12-03 11:27:54 -08:00
libacl libroken: Build on windows 2010-11-17 08:12:29 -08:00
libadmin libadmin: Don't use internal struct for key data 2011-01-02 06:20:24 -08:00
libafs OpenBSD: Eliminate complaint about built-in malloc. 2011-01-24 09:39:34 -08:00
libafsauthent Windows: more exports afsauthent.dll 2011-01-22 19:30:18 -08:00
libafsrpc rx: add rx_opaque and rx_identity exports 2010-11-24 04:47:33 -08:00
libuafs auth: Move key related code to its own file 2011-01-02 06:20:43 -08:00
log Remove local crypto 2010-11-19 05:07:57 -08:00
lwp LWP: kill dead code 2010-12-21 21:09:24 -08:00
mcas death to trailing whitespace 2010-08-16 21:32:53 -07:00
packaging MacOS: panic decoder should check for unloaded kexts 2011-01-19 12:39:21 -08:00
pam Remove local crypto 2010-11-19 05:07:57 -08:00
platform MacOS: fix SetFile call in growlagent makefile 2011-01-25 11:46:55 -08:00
procmgmt windows: terminate multi_sz correctly 2010-10-29 10:24:59 -07:00
ptserver Fix AUD_HOST callers 2010-12-10 08:38:46 -08:00
roken roken: Export more snprintf symbols 2011-01-01 21:21:23 -08:00
rx RX: Avoid retrying calls on busy channels 2011-01-27 07:59:48 -08:00
rxdebug libroken: Build on windows 2010-11-17 08:12:29 -08:00
rxgen Add "brief" option to rxgen 2011-01-01 21:19:51 -08:00
rxkad rxkad: rename bswap32 to octetswap32 2010-11-23 21:33:26 -08:00
rxosd .gitignore update 2010-11-27 11:10:04 -08:00
rxstat libroken: Build on windows 2010-11-17 08:12:29 -08:00
scout check curses-libs by configure 2010-11-27 07:45:30 -08:00
sgistuff Remove local crypto 2010-11-19 05:07:57 -08:00
shlibafsauthent auth: Move key related code to its own file 2011-01-02 06:20:43 -08:00
shlibafsrpc Remove extra trailing \s in Makefiles 2010-12-27 12:02:45 -08:00
sys darwin: fix fixed setpag error handling 2010-12-17 18:20:01 -08:00
tbudb Remove local crypto 2010-11-19 05:07:57 -08:00
tbutc Remove local crypto 2010-11-19 05:07:57 -08:00
tests afscp: Add -s option 2010-11-15 09:42:44 -08:00
tptserver Remove local crypto 2010-11-19 05:07:57 -08:00
tsalvaged Windows: build mtafsdir.lib and use it 2011-01-20 05:28:35 -08:00
tsm41 Add .gitignore for tsm41 2010-12-04 08:47:06 -08:00
tubik tubik: Link with libafsauthent 2010-12-06 21:37:23 -08:00
tviced Windows: build mtafsdir.lib and use it 2011-01-20 05:28:35 -08:00
tvlserver Remove local crypto 2010-11-19 05:07:57 -08:00
tvolser tvolser: Link libafsrpc after libusd 2010-12-09 04:52:57 -08:00
ubik Remove unreached lines 2010-12-06 21:38:13 -08:00
update Remove local crypto 2010-11-19 05:07:57 -08:00
usd kill off afs/debug.h 2010-11-01 05:17:45 -07:00
uss Remove local crypto 2010-11-19 05:07:57 -08:00
util Windows: fixup gettmpdir() 2011-01-14 08:30:42 -08:00
venus Remove unreached lines 2010-12-06 21:38:13 -08:00
vfsck Unix: Rework build system 2010-10-11 08:00:29 -07:00
viced Remove extra trailing \s in Makefiles 2010-12-27 12:02:45 -08:00
vlserver Remove unreached lines 2010-12-06 21:38:13 -08:00
vol vol-salvage: Only delete bad vnodes during !check 2011-01-25 12:07:00 -08:00
volser volser: select() cannot be used to sleep on windows 2011-01-18 09:55:35 -08:00
WINNT Windows: Correct cm_volume locking 2011-01-26 19:04:34 -08:00
xstat libroken: Build on windows 2010-11-17 08:12:29 -08:00
.gitignore gitignore-20090615 2009-06-15 23:29:29 +00:00
BUILDNOTES
DOLASTCMP.BAT
helper-splint.sh.in
libafsdep libafsdep-des-stats-20050618 2005-06-19 00:15:22 +00:00
LICENSE Rework the Kerberos Autoconf probes 2010-06-15 16:30:04 -07:00
mkdest.pl
ntbuild.bat windows-build-20080725 2008-07-25 21:25:55 +00:00
NTObjdir Move rxkad/domestic/* into rxkad/ directory proper 2010-04-25 20:55:03 -07:00
rmbat.bat
rmbat.rsp fix newline conventions 2010-07-06 08:16:25 -07:00
SOURCE-MAP SOURCE-MAP updates 2010-07-08 08:48:43 -07:00
splint.cfg
symlink.bat
TechNotes-JavaAPI