[OpenAFS-devel] autoconf XBSA_CFLAGS variable

Leo Luan luan@almaden.ibm.com
Mon, 3 Feb 2003 23:54:39 -0800


> Can someone also explain the relationship between the src/butc directory
> and the src/tbutc directory?  I don't quite understand what tbutc is
> there for.

Searching a little further, I found the tbutc actually for multi-thread
butc build.

See the following old openafs-devel post

Message: 5
Date: Tue, 23 Jul 2002 10:53:54 +0200
From: Rainer Toebbicke <rtb@pclella.cern.ch>
To: openafs-devel@openafs.org
Subject: [OpenAFS-devel] Multi-threaded butc hangs - includes
bucoord/status.o which is not
 thread-safe

This is a multi-part message in MIME format.
--------------020106040905070500080104
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

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 (see
attached diff).


Rainer Toebbicke
IT Division
CERN, Geneva (Switzerland)