Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Sep 2000 17:41:56 +0200
From:      Matthew West <mwest@uct.ac.za>
To:        stable@freebsd.org
Subject:   msgget() / IPC message queue weirdness on FreeBSD 4.1-STABLE
Message-ID:  <20000915174156.A29544@apotheosis.org.za>

next in thread | raw e-mail | index | archive | help
I seem to be experiencing some weirdness with SysV Message Queues on
FreeBSD 4.1-STABLE.

I'm unable to create message queues on one machine, running either a
custom or generic kernel, in single or multi-user mode.  And yet I can
get it to work perfectly on another machine, almost identical hardware
configuration, running the same version of FreeBSD (via NFS make
installworld).

I realise this is going to be a real pain to try and reproduce, as I
only seem to be able to get it to do this on one particular machine.

Basically, msgget() refuses to create and message queues, claiming
that there's "no space left on device", even when in single user mode.

[root@casper2] ~/mq# uname -a
FreeBSD casper2.cs.uct.ac.za 4.1-STABLE FreeBSD 4.1-STABLE #0: Thu Sep 14 21:50:13 SAST 2000 mwest@casper2.cs.uct.ac.za:/usr/obj/usr/src/sys/CASPER2 i386

[root@casper2] ~/mq# grep SYS /sys/i386/conf/CASPER2
options         SYSVSHM                 #SYSV-style shared memory
options         SYSVMSG                 #SYSV-style message queues
options         SYSVSEM                 #SYSV-style semaphores

[root@casper2] ~/mq# cat test.c
#include <sys/types.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>

int main()
{
  if (msgget(getpid(), IPC_CREAT) == -1)
    perror("msgget");
  exit(0);
}

[root@casper2] ~/mq# ./test
msgget: No space left on device

[root@casper2] ~/mq# truss ./test  
__sysctl(0xbfbff9b0,0x2,0x2805b6a8,0xbfbff9ac,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,0x3,0x1002,-1,0x0)                = 671465472 (0x2805c000)
geteuid()                                        = 0 (0x0)
getuid()                                         = 0 (0x0)
getegid()                                        = 0 (0x0)
getgid()                                         = 0 (0x0)
open("/var/run/ld-elf.so.hints",0,00)            = 3 (0x3)
read(0x3,0xbfbff990,0x80)                        = 128 (0x80)
lseek(3,0x80,0)                                  = 128 (0x80)
read(0x3,0x28060000,0x4c)                        = 76 (0x4c)
close(3)                                         = 0 (0x0)
access("/usr/lib/libc.so.4",0)                   = 0 (0x0)
open("/usr/lib/libc.so.4",0,027757775010)        = 3 (0x3)
fstat(3,0xbfbff9d8)                              = 0 (0x0)
read(0x3,0xbfbfe9a8,0x1000)                      = 4096 (0x1000)
mmap(0x0,602112,0x5,0x2,3,0x0)                   = 671498240 (0x28064000)
mmap(0x280e1000,16384,0x3,0x12,3,0x7c000)        = 672010240 (0x280e1000)
mmap(0x280e5000,73728,0x3,0x1012,-1,0x0)         = 672026624 (0x280e5000)
close(3)                                         = 0 (0x0)
sigaction(SIGILL,0xbfbffa30,0xbfbffa18)          = 0 (0x0)
sigprocmask(0x1,0x0,0x2805b5dc)                  = 0 (0x0)
sigaction(SIGILL,0xbfbffa18,0x0)                 = 0 (0x0)
sigprocmask(0x1,0x2805b5a0,0xbfbffa58)           = 0 (0x0)
sigprocmask(0x3,0x2805b5b0,0x0)                  = 0 (0x0)
getpid()                                         = 819 (0x333)
msgsys(0x1,0x333,0x200,0x28093468,0x1,0x280e54a0) ERR#28 'No space left on device'
msgget: No space left on device
writev(0x2,0xbfbffa74,0x4)                       = 32 (0x20)
sigprocmask(0x1,0x2805b5a0,0xbfbffa34)           = 0 (0x0)
sigprocmask(0x3,0x2805b5b0,0x0)                  = 0 (0x0)
exit(0x0)                                       process exit, rval = 0

[root@casper2] ~/mq# ipcs -q
Message Queues:
T     ID     KEY        MODE       OWNER    GROUP

[root@casper2] ~/mq# ipcs -Q
msginfo:
        msgmax:  16384  (max characters in a message)
        msgmni:     40  (# of message queues)
        msgmnb:   2048  (max characters in a message queue)
        msgtql:     40  (max # of messages in system)
        msgssz:      8  (size of a message segment)
        msgseg:   2048  (# of message segments in system)

Any thoughts/ideas welcome!

--
mwest@uct.ac.za


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000915174156.A29544>