Bug #51537 Linux Agent , WIndows Monitor + SSL = signal 11
Submitted: 26 Feb 2010 4:09 Modified: 3 Mar 2010 21:50
Reporter: Shannon Wade Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Enterprise Monitor: Agent Severity:S2 (Serious)
Version:2.1.0.1144 OS:Linux
Assigned to: MEM Agent Devs CPU Architecture:Any

[26 Feb 2010 4:09] Shannon Wade
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
[26 Feb 2010 20:30] Enterprise Tools JIRA Robot
Gary Whizin writes: 
Assuming this is 2.1.0.1144 agent (we never released a 2.1.0.1141 agent)