AnsweredAssumed Answered

CIFS issue

Question asked by jenglert on Jul 19, 2007
Latest reply on Jul 23, 2007 by jenglert
I'm using Alfresco 2.0 and I have been receiving the following error quite often.

11:10:28,765 ERROR [org.alfresco.filesys.smb.mailslot.Win32NetBIOSHostAnnouncer] Host announce error  (LANA 0)

It bothered me so I did a bit of investigation.

It originates from Win32NetBIOSHostAnnouncer.java:

   int sts = Win32NetBIOS.SendDatagram(getLana(), getNameNumber(), destName, buf, 0, len);
        if ( sts != NetBIOS.NRC_GoodRet)
        {
           // Log the error
            System.out.println("send datagram result number" + sts);     // I added this line.

            if ( logger.isErrorEnabled())
              logger.error("Host announce error " + NetBIOS.getErrorString( -sts) +
                    " (LANA " + getLana() + ")");

I added a printout in this block to determine the code returned by the SendDatagram.  The value that was being printed out was 119.  I was confused since negative error values would seem to match up to error codes.  I then took a look at the C class and found the following in the SendDatagram method:

   if ( ncb.ncb_retcode == NRC_GOODRET)
      return ncb.ncb_length;

   /*
    * Return the error status code as a negative number
    */

   return -ncb.ncb_retcode;

It would seem as though I had a successful transmission and the 119 that was returned was the length of the sent packet.  I'm not really sure why this is happening but it appears that my socket handler is having its state changed to offline as a result.

int sts = Win32NetBIOS.SendDatagram(getLana(), getNameNumber(), destName, buf, 0, len);
        if ( sts != NetBIOS.NRC_GoodRet)
        {
           // Log the error
            System.out.println("send datagram result number" + sts);     // I added this line.

            if ( logger.isErrorEnabled())
              logger.error("Host announce error " + NetBIOS.getErrorString( -sts) +
                    " (LANA " + getLana() + ")");
           
            // Update the error count
           
            if ( incrementErrorCount() == SendErrorCount)
            {
               //   Mark the LANA as offline
               
               m_handler.lanaStatusChange( getLana(), false);

               // Clear the error count
               
               clearErrorCount();
               
               // Log the error

               if ( logger.isErrorEnabled())
                  logger.error("Marked LANA as unavailable due to send errors");
            }
        }


Does anyone know if this is an issue and what the cause might be?

Outcomes