[Date Prev] [Date Index] [Date Next] [Thread Prev] [Thread Index] [Thread Next]

SEGV in conserver ver 8.1.20

Anthony Gialluca agialluc@redhat.com
Wed, 3 Sep 2014 15:11:39 GMT


Hello fellow conserver users,

I wanted to reach out to everone in reference to an
issue that I've been having with conserver ver 8.1.20.

I am hoping you may see something I'm doing wrong or,
hopefully, you could provide some advice or recommendations.

I've been trying to use a 'task' but I keep getting
SEGV core dumps.  The following is long and I apologize,
but wanted you to get the necessary information.

I've configured conserver.cf in this manner (please note I've
truncated it to the relevant parts, passwords and hostnames
have been changed):

--- cut here ----
task a {
    cmd "/usr/bin/ipmitool -I lanplus -H Q -U root -P XXXYYY chassis power on";
    confirm yes;
    description "Power On";
    subst Q=hs;
}
task b {
    cmd "/usr/bin/ipmitool -I lanplus -H Q -U root -P XXXYYY chassis power off";
    confirm yes;
    description "Power Off";
    subst Q=hs;
}
task c {
    cmd "/usr/bin/ipmitool -I lanplus -H Q -U root -P XXXYYY chassis power reset";
    confirm yes;
    description "Power Reset";
    subst Q=hs;
}
task d {
    cmd "/usr/bin/ipmitool -I lanplus -H Q -U root -P XXXYYY chassis power status";
    confirm no;
    description "Power Status";
    subst Q=hs;
}
default dell-ipmi-default-PW {
    type exec;
    exec "/usr/bin/ipmitool -I lanplus -H Q -U root -P XXXYYY sol deactivate && echo 'Disconnected' ;ulimit -v 31720 ; /usr/bin/ipmitool -I lanplus -H Q -U root -P XXXYYY sol activate";
    execsubst Q=hs;
    tasklist a,b,c,d;
}
default * { include global; master conserver.com; }

console system01.com { include dell-ipmi-default-PW; system01.com; }
--- cut here ----

I can connect via 'console' command to system01.com.
I can see the list of tasks correctly via ^EC!? as in:

$ console -lroot system01.com
Enter root@conserver.com's password:
[Enter `^Ec?' for help]
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel 2.6.32-431.el6.x86_64 on an x86_64

system01.com login:
^EC!?
[task list]
 a - `Power On'
 b - `Power Off'
 c - `Power Reset'
 d - `Power Status'
 
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel 2.6.32-431.el6.x86_64 on an x86_64

system01.com login:
However every attempt to execute a task results in a disconnect.

On the server side the conserverd that is to run the task is exiting on an 'invalid pointer' as in:

*** glibc detected *** /usr/sbin/conserver: free(): invalid pointer: 0x00007fffa79b9f10 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3351476166]
/usr/sbin/conserver[0x421bee]
/usr/sbin/conserver[0x40ba74]
/usr/sbin/conserver[0x40d993]
/usr/sbin/conserver[0x410131]
/usr/sbin/conserver[0x411079]
/usr/sbin/conserver[0x413b9f]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x335141ed1d]
/usr/sbin/conserver[0x403d19]
======= Memory map: ========
00400000-00436000 r-xp 00000000 fd:01 926441                             /usr/sbin/conserver
   >  Large Memory Map outputs here<


I tried setting up a command shell to eliminate the possibility that
ipmitool put output to stdout was the problem.  All the task was to
do was to echo "PING" to a file.

---- cut here -----
#!/bin/bash

echo "PING" 2>&1 > /tmp/OUTPUT
---- cut here -----

Modified the task 'c' in /etc/conserver.cf to:
    cmd "/tmp/run.sh Q";

But still got the SEGV even with this trivial task.

By recompiling the source with added debug statements I've tracked down
the SEGV to FallBack() and/or GetPseudoTTY().   This is as far as I can track it.

Thanks in Advance,
-Tony

-- 
---------------------------------------------------------------
Anthony Gialluca

email: agialluc@redhat.com
Westford Seat: 1E221