Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jan 1998 01:49:54 -0500
From:      Matthew Hagerty <matthew@wolfepub.com>
To:        FREEBSD-HACKERS@FreeBSD.ORG
Subject:   Semaphore semop(), semctl() error 22
Message-ID:  <3.0.1.32.19980123014954.006a7204@wolfepub.com>

next in thread | raw e-mail | index | archive | help
Greetings, 

   I posted this in freebsd-questions but was told it should probably be
posted in -hackers.  Please excuse me if it is inappropriate.

   I am trying to bet a BSDI binary (an RDBMS, Raima Velocis-1.4.1) to run
on 2.2.5-Release.  The server starts fine, but when I try to access it, it
crashes with an error to semop(), then to semctl() error 22.  Here is the
error that I get on the terminal:

**** rm_syncDelete() semctl() failure, errno=22 (Invalid argument)

I did a ktrace and kdump to see what might be going on, but since I'm
really not sure what I'm looking at, it did not help me much.  In the
kdump, there are several (about 100 actually) of these groups of lines that
seem to get the errors rolling:

   196 rds      CALL  semop(0x10000,0xefbfdbcc,0x1)
   196 rds      PSIG  SIGALRM caught handler=0xdb8b8 mask=0x0 code=0x0
   196 rds      RET   semop -1 errno 4 Interrupted system call
.
. Then later they get worse:
.
   196 rds      CALL  write(0x2,0xefbfcc84,0x44)
   196 rds      GIO   fd 2 wrote 68 bytes
       "**** rm_syncEnterExcl() semop() failure, errno=22 (Invalid argument)"
.
. And worse
.
   196 rds      GIO   fd 2 wrote 14 bytes
       "NCP Child died"
   196 rds      RET   write 14/0xe
.
. Now semctl
.
   196 rds      CALL  write(0x1,0x139000,0x43)
   196 rds      GIO   fd 1 wrote 67 bytes
       "**** rm_syncDelete() semctl() failure, errno=22 (Invalid argument)
       "
   196 rds      RET   write 67/0x43
.
. Server tries to abort
.
   196 rds      CALL  write(0x2,0xefbfccf0,0x12)
   196 rds      GIO   fd 2 wrote 18 bytes
       "***SERVER ABORT***"
   196 rds      RET   write 18/0x12
.
. But can't
.
   196 rds      CALL  write(0x1,0x139000,0x43)
   196 rds      GIO   fd 1 wrote 67 bytes
       "**** rm_syncDelete() semctl() failure, errno=22 (Invalid argument)
       "
   196 rds      RET   write 67/0x43

   Most of this repeats.  I had to do a kill pid to stop the server.

   I have set:

   options SYSVSHM
   options SYSVSEM
   options SYSVMSG 

in a custom kernel, but this does not seem to help.  Is there anything else
I should check?  I noticed *many* options for semaphores in the kernel LINT
file,
but I have no idea if any of those parameters are relavent to this problem,
and if so, what they *should* be set to.

   Any info, pointers, man pages to read, etc. would be greatly
appreciated.  Also, how compatable is FreeBSD's semaphores to BSDI's?  I
was told that FreeBSD's *native* operating mode was BSD (or is that BSD/OS,
BSDI, or BSD-4.4?)  No emulation needed like for SCO or Linux binaries.
Then again, I think BSD4.4 borrowed semaphores from SVR4?  Yes, no?

Please to email since I am not currently subscribed to the list.

Thank you for you time and efforts, FreeBSD is a great system.

Matthew Hagerty
wpub1@net-link.net




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