Well, :) - it can't be GOOD...

it's in this block of code in util.c:

int _accessMutex(PthreadMutex *mutexId, char* where,
                 char* fileName, int fileLine) {
  int rc;

  if(!mutexId->isInitialized) {
    traceEvent(TRACE_ERROR,
               "ERROR: accessMutex() call with a NULL mutex [%s:%d]\n",
               fileName, fileLine);
    return(-1);
  }

called from here in address.c:

static void queueAddress(struct in_addr elem) {
  /****************************
   - If the queue is full then wait until a slot is freed
   - If the queue is getting full then periodically wait
     until a slot is freed
  *****************************/
  if(addressQueueLen >= ADDRESS_QUEUE_LENGTH) {
#ifdef DEBUG
   traceEvent(TRACE_INFO, "Dropping address!!! [addr queue=%d/max=%d]\n",
              addressQueueLen, maxAddressQueueLen);
#endif
    /* The address is kept in numerical form (i.e. no conversion will take
place) */
    numKeptNumericAddresses++;
    droppedAddresses++;
#ifdef HAVE_SCHED_H
    sched_yield(); /* Allow other threads (dequeue) to run */
#endif
  } else {
    accessMutex(&addressQueueMutex, "queueAddress");
    addressQueue[addressQueueHead].s_addr = elem.s_addr;
    addressQueueHead = ((addressQueueHead+1) % ADDRESS_QUEUE_LENGTH);
    addressQueueLen++;

    if(addressQueueLen > maxAddressQueueLen) {
      maxAddressQueueLen = addressQueueLen; /* Update stats */
#ifdef DEBUG
     traceEvent(TRACE_INFO, "Max queue len: %ld\n", maxAddressQueueLen);
#endif
    }

    releaseMutex(&addressQueueMutex);
#ifdef DEBUG
   traceEvent(TRACE_INFO, "Queued address... [addr queue=%d/max=%d]\n",
              addressQueueLen, maxAddressQueueLen);
#endif



I doubt it's fatal on a uniprocessor machine, but on an SMP box, it could be
bad (even on an UP if the interrupts tick just right).  Symptoms would be
lost/corrupted DNS name resolutions... the mutex is protecting the queue of
address to resolve.  I think you could run a long time without a problem or
get bit immediately.  Still, the mutex shouldn't be null - it's initialized
on startup and never touched...

Needed information - the mutex section from the bottom of the configuration
report...  also the thread counter (# Active Threads) from the same report.

Note that there is this note in the code in createMutex:

#ifdef PTHREAD_MUTEX_ERRORCHECK_NP

  /* *************************************************
     There seems to be some problem with mutexes and some
     glibc versions. See

     http://sdb.suse.de/sdb/de/html/aj_pthread7.0.html

     (in German but an english version is probably available on their
     international web site). Suggested workaround is either to use

     pthread_mutexattr_settype (&mutattr, PTHREAD_MUTEX_ERRORCHECK_NP);

     as checked mutexes dont have the error or use a corrected
     glibc (Suse offers a patched version for their system).

     Andreas Pfaeller <[EMAIL PROTECTED]>

     ************************************************* */

  pthread_mutexattr_settype (&(mutexId->mutex),
                             PTHREAD_MUTEX_ERRORCHECK_NP);

#endif /* PTHREAD_MUTEX_ERRORCHECK_NP */

You probably need to give us more information about the setup...

  Software
     NTop version, source and any applied patches
     Linux vendor & version
     Any major upgrades (kernel, networking, etc.)
     gcc version
     glibc version
  Hardware
     Type & # of processors (given in your msg)
     # network interfaces and types (vendor, bus, etc.)


I would also suggest restarting NTop and seeing if it goes away...

-----Burton




-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf
Of Dennis Schoen
Sent: Monday, January 07, 2002 8:59 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: [Ntop-dev] Re: ntop-2.0.0-1


On Mon, Jan 07, 2002 at 07:44:37AM -0700, [EMAIL PROTECTED] wrote:
> Sorry for the screwy bug report, the system generating the bugs can't send
> email.
>
> In my hourly parsing of logfiles for notification information, I see the
> following:
in which logfile?

> ERROR: accessMutex() call with a NULL mutex [address.c:358]
> ERROR: releaseMutex() call with a NULL mutex [address.c:370]
are you experiencing any problems? I don't think thats problematic
but I'll forward your mail to the ntop-dev mailing list.

> This is on a Dual PPro-200 system testing/unstable.

Ciao
  Dennis
_______________________________________________
Ntop-dev mailing list
[EMAIL PROTECTED]
http://listmanager.unipi.it/mailman/listinfo/ntop-dev

_______________________________________________
Ntop-dev mailing list
[EMAIL PROTECTED]
http://listmanager.unipi.it/mailman/listinfo/ntop-dev

Reply via email to