[ace-users] Mutex : frustration with file-based shm implementation

Paul Grodt pgrodt at tecore.com
Tue Jul 31 12:41:42 CDT 2007



Paul D. Grodt
 
TECORE Wireless Systems 

Phone:      +1 410 872 6225
Fax:          +1 410 872 6010
email:   pgrodt at tecore.com

THIS E-MAIL MAY CONTAIN PRIVILEGED, CONFIDENTIAL, COPYRIGHTED, OR OTHER
LEGALLY PROTECTED INFORMATION. IF YOU ARE NOT THE INTENDED RECIPIENT
(EVEN IF THE E-MAIL ADDRESS ABOVE IS YOURS), YOU MAY NOT USE, COPY OR
RETRANSMIT IT. IF YOU HAVE RECEIVED THIS BY MISTAKE, OR WISH TO BE
REMOVED FROM A MAILING LIST, PLEASE NOTIFY US BY RETURN E-MAIL AT
SYSADMIN at TECORE.COM, THEN DELETE. THANK YOU.
-----Original Message-----
From: Paul Grodt 
Sent: Tuesday, July 31, 2007 1:31 PM
To: 'ace-users at cs.wustl.edu'
Subject: Mutex : frustration with file-based shm implementation

    ACE VERSION: 5.5.8

    HOST MACHINE and OPERATING SYSTEM:
i686 RHEL 4, 2.6.9-42.0.10.ELsmp

    COMPILER NAME AND VERSION (AND PATCHLEVEL):
$ gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=
/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release
 --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions

--with-gxx-include-dir=/usr/include/c++/3.4.3 --enable-libgcj-multifile 
--enable-languages=c,c++,java,f95 --enable-java-awt=gtk --disable-dssi 
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
--with-cpu=generic 
--host=i386-redhat-linux
Thread model: posix
gcc version 4.1.0 20060515 (Red Hat 4.1.0-18)

    THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
    specific file, simply state which one]:
ace/config-linux.h

    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
    use a link to a platform-specific file, simply state which one
    (unless this isn't used in this case, e.g., with Microsoft Visual
    C++)]:
$(ACE_ROOT)/include/makeinclude/platform_linux.GNU

    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
    (used by MPC when you generate your own makefiles):
DNE
    AREA/CLASS/EXAMPLE AFFECTED:
Mutex

Problem affects my application execution

    SYNOPSIS:
Frustration with file-based mutex implementation in ACE

    DESCRIPTION:
For each named mutex I specify, a file is created under that path.  I
don't 
understand why this is the default behavior in Linux.  I believe I have
it 
traced to the line "ace/config-linux-common.h:35-39":

// Temporary fix because NPTL kernels do have shm_open but there is a
problem
// with shm_open/shm_unlink pairing in ACE which  needs to be fixed when
I have time.
# if defined (ACE_HAS_SHM_OPEN)
#   undef ACE_HAS_SHM_OPEN
# endif /* ACE_HAS_SHM_OPEN */

My searching may be off, but I could find no bugtracking or detailed 
information related to this comment.

To get the files out of the way, I am currently using a wrapper function
in my 
code to write all Mutexes to /tmp/.ACE-*

I seem to be getting errors on followup executions when multiple users
run on a 
system (I believe one of our programs is also creating mutexes while in
SUID 
mode), and further errors on followup executions following abnormal
program 
termination (though I suspect the latter is normal Linux behavior).

Can I safely deactivate this code segment, or what development must be
done to
resolve this issue in ACE?


Paul Grodt



More information about the Ace-users mailing list