Description:
When trying to use SSL for a linux agent to connect to a Windows monitor, the dies with signal 11 and will never connect. Non SSL works fine.
Windows monitor 2.1.1.1141
Linux Agent: 2.1.1.1141
or
Windows monitor: 2.0.5.7153
Linux Agent: 2.1.0.1093
agent debug will show:
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log(): CAfile: none
CApath: /etc/ssl/certs/
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log(): SSLv3, TLS handshake, Client hello (1):
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log():
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log(): SSLv3, TLS handshake, Server hello (2):
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log():
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log(): SSLv3, TLS handshake, CERT (11):
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log():
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log(): SSLv3, TLS handshake, Server key exchange (12):
2010-02-22 15:42:25: (debug) network-io.c:130:curl_to_chassis_log():
2010-02-22 15:42:25: (debug) chassis.c:282:proc_keepalive(): 12855 returned: 12855
2010-02-22 15:42:25: (message) chassis.c:304:proc_keepalive(): [angel] PID=12855 died on signal=11 (it used 0 kBytes max) ... waiting 3min before restart
repeatedly...
valgrind --trace-children=yes ./bin/mysql-monitor-agent --defaults-file=etc/mysql-monitor-agent.ini
will produce
==7240== Thread 2:
==7240== Syscall param write(buf) points to uninitialised byte(s)
==7240== at 0x66FEEB: (within /lib/libpthread-2.10.2.so)
==7240== by 0x47C7DA7: (within /opt/mysql/enterprise/agent/lib/mysql-proxy/libcrypto.so.0.9.8)
==7240== Address 0x42edae7 is 15 bytes inside a block of size 18,698 alloc'd
==7240== at 0x4006F3D: malloc (vg_replace_malloc.c:207)
==7240== by 0x476FDB7: (within /opt/mysql/enterprise/agent/lib/mysql-proxy/libcrypto.so.0.9.8)
==7240==
==7240== Invalid read of size 4
==7240== at 0x47A03E1: (within /opt/mysql/enterprise/agent/lib/mysql-proxy/libcrypto.so.0.9.8)
==7240== Address 0xb00484cc is not stack'd, malloc'd or (recently) free'd
==7240==
==7240== Process terminating with default action of signal 11 (SIGSEGV)
==7240== Access not within mapped region at address 0xB00484CC
==7240== at 0x47A03E1: (within /opt/mysql/enterprise/agent/lib/mysql-proxy/libcrypto.so.0.9.8)
How to repeat:
Install windows monitor with ssl support. Install linux agent, configure to connect to the monitor with SSL. Agent log-level=debug will show signal 11 after ssl handshake.
Suggested fix:
Linux agent should be able to use SSL with windows monitor. Cross platform testing of agent/monitor combinations with SSL