Verify that afs_GetCellByIndex() returns a valid cell -- it might
be NULL if afs_NewCell() aborted partway through, which could be
the case of the CellServDB file has a typo.
You need to specify "refresh_token" the second time you call it to prevent
it from getting a second PAG and making your first token useless.
Or, you can just use it once to authenticate to a cell other than what's
in /usr/vice/etc/ThisCell. Not specifying the "cell" argument causes the
expected behavior of authenticating against the local cell."
"The multithreaded butc (src/tbutc/butc) includes bucoord/status.o, which is
compiled together with the other bucoord stuff without MT_CFLAGS and hence
without AFS_PTHREAD_ENV defined. Alas, it uses ObtainWriteLock and other
macros out of lock.h which *are* sensitive to AFS_PTHREAD_ENV. Consequently,
butc can hang trying to acquire the statusQueueLock when dumping volumes, in
particular if 'backup status' commands are issued frequently.
A proper fix would probably be to push some of those macros out of lock.h and
make them subroutines in lock.c.
A quick fix is ensuring status.c gets recompiled in tbutc/Makefile.in"
This patch will fix the "freebsd can't read files > 1 chunk" problem. It
will almost certainly not fix the "cache files get the bootloader written
into them" problem, but there is a miniscule chance:
"cleanup osi_sleep.c to remove some additional races. this patches
removes AFS_GLOBAL_SUNLOCK and just uses that case to handle both
smp and non smp cases. osi_TimedSleep always sleeps atleast 1 hz.
(it also always sleeps interruptibly -- you might get some extra
loops but this is better than the load average running away)
sleep_on's are replaced with the more appropriate add_waitq/schedule
sequence. getevent is called after addevent since there is no
danger of GLOCK dropping. getevent/addevent isnt re-merged since
osi_Wakeup doesnt create entries in the event table."
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
I'm told that after we introduce ptserver nested groups we can expect to
see periodic pauses in ubik operations, and this fixes the problem. if it
happens, we can start with the UBIK_PAUSE code and go from there
"the attached patch 'fixes', in my opinion, in osi_alloc. objects <=
AFS_SMALLOCSIZ are alloced with kmalloc, other vmalloc. if kmalloc
fails it doesnt fail over to vmalloc. TASK_RUNNING is set after
schedule. it doesnt drop the GLOCK. i moved the allocator init
later so that it doesnt need to toggle the semaphore just before
going to linux_alloc."
lha@stacken.kth.se complained that we sometimes printed garbage, so i took
the opportunity to both fix it and update ours to support the options
the arla vos listaddrs does
based on comments and suggestion from Srikanth Vishwanathan <vsrikanth@in.ibm.com>
avoid deadlock. send back variable length list. allocate what we need to, and
be care to clean up after ourselves if there's an error. whether this
should be variable length is arguable but it's pretty clear no one was using
this before.
Delay calling afs_ProcessFS() and upgrading the shared vcache lock
until after the dcache locks have been released, to obey lock ordering
and avoid deadlock.
Garry Zacheiss [Wed, 29 May 2002 21:59:51 +0000 (21:59 +0000)]
uuencode binary files used by the test suite (KeyFile and sample kaserver
database). Keeping binary files in CVS is annoying, and this way "cvs rdiff"
will work again.
But then, why not just allocate a whole identP and be happy. A afsUUID
is not that bloted (16 bytes) so I can't see why way this is
chosen. 20 bytes will probably be allocated on 32 bit platforms for
the whole struct Identity.
Derek Atkins [Wed, 15 May 2002 21:04:15 +0000 (21:04 +0000)]
osi_linux_unmask() needs to explicitly flush_signals() before calling
recalc_sigpending(), otherwise recent kernels don't appear to deliver
new instances of any signals already received.
Revert back to using SIGKILL at shutdown time, but use SIGKILL instead of
explicitly using signal 9, because abstraction is your friend.
liberal debugging code and hammering produced a failure where newslot was
actually walking on another call to newslot because the bufferlock was
being dropped before newslot incremented lockers on the buffer it
was allocating, allowing someone else to come along and also think they
could allocate it.
by holding the bufferlock just a little longer we avoid this
doesn't fix any problem that i can find, but results in ihandles not
having thousands of bogus references (and may fix problems if refcnt were to wrap)
Garry Zacheiss [Tue, 7 May 2002 21:01:27 +0000 (21:01 +0000)]
Use vsu_ExtractName() to get the RW volume name before doing the vid lookup
for addsite and remsite operations, since "vos addsite foo.bar.readonly" is
such a common thinko.
Undo need-prototype-for-osi-dnlc-lookup-20020503, as it created
double inclusion of afs_osidnlc.h.
An equivalent patch was already present in the mainline as part of
linux-dcache-inconsistency-fix-20020115, but its pullup to the stable
branch, STABLE12-linux-dcache-inconsistency-fix-20020120, was oddly
missing this particular part of the diff.
this does fix some potential problems, even if none of them are the
CopyOnWrite problem. basically, ih_reallyclose() could reinsert a now-unref'd
fd handle into the wrong list when cleaning up, and this cleans up the code
considerably.