Post by mbennettPost by CJA SCO 5.0.5 customer reports to me that and new utility I created that
uses pseudo terminals is causing the license manager to "blow up" and
die with a fatal error to the console. They are unable to "capture"
the exact LM fatal message written only to the system console.
Does anyone know if use of pseudo terminals can violate the number of
users license on a SCO 5.0.5 system?
cj
It's possible you have an inadequate number of pseudo ttys defined.
That will create all kinds of odd errors in strange places. Check /
var/adm/syslog for errors, or just run 'netconfig' and double the
number of pseudo ttys. Highlight your TCP/IP connection, then select
Protocol | Modify. The default number is 64 and you can really goose
it without any harm other than possibly having a bunch of unused
device entries. I think I'd increase it to 256. You will need to re-
link and reboot when you do this.
Mark
Thanks, Mark. The system is already configured for 524 pseudo
terminals. The application I created uses UNIX Domain Sockets as
well, which may also conflict with the policy manager if all UDS's are
consumed. However, the system is configured for 32 UNIX Domain
Sockets, and the max in use when my application is run is 16. My app
only uses 1 UDS, so I doubt that is the conflict.
However, I have learned that the failure is isolated to the SCO Bourne
shell (sh) when run from a while/do/done loop that is reading from a
redirected input file, example follows. Pty is basically an
implementation Richard Steven's forkpty() method.
#!/bin/sh
while read VAR
do
pty command_line_arguments
done < some_file
The above will cause the either the policy manager or the license
manager "crash", requiring a reboot from the system console, all IP
services are disabled.
However, if I change the above script to a for/do/done loop, the pty
command does not affect the LM/PM, and the symptoms simply go away.
#!/bin/sh
for VAR in `cat some_file`
do
pty command_line_arguments
done
And, the really odd thing is, if I change to the Korn shell in the
first script, the symptoms disappear and LM/PM do not crash.
#!/bin/ksh
while read VAR
do
pty command_line_arguments
done
The above script works fine under the Korn shell, using a for/do/done
loop in the Bourne shell works fine, but if I use a while/do/done to
run my pty application in a Bourne shell the LM/PM crashes every time.
I am lost as to why.
cj