-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31239/
-----------------------------------------------------------

Review request for Ambari, Nate Cole and Tom Beerbower.


Bugs: AMBARI-9736
    https://issues.apache.org/jira/browse/AMBARI-9736


Repository: ambari


Description
-------

When using MySQL, Ambari appears to try to use invalid connections about about 
8 hours of use.

EclipseLink does not appear to correctly handle connections that have been 
invalidated by MySQL after the default timeout time of 8 hours.

STR:
Set MySQL's timeouts via /etc/my.cnf
[mysqld]
interactive_timeout=120
wait_timeout=120

Verify the connection timeouts are lowered
mysql> SHOW VARIABLES LIKE "%timeout%";
+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| delayed_insert_timeout     | 300      |
| innodb_lock_wait_timeout   | 50       |
| innodb_rollback_on_timeout | OFF      |
| interactive_timeout        | 120      |
| lock_wait_timeout          | 31536000 |
| net_read_timeout           | 30       |
| net_write_timeout          | 60       |
| slave_net_timeout          | 3600     |
| wait_timeout               | 120      |
+----------------------------+----------+
10 rows in set (0.00 sec)

Launch Ambari and wait a few minutes. The exceptions will begin and Ambari will 
stop working properly.

The fix here was to use c3p0 (already included via Quartz) instead of 
EclipseLink's internal pool management. Since we're so close to release, I felt 
that only changing mysql was the right option, with the ability to instruct 
Ambari to use c3p0 for other databases if needed.


Diffs
-----

  
ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
 495c1e4 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
 3b59fed 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
 85ae85b 
  
ambari-server/src/main/java/org/apache/ambari/server/orm/EclipseLinkSessionCustomizer.java
 PRE-CREATION 
  
ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionSchedulerImpl.java
 324ee27 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
 71049b2 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java
 2ccf16b 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog151.java
 72305c5 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog160.java
 cd01779 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog161.java
 f5afb46 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
 47f4587 
  ambari-server/src/main/resources/META-INF/persistence.xml d89f5d5 
  
ambari-server/src/test/java/org/apache/ambari/server/configuration/ConfigurationTest.java
 0f7de36 

Diff: https://reviews.apache.org/r/31239/diff/


Testing
-------

Verification that the issue has been resolved in a reproduction environment. 
Also, verification that Ambari's pool stays a consistent size:

mysql> show processlist;
+-----+--------+--------------------+--------+---------+------+-------+------------------+
| Id  | User   | Host               | db     | Command | Time | State | Info    
         |
+-----+--------+--------------------+--------+---------+------+-------+------------------+
| 340 | ambari | 192.168.64.1:53549 | ambari | Sleep   |   66 |       | NULL    
         |
| 341 | ambari | 192.168.64.1:53557 | ambari | Sleep   |   30 |       | NULL    
         |
| 346 | ambari | 192.168.64.1:53675 | ambari | Sleep   |    2 |       | NULL    
         |
| 347 | ambari | 192.168.64.1:53676 | ambari | Sleep   |   26 |       | NULL    
         |
| 348 | ambari | 192.168.64.1:53677 | ambari | Sleep   |    1 |       | NULL    
         |
| 349 | ambari | 192.168.64.1:53727 | ambari | Sleep   |    2 |       | NULL    
         |
| 350 | root   | localhost          | NULL   | Query   |    0 | NULL  | show 
processlist |
+-----+--------+--------------------+--------+---------+------+-------+------------------+
7 rows in set (0.00 sec)

New tests written to cover configuration options.


Thanks,

Jonathan Hurley

Reply via email to