pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/50990: apache-2.2.31nb2 is not working well on netbsd-7



The following reply was made to PR pkg/50990; it has been noted by GNATS.

From: Martin Husemann <martin%duskware.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: pkg/50990: apache-2.2.31nb2 is not working well on netbsd-7
Date: Thu, 24 Mar 2016 21:57:11 +0100

 After noticing that a regular "chown()" is renamed to posix_chown,
 I found the failing source:
 
 In mod_python.c::init_mutexes we find:
 
 #if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
         char fname[255];
         /* XXX What happens if len(mutex_dir) > 255 - len(mpmtx%d%d)? */
         snprintf(fname, 255, "%s/mpmtx%d%d", mutex_dir, glb->parent_pid, n);
 #else
         char *fname = NULL;
 #endif
         rc = apr_global_mutex_create(&mutex[n], fname, APR_LOCK_DEFAULT,   
                                      p);
 
 
 So here the magic filename is created, and then apr_global_mutex_create
 goes to a shmget() instead of using something in the file system.
 
 However, if the mutex creation works, we run into this:
 
 #if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
 #if AP_MODULE_MAGIC_AT_LEAST(20081201,0)
             ap_unixd_set_global_mutex_perms(mutex[n]);
 #else
             if (!geteuid()) {
                 chown(fname, unixd_config.user_id, -1);
                 unixd_set_global_mutex_perms(mutex[n]);
             }
 #endif
 #endif
 
 and execute the #else (20081201 is not in apache 2.2). The failure to chown
 is not fatal here.
 
 So it all boils down to 
 
  14631      1 httpd    CALL  semget(0,1,0x380)
  14631      1 httpd    RET   semget -1 errno 28 No space left on device
 
 and the man page says:
 
      [ENOSPC]           A new set of semaphores could not be created because
                         the system limit for the number of semaphores or the
                         number of semaphore sets has been reached.
 
 We are leaking semaphores somewhere but cleaning them up on shutdown
 of apache?
 
 Martin
 


Home | Main Index | Thread Index | Old Index