Samba connectie problemen naar sco

  SCO

De Orxresta kassa connect naar de SCO machine via smb protocol (samba) met in richten van de nieuwe SCO machine liepen we tegen het probleem aan dat de op de SCO machine uit zijn NSTRPAGES, na ongeveer 1 nacht gedraait te hebben was de SCO machine niet meer via het netwerk te benaderen.

Opvragen huidige status.

# netstat -m
streams allocation:
                         config    alloc     free       total      max     fail
stream                     4096       99     3997       18135      102        0
queues                      452      204      248       36278      210        0
mblks                       271      164      107     4667846      236        0
buffer headers              442      309      133      326393      321        0
class  1,     64 bytes       64        5       59     2308883       12        0
class  2,    128 bytes       32        0       32      541007       25        0
class  3,    256 bytes       48        6       42      664628       39        0
class  4,    512 bytes        8        6        2          75        8        0
class  5,   1024 bytes        4        0        4          34        2        0
class  6,   2048 bytes       98       94        4      500197       97        0
class  7,   4096 bytes        0        0        0           0        0        0
class  8,   8192 bytes        1        0        1         739        1        0
class  9,  16384 bytes        1        0        1           1        1        0
class 10,  32768 bytes        0        0        0           0        0        0
class 11,  65536 bytes        0        0        0           0        0        0
class 12, 131072 bytes        0        0        0           0        0        0
class 13, 262144 bytes        0        0        0           0        0        0
class 14, 524288 bytes        0        0        0           0        0        0
total configured streams memory: 2000.00KB
streams memory in use: 220.86KB
maximum streams memory used: 268.12KB

het gaat vooral om de regel streams memory in use: 220.86KB en om de fail kolom als de waarde van streams memory in user hoger word als de waarde total configured streams memory: 2000.00KB dan is het netwerk niet meer te bereiken.

Dit is een probleem in SCO openserver kernel. memory wat gealloceerd word door applicatie ivm met netwerk connecties word door de applicatie wel vrij gegeven maar de SCO kernel maakt het daarna niet meer vrij. niet alle applicatie’s maken gebruik van de stream buffers. Het probleem is in sco openserver 5.0.7 opgelost. helaas konden we hier geen gebruik van maken, wij gebruik van 5.0.5 🙁 . Je kan het probleem op 2 marnieren oplossen.

  1. Samba source downloaden en een een routine uiit zetten en opnieuwe compileren
  2. Maak gebruik van de IP files van 5.0.7 (bij gevoegd in dit document)

Optie 1

Download de samba source van www.samba.org. versie 2.2.8a. pak deze uit in bv /tmp open de volgende file in je favorieten text editor (bv vi) source/lib/util_sock.c zoek in deze file op print_socket_options plaats voeg de extra commentaar symbolen toe zoals hier onder in rood zijn aan gegeven . i

static void print_socket_options(int s)
{
       int value;
       socklen_t vlen = 4;
       smb_socket_option *p = &socket_options[0];
/* Edwin commented out this bit - 30-11-2004 */
/* Memory leak in sco kernel */
/*
       for (; p->name != NULL; p++) {
               if (getsockopt(s, p->level, p->option, (void *)&value, &vlen) == -1) {
                       DEBUG(5,("Could not test socket option %s.\\\\n", p->name));
               } else {
                       DEBUG(5,("socket option %s = %d\\\\n",p->name,value));
               }
       }
*/
}

hierna moet je alleen samba nog compileren. omdat ik deze methode niet gebruikt heb staat hier onder alleen in grote lijnen hoe je samba zou kunnen compileren op sco. zorg er voor dat make geinstalleerd is op sco en er moet een compiler aanwezig zijn dit mag cc maar ook gcc. deze software is te downloaden op www.sco.com je kan extra optie mee geven met compileren zoals de lokatie waar de files uit eindelijk komen te staan. doe daarom ./configure –help en je kan alle extra optie bekijken. hier onder compileren in 3 stappen.

   * ./configure (eventueel met optie)
   * make
   * make install<>

als het goed is zou samba zonder fouten moeten compileren.

Optie 2

Wij hebben er voor gekozen om de ip files van 5.0.7 gebruiken deze files zijn bij dit document bij gevoegd. Driver.o en space.c plaats deze files in /etc/conf/pack.d/ip/ deze methode zou ook moeten werken voor een 5.0.6 systeem en 5.0.4 versie ik heb hem alleen getest op 5.0.5.

Als de files op op de plaats staan moet de kernel opnieuwe gerelinked worden

/etc/conf/cf.d/link_unix

daarna de machine rebooten.

shutdown -i6 -g0 -y

Zaken om rekening mee te houden

Ik heb gemerkt dat het probleem zich nog steeds voordoet als de kassa en/of de sco machines zijn aangesloten op een hub of als de switch poort verkeerd staat ingesteld. een vereisten is dus dat zowel de cwpc op een switch zitten en dat de poorten goed zijn ingesteld. zowel de kassa als de SCO machine staan ingesteld op auto negotiate de switch moet dus ook op de manier in gesteld staan. twijfel je of de switch goed is ingesteld of dat er toch spraken is van een hub dan is dit op de sco machine eenvoudig te controleren met ndstat -l is eenvoudig te checken of er collisions zijn. als dit het geval (lopen ze op) dan is er spraken van een hub / verkeert geconfigureerde switch of een slechte netwerk kabel.