[comp.unix.i386] HELP! uucico hangs!

snorri@strengur.is (Snorri Bergmann) (01/04/90)

Hello netland!

I am running ISC 2.0.2 with X5 and X6 updates, and I am having a *lot*
of trouble using the bi-directional capabilities (dial-in and -out on the
same port). Everything works fine (I poll a computer every
2 hours) *until somebody logs in on that port!!* After that I get FAIL from
uucico every time it calls and the only cure seems to be to reboot the system.

If one dials in on that port everything works fine, no problems there, and
the modem hangs up immediately after logoff.

I have configured everything as stated in the Update X5 Installation Notes,
(acu0 for dial-out, ttyd0 for dial-in ,the right gettydefs stuff etc) but
it still won't work!.  

Any ideas before I post the entire debug script?

Please e-mail, and I'll summarize on the net.

Thanks in advance,
-- 

Snorri Bergmann, Strengur Consulting Engineers, Reykjavik Iceland
INTERNET: snorri@strengur.is

snorri@strengur.is (Snorri Bergmann) (01/04/90)

In article <9@strengur.is>, I wrote:
> 
> Hello netland!
> 
> I am running ISC 2.0.2 with X5 and X6 updates, and I am having a *lot*
> of trouble using the bi-directional capabilities (dial-in and -out on the
> same port). Everything works fine (I poll a computer every
> 2 hours) *until somebody logs in on that port!!* After that I get FAIL from
> uucico every time it calls and the only cure seems to be to reboot the system.
> 
> If one dials in on that port everything works fine, no problems there, and
> the modem hangs up immediately after logoff.
> 
> I have configured everything as stated in the Update X5 Installation Notes,
> (acu0 for dial-out, ttyd0 for dial-in ,the right gettydefs stuff etc) but
> it still won't work!.  
> 

I received a posting (thank you Jonathan) that suggested I should send
the entire debug script, and some more info.

I have a ACER 1100 (5mb ram, 330Mb Hd), but I had a HP Vectra 25C before
and the same thing happend there, so it's unlikely to be some kind of
hardware incompatibility. I use Lightspeed 2400 (Hayes comp.) modem with
a standard modem cable (wich has been checked by a local guru btw). 
The dip swich settings for the modem are: (1-10 1=on, 0=off) 0010000100.
AFTER somebody has dialed in the modem continues to respond incoming calls 
and I can "cu" to the computer I usually poll, that works fine,
the only thing that does not work properly is uucico. 

Now here goes the debug script /* comments are mine */


mchFind called (krafla)
list (rmail) num = 1
list (/usr/spool/uucppublic) num = 1
list (/usr/spool/uucppublic) num = 1
list (/bin/rmail) list (rnews) num = 2
_Request (TRUE), _Switch (TRUE), _CallBack (FALSE), _MyName (), _Commands /bin/rmail
_Commands rnews
chdir(/usr/spool/uucp/krafla)
conn(krafla)
Device Type ACU wanted
mlock acu0 succeeded
filelock: ok
fixline(6, 2400)
processdev: calling setdevcfg(uucico, ACU)
gdial(HayesSmartm2400B) called
expect: ("")   /* I use the ISC supplied hayes script because the one in
got it            the X5 update manual does not work! */
sendthem ()
CLOCAL set
DELAY
<NO CR>AT^M)
expect: (OK^M)
AT^M^M^JOK^Mgot it
sendthem (<NO CR>AT&F^M)
expect: (OK^M)
^JAT&F^M^M^JOK^Mgot it
sendthem (<NO CR>ATZ^M)
expect: (OK^M)
^JATZ^M^M^JOK^Mgot it
sendthem (<NO CR>ATM0^M)
expect: (OK^M)
^JATM0^M^M^JOK^Mgot it
sendthem (<NO CR>AT&D2^M)
expect: (OK^M)
^JAT&D2^M^M^JOK^Mgot it
sendthem (<NO CR>AT&C1^M)
expect: (OK^M)
^JAT&C1^M^M^JOK^Mgot it
sendthem (<NO CR>ATS0=1^M)
expect: (OK^M)
^JATS0=1^M^M^JOK^Mgot it
sendthem (<NO CR>ATS7=120^M)
expect: (OK^M)
^JATS7=120^M^M^JOK^Mgot it
sendthem (ECHO CHECK ON
<NO CR>A^JATTDDTTxxxxxxxxxxxx^M^M)
expect: (00)
^M^JCONNECT 2400got it
sendthem (^M)
CLOCAL clear
<NO CR>)
getto ret 6
expect: (lvu) /* Have to log on through a swichmux */
^M^J^M^J^@^M^J^J  1   HEKLA  (VAX/VMS)^M^J  2   KATLA  (VAX/VMS)^M^J  7   KRAFLA (HP-UX)^M^J^J^M^J^@Veljid tolvugot it
sendthem (7^M)
expect: (in:)
 : 7^M^JTenging...^M^J^@^M^M^J^I Krafla ^I^IHP-UX A.B3.01 C 9000/840 4339^M^J^Mlogin:got it
