Mailing List Archive

Console commands on AIX
Hello,

Don't know if anyone has experience with conserver and AIX 5.1, but I'm
seeing a weird problem and I hope someone can help...

I compiled conserver 7.2.1 conserver and console apps with the AIX C
compiler. As an initial test, I set it up using a terminal server, with an
entry in conserver.cf as follows:

c5bn15:!123.45.67.89:3002:&

This worked fine. I was able to run the console app and connect to the
target node without a problem. So far so good. The problem came when I
tried to change the config file to invoke a command (with the pipe "|"
character). For a follow-up test, I changed the config file to use the
same terminal server, except now I explicitly telnet to the terminal server
and port using the pipe character and the telnet command as follows:

c5bn15:|/bin/telnet 123.45.67.89 3002::&


This did not work as well. I got a message "Failed to allocate pseudo-tty:
No such file or directory". See below:


conserver-7.2.1 -Dv -p 782
conserver-7.2.1 (18998): conserver.com version 7.2.1
conserver-7.2.1 (18998): Started as `root' by `root' at Fri May 3 08:27:18
2002
conserver-7.2.1 (18998): DEBUG: Bind address set to `0.0.0.0'
conserver-7.2.1 (18998): DEBUG: readLine: returning
<LOGDIR=/var/log/consoles>
conserver-7.2.1 (18998): DEBUG: readLine: returning <c5bn15:|/bin/telnet
123.45.67.89 3002::&>
conserver-7.2.1 (18998): c5bn15 with command `/bin/telnet 123.45.67.89
3002' logged to /var/log/consoles/c5bn15
conserver-7.2.1 (18998): DEBUG: readLine: returning <%%>
conserver-7.2.1 (18998): DEBUG: readLine: returning <allowed: pok.ibm.com>
conserver-7.2.1 (18998): DEBUG: readLine: returning <<NULL>>
conserver-7.2.1 (4772): DEBUG: File I/O: Encapsulated fd 4 type 1
conserver-7.2.1 (4772): DEBUG: maxfiles=32766
conserver-7.2.1 (4772): DEBUG: File I/O: Opened `/var/log/consoles/c5bn15'
as fd 5
conserver-7.2.1 (4772): DEBUG: File I/O: Wrote 18 bytes to fd 5
conserver-7.2.1 (4772): DEBUG: File I/O: Wrote 24 bytes to fd 5
conserver-7.2.1 (4772): DEBUG: File I/O: Wrote 3 bytes to fd 5
conserver-7.2.1 (4772): Failed to allocate pseudo-tty: No such file or
directory
conserver-7.2.1 (4772): DEBUG: File I/O: Wrote 20 bytes to fd 5
conserver-7.2.1 (4772): DEBUG: File I/O: Wrote 24 bytes to fd 5
conserver-7.2.1 (4772): DEBUG: File I/O: Wrote 3 bytes to fd 5
conserver-7.2.1 (4772): DEBUG: File I/O: Closed fd 5
conserver-7.2.1 (18998): group #0 pid 4772 on port 33211
conserver-7.2.1 (18998): access type 'a' for "pok.ibm.com"
^Cconserver-7.2.1 (18998): DEBUG: Sending pid 4772 signal 15
conserver-7.2.1 (18998): DEBUG: Group: id=0 pid=33211, port=4772,
imembers=1
conserver-7.2.1 (18998): DEBUG: server=c5bn15, dfile=/dev/null,
lfile=/var/log/consoles/c5bn15
conserver-7.2.1 (18998): DEBUG: mark=0, nextMark=0, breakType=1
conserver-7.2.1 (18998): DEBUG: isNetworkConsole=0, networkConsoleHost
=<empty>
conserver-7.2.1 (18998): DEBUG: networkConsolePort=0, telnetState=0,
autoReup=0
conserver-7.2.1 (18998): DEBUG: baud=Local, parity=
conserver-7.2.1 (18998): DEBUG: fvirtual=1, acslave=/dev/null,
pccmd=/bin/telnet 123.45.67.89 3002, ipid=-1
conserver-7.2.1 (18998): DEBUG: nolog=0, fdtty=-1, activitylog=0,
breaklog=0
conserver-7.2.1 (18998): DEBUG: fup=0, fronly=0
conserver-7.2.1 (18998): DEBUG: ------
conserver-7.2.1 (18998): Stopped at Fri May 3 08:27:24 2002
conserver-7.2.1 (4772): DEBUG: Group: id=0 pid=33211, port=4772, imembers=1
conserver-7.2.1 (4772): DEBUG: server=c5bn15, dfile=/dev/null,
lfile=/var/log/consoles/c5bn15
conserver-7.2.1 (4772): DEBUG: mark=0, nextMark=0, breakType=1
conserver-7.2.1 (4772): DEBUG: isNetworkConsole=0, networkConsoleHost
=<empty>
conserver-7.2.1 (4772): DEBUG: networkConsolePort=0, telnetState=0,
autoReup=0
conserver-7.2.1 (4772): DEBUG: baud=Local, parity=
conserver-7.2.1 (4772): DEBUG: fvirtual=1, acslave=/dev/null,
pccmd=/bin/telnet 123.45.67.89 3002, ipid=-1
conserver-7.2.1 (4772): DEBUG: nolog=0, fdtty=-1, activitylog=0,
breaklog=0
conserver-7.2.1 (4772): DEBUG: fup=0, fronly=0
conserver-7.2.1 (4772): DEBUG: ------


At this point I recompiled a debug version and started poking around. The
file it's choking on is "/dev/ptmx", it isn't present on the system,
although the flags in config.h seem to indicate it should be (AIX does not
currently support this pty flavor). At this point, I edited config.h and
commented out the definition of HAVE_PTSNAME, simply to have the code
bypass the ptmx portion and use another method of allocating a pty. This
worked a little better, but when I run console, the app doesn't appear to
connect to the terminal server. If I hit return, I just get linfeeds on
the screen. Checking the process list, it doesn't look like the telnet
session is ever started. Here's the conserver output during
initialization, the connect attempt, and after killing it with ctrl-C:


conserver-7.2.1.dbg -Dv -p 782
conserver-7.2.1.dbg (4770): conserver.com version 7.2.1
conserver-7.2.1.dbg (4770): Started as `root' by `root' at Fri May 3
08:17:53 2002
conserver-7.2.1.dbg (4770): DEBUG: Bind address set to `0.0.0.0'
conserver-7.2.1.dbg (4770): DEBUG: readLine: returning
<LOGDIR=/var/log/consoles>
conserver-7.2.1.dbg (4770): DEBUG: readLine: returning <c5bn15:|/bin/telnet
123.45.67.89 3002::&>
conserver-7.2.1.dbg (4770): c5bn15 with command `/bin/telnet 123.45.67.89
3002' logged to /var/log/consoles/c5bn15
conserver-7.2.1.dbg (4770): DEBUG: readLine: returning <%%>
conserver-7.2.1.dbg (4770): DEBUG: readLine: returning <allowed:
pok.ibm.com>
conserver-7.2.1.dbg (4770): DEBUG: readLine: returning <<NULL>>
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Encapsulated fd 4 type 1
conserver-7.2.1.dbg (18666): DEBUG: maxfiles=32766
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Opened
`/var/log/consoles/c5bn15' as fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 18 bytes to fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 24 bytes to fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 3 bytes to fd 5
conserver-7.2.1.dbg (5206): DEBUG: maxfiles=32766
conserver-7.2.1.dbg (18666): c5bn15 has pid 5206 on /dev/pts/1
conserver-7.2.1.dbg (4770): group #0 pid 18666 on port 33208
conserver-7.2.1.dbg (4770): access type 'a' for "pok.ibm.com"
conserver-7.2.1.dbg (4770): DEBUG: File I/O: Encapsulated fd 5 type 1
conserver-7.2.1.dbg (4770): DEBUG: Access check:
hostname=c5aix03.ppd.pok.ibm.com, ip=123.45.67.2
conserver-7.2.1.dbg (4770): DEBUG: Access check: who=pok.ibm.com,
trust=a
conserver-7.2.1.dbg (4770): DEBUG: Access check:
name=c5aix03.ppd.pok.ibm.com
conserver-7.2.1.dbg (4770): DEBUG: Access check: name=ppd.pok.ibm.com
conserver-7.2.1.dbg (4770): DEBUG: Access check: name=pok.ibm.com
conserver-7.2.1.dbg (19424): DEBUG: File I/O: Wrote 4 bytes to fd 5
conserver-7.2.1.dbg (4770): DEBUG: File I/O: Closed fd 5
conserver-7.2.1.dbg (19424): DEBUG: File I/O: Read 13 bytes from fd 5
conserver-7.2.1.dbg (19424): DEBUG: File I/O: Wrote 5 bytes to fd 5
conserver-7.2.1.dbg (19424): DEBUG: File I/O: Wrote 2 bytes to fd 5
conserver-7.2.1.dbg (19424): DEBUG: File I/O: Closed fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Encapsulated fd 7 type 1
conserver-7.2.1.dbg (18666): DEBUG: Access check:
hostname=c5aix03.ppd.pok.ibm.com, ip=123.45.67.2
conserver-7.2.1.dbg (18666): DEBUG: Access check: who=pok.ibm.com,
trust=a
conserver-7.2.1.dbg (18666): DEBUG: Access check:
name=c5aix03.ppd.pok.ibm.com
conserver-7.2.1.dbg (18666): DEBUG: Access check:
name=ppd.pok.ibm.com
conserver-7.2.1.dbg (18666): DEBUG: Access check: name=pok.ibm.com
conserver-7.2.1.dbg (18666): DEBUG: Client acid initialized to `<unknown>
@c5aix03.ppd.pok.ibm.com'
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 4 bytes to fd 7
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Read 3 bytes from fd 7
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 1 byte to fd 7
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 8 bytes to fd 7
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Read 6 bytes from fd 7
conserver-7.2.1.dbg (18666): DEBUG: Client acid reinitialized to
`root@c5aix03.ppd.pok.ibm.com'
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 7 bytes to fd 7
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Read 8 bytes from fd 7
conserver-7.2.1.dbg (18666): DEBUG: readLine: returning <*any*::any>
conserver-7.2.1.dbg (18666): User root@c5aix03.ppd.pok.ibm.com logging into
server c5bn15
conserver-7.2.1.dbg (18666): c5bn15: login root@c5aix03.ppd.pok.ibm.com
[Fri May 3 08:18:53 2002]
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 11 bytes to fd 7
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Read 1 byte from fd 7
conserver-7.2.1.dbg (18666): DEBUG: Read 2 bytes from fd 6
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 2 bytes to fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 2 bytes to fd 7
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Read 1 byte from fd 7
conserver-7.2.1.dbg (18666): DEBUG: Read 2 bytes from fd 6
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 2 bytes to fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 2 bytes to fd 7
^Cconserver-7.2.1.dbg (4770): DEBUG: Sending pid 18666 signal 15
conserver-7.2.1.dbg (4770): DEBUG: Group: id=0 pid=33208, port=18666,
imembers=1
conserver-7.2.1.dbg (4770): DEBUG: server=c5bn15, dfile=/dev/null,
lfile=/var/log/consoles/c5bn15
conserver-7.2.1.dbg (4770): DEBUG: mark=0, nextMark=0, breakType=1
conserver-7.2.1.dbg (4770): DEBUG: isNetworkConsole=0, networkConsoleHost
=<empty>
conserver-7.2.1.dbg (4770): DEBUG: networkConsolePort=0, telnetState=0,
autoReup=0
conserver-7.2.1.dbg (4770): DEBUG: baud=Local, parity=
conserver-7.2.1.dbg (4770): DEBUG: fvirtual=1, acslave=/dev/null,
pccmd=/bin/telnet 123.45.67.89 3002, ipid=-1
conserver-7.2.1.dbg (4770): DEBUG: nolog=0, fdtty=-1, activitylog=0,
breaklog=0
conserver-7.2.1.dbg (4770): DEBUG: fup=0, fronly=0
conserver-7.2.1.dbg (4770): DEBUG: ------
conserver-7.2.1.dbg (4770): Stopped at Fri May 3 08:21:49 2002
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 38 bytes to fd 7
conserver-7.2.1.dbg (18666): DEBUG: Sending pid 5206 signal 1
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 20 bytes to fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 24 bytes to fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Wrote 3 bytes to fd 5
conserver-7.2.1.dbg (18666): DEBUG: File I/O: Closed fd 5
conserver-7.2.1.dbg (18666): DEBUG: Group: id=0 pid=33208, port=18666,
imembers=1
conserver-7.2.1.dbg (18666): DEBUG: server=c5bn15, dfile=/dev/ptc/1,
lfile=/var/log/consoles/c5bn15
conserver-7.2.1.dbg (18666): DEBUG: mark=0, nextMark=0, breakType=1
conserver-7.2.1.dbg (18666): DEBUG: isNetworkConsole=0,
networkConsoleHost=<empty>
conserver-7.2.1.dbg (18666): DEBUG: networkConsolePort=0, telnetState=0,
autoReup=0
conserver-7.2.1.dbg (18666): DEBUG: baud=Local, parity=
conserver-7.2.1.dbg (18666): DEBUG: fvirtual=1, acslave=/dev/pts/1,
pccmd=/bin/telnet 123.45.67.89 3002, ipid=-1
conserver-7.2.1.dbg (18666): DEBUG: nolog=0, fdtty=-1, activitylog=0,
breaklog=0
conserver-7.2.1.dbg (18666): DEBUG: fup=0, fronly=0
conserver-7.2.1.dbg (18666): DEBUG: ------

Should I have changed a different env variable to work around the ptmx
problem? Could there be a problem with the "configure" utility, which
seemed to configure the compile environment to think that ptmx was present?

Any help or debug tips appreciated!

Thanks,

Bill LePera
IBM Server Group, Poughkeepsie, NY
Re: Console commands on AIX [ In reply to ]
On Fri, May 03, 2002 at 09:34:19AM -0400, William P LePera wrote:
> Hello,
>
> Don't know if anyone has experience with conserver and AIX 5.1, but I'm
> seeing a weird problem and I hope someone can help...

i haven't...but i have a guess as to something to try. instead of
changing the HAVE_PTSNAME config.h option, edit conserver/fallback.c
and change the /dev/ptmx references to /dev/ptc (there should be two).
i'm not sure if this will work, but it looks like the right thing for
aix 5 (looks like aix 3, 4 and 5 all have different methods of
allocating ptys). all this is loosely based on docs i found on
http://publibn.boulder.ibm.com...so, hopefully i read them right.

> Should I have changed a different env variable to work around the ptmx
> problem? Could there be a problem with the "configure" utility, which
> seemed to configure the compile environment to think that ptmx was present?

if the change above works, it'll be an easy fix to check for /dev/ptc
and use that instead of /dev/ptmx (seems safer than hardcoding in
another _AIX check in the code).

> Any help or debug tips appreciated!

hope that helps! let me know how it goes...

Bryan