OOM in mysql-percona, memory leak?
OOM is usually a result of bad my.cnf config and actually your my.cnf overcommits memory big time. Run mysqltuner.pl to get a sense of what parameters needs tweaking. Many of your configuration values are way high and some of them doesn't even make sense.

For example: 

1) binlog_cache_size 3Gb? default value is 32768 bytes(!)

According to dev.mysql.org:


  The size of the cache to hold changes to the binary log during a
  transaction. A binary log cache is allocated for each client if the
  server supports any transactional storage engines and if the server
  has the binary log enabled (--log-bin option). If you often use large
  transactions, you can increase this cache size to get better
  performance.


Do you have 3GB big transactions? 

2) Per connection buffers: 

read_buffer_size = 2M
read_rnd_buffer_size = 16M


Why are you optimizing for random read? These values are way too high even for a very heavily used databases. 

You can easily drop these under 1MB. Maybe 256K as a start and increase if necessary.

Same goes for sort_buffer_size and join_buffer_size. 1Mb for the former and 128kb for the latter should be sufficient if your tables are well indexed for the common queries.

Especially with max_connections = 40000 these values can easily run your out of memory.

+) Innodb

innodb_log_buffer_size = 64M


Do you actually need this? You should be able to drop this to a much lower level and like 8MB or 16Mb and monitor the Innodb_log_wait status variable. 

innodb_log_files_in_group = 3


You don't get any benefit of having 3. Keep it to 2.