/* As you can see, logging on goes ok! */
sendthem (uucp^M) 
imsg > uucp^M^M^J^PShere=krafla^@Login Successful: System=krafla
omsg "Sstrengur -Q0 -x9"
imsg >^PROK^@msg-ROK
 Rmtname krafla, Role MASTER,  Ifn - 6, Loginuser - uucp
rmesg - 'P' imsg >^PPgfx^@got Pgfx
wmesg 'U'g
omsg "Ug"
send 77
pkgetpack: Connodata=1
rec h->cntl 73
send 61
state - [INIT code a] (1)
pkgetpack: Connodata=2
rec h->cntl 61
send 57
state - [INIT code a]&[INIT code b] (3)
pkgetpack: Connodata=3
rec h->cntl 53
state - [O.K.] (10)
Proto started g
*** TOP ***  -  role=1, setline - X
gtwvec: dir /usr/spool/uucp/krafla
insert(C.kraflaN0065)  insert C.kraflaN0065 at 0
        return - 8
Wfile - /usr/spool/uucp/krafla/C.kraflaN0065,Jobid = kraflaN0065
Request: strengur!D.stren78b0671 --> krafla!D.stren78b0671 (snorri)
setline - S
wrktype - S
 wmesg 'S' D.stren78b0671 D.stren78b0671 snorri - D.stren78b0671 0666 snorri
send 37777777610
send 37777777620
rmesg - 'S' pkgetpack: Connodata=4
rec h->cntl 41
pkcntl: RR/RJ: Connodata=0
state - [O.K.] (10)
alarm 1
send 37777777620
alarm 2
send 37777777620
alarm 3
send 37777777620
alarm 4
send 37777777620
alarm 5
send 37777777620
alarm 6
send 37777777620
alarm 7
send 37777777620
alarm 8
send 37777777620
alarm 9
send 37777777620
alarm 10
send 37777777620
tries = 10
got FAIL
send 40
send 10
send 10
cntrl - -1
omsg "OOOOOO"
send OO 0,omsg "OOOOOO"
imsg >^P^I^Y*^Q+^POOOOOO^@exit code -1
Conversation Complete: Status FAILED

/* EOF */

There is no documentation whatsoever in the Fine Manuals about how to
interpret all these messages and controls but it seems that the two 
uucicos do have some serious communication difficulties.

uulog gives:
 
uucp krafla  (1/4-9:26:41,1270,0) SUCCEEDED (call to krafla )
uucp krafla  (1/4-9:26:44,1270,0) OK (startup)
snorri krafla kraflaN0065 (1/4-9:26:44,1270,0) REQUEST (strengur!D.stren78b0671 --> krafla!D.stren78b0671 (snorri))
snorri krafla kraflaN0065 (1/4-9:29:42,1270,1) BAD READ (expected 'S' got FAIL)
snorri krafla kraflaN0065 (1/4-9:29:42,1270,1) FAILED (conversation complete)

Now the only thing I can do is init 6 (I don't have to switch the modem off
or anything), and then everything is fine UNTIL somebody uses the modem for
dial-in!

Thanks again,
-- 

Snorri Bergmann, Strengur Consulting Engineers, Reykjavik Iceland
INTERNET: snorri@strengur.is

tron1@tronsbox.UUCP (HIM) (01/05/90)

>same port). Everything works fine (I poll a computer every
>2 hours) *until somebody logs in on that port!!* After that I get FAIL from
>uucico every time it calls and the only cure seems to be to reboot the system.

Ok.. I had the same problems and will post the solution here.

I had FAILS from uucico until a friend of mine sent me that attached program.

AS FAR as I can tell, after a log-in , the port gets LOCKED until something
"pokes" it , this can be done by hand with a "> /dev/foo" as root, or you
can put the following in your inittab or rc files...

*************** /etc/rc2.d/S99poker *********************
(trap '' 1 2 3; /usr/local/bin/poker /dev/acu0 /dev/acu1 /dev/ttyd0 /dev/ttyd
1) 2>&1 >/dev/null &

*************** MAKEFILE FOR POKER.C ********************
poker: poker.c
 cc -O poker.c -s -lc_s -o poker
 mcs -d poker
*********************************************************
************** .C CODE FOR POKER PROGRAM ****************
#include <signal.h>

/* sig_alarm(int sig):
** signal catcher for SIG_ALRM: just reset the signal to be caught again.
*/

int
sig_alarm(sig)
int sig;
{
 (void) signal(sig, sig_alarm);
}

/* int main(int argc, char **argv):
** main line routine: for each argument argv[1]..argv[argc-1], assume it
** is the name of a (device) file, and attempt to open it for writing.
** This *seems* to wake up the 386/ix 2.0.2 asy device driver.  The only
** safeguard is to set an alarm to break us out of the open(), in case the
** driver (or device) is in such a state that it cannot accept any open()
** requests.
**
** Should be invoked from either /etc/rc2.d/S99poker (perferred), or possibly

** directly from /etc/inittab (but fix /etc/conf/cf.d/init.base, or it
** will go away on every kernel installation).
*/
/* Modified on 11/05/89 to not use stderr */

int
main(argc, argv)
int argc;
char **argv;
{
 /* for ever */
 for (;;)
 {
  int i; /* index for the argument list */

  /* for each argument (except our name) */
  for (i = 1; argv[i]; ++i)
  {
   int fd;  /* file descriptor from open() */

   /* setup our signal catcher */
   (void) signal(SIGALRM, sig_alarm);
   /* allow the open 15 seconds to complete */
   alarm(15);
   /* try to open the file for writing */
   fd = open(argv[i], 1);
   /* cancel the alarm */
   alarm(0);
   /* and reset the signal */
   (void) signal(SIGALRM, SIG_DFL);
   /* did it work? */
   if (fd == -1)
   {
    /* no: complain */
    printf("POKER: Can't open %s\n", argv[i]);
    /* and go 'round the loop again */
    continue;
   }
   /* yes: just close it; the driver might wake up now */
   (void) close(fd);
   /* go away for a while so we don't use the whole CPU */
   sleep(15);
  }
 }
 /* no way to get here, so no need for a return */
}

*****************************************************
****************************************************************************
"Perfume and leather baby , you and me together baby,
  what good is living in paradise, if you don't let yourself once or twice."
 -Tiffany  
 
 Kenneth J. Jamieson ---- THE BOSS at Xanadu Enterprises Inc.
      UUCP: tron1@tronsbox.UUCP  BEST PATH ---> uunet!tronsbox!tron1 
      Sysop, Romantic Encounters BBS - (201)759-8450 / (201)759-8568 
****************************************************************************

paul@actrix.co.nz (Paul Gillingwater) (01/08/90)

In article <9@strengur.is> snorri@strengur.is (Snorri Bergmann) writes:

>of trouble using the bi-directional capabilities (dial-in and -out on the
>same port). Everything works fine (I poll a computer every
>2 hours) *until somebody logs in on that port!!* After that I get FAIL from
>uucico every time it calls and the only cure seems to be to reboot the system.

>Any ideas before I post the entire debug script?

What worked for me was to implement MODEMCTL.SHAR which you can obtain
from your nearest source archive (I found it on SIMTEL).  This produces
/etc/modem, which just replaces your uugetty.  Woks just great for me
for dial-in and dial-out, under ISC 386/ix 2.0.2 (without the X5 update).

-- 
Paul Gillingwater, paul@actrix.co.nz

marc@CLIK.QC.CA (Marc Boucher) (01/09/90)

In article <1990Jan8.034943.23122@actrix.co.nz> paul@actrix.co.nz (Paul Gillingwater) writes:

>What worked for me was to implement MODEMCTL.SHAR which you can obtain
>from your nearest source archive (I found it on SIMTEL).  This produces
>/etc/modem, which just replaces your uugetty.  Woks just great for me
>for dial-in and dial-out, under ISC 386/ix 2.0.2 (without the X5 update).
	I use a heavily modified version of modem(1) here too. a detail though:
it doesn't replace the getty, but acts as a front end for it, and spawning it
at the right baud rate upon connection.

-- 
Marc Boucher, sys/netadm @ CLIK Telematique Inc - marc@clik.qc.ca
5144668932_home 5149337161_clik 5149332164_fax  - Postmaster@clik.qc.ca

tneff@bfmny0.UU.NET (Tom Neff) (01/11/90)

In article <25a431cc:576.1comp.unix.i386;1@tronsbox.UUCP> Ken Jamieson
passed on a program called POKER which periodically tries to open
the devices passed as arguments, then sleeps 15 seconds.

This ***FIXES*** an age old nagging problem with the V/386 3.2 asy driver!
I have spent months and tried *everything* and nothing worked consistently
until I installed this.

Hats off for a real fix.

This should probably be cleaned up a bit and posted to comp.sources.misc
so it's archived.
-- 
"The country couldn't run without Prohibition.       ][  Tom Neff
 That is the industrial fact." -- Henry Ford, 1929   ][  tneff@bfmny0.UU.NET