Sergio Peña created SENTRY-1780:
-----------------------------------

             Summary: FullUpdateInitializer does not kill the threads whenever 
getFullHMSSnapshot throws an exception
                 Key: SENTRY-1780
                 URL: https://issues.apache.org/jira/browse/SENTRY-1780
             Project: Sentry
          Issue Type: Bug
    Affects Versions: sentry-ha-redesign
            Reporter: Sergio Peña
            Assignee: Sergio Peña


Errors may happen inside the FullUpdateInitializer.getFullHMSSnapshot() causing 
to throw an exception. When
this happens, the current threads running are not killed and continue consuming 
resources while they're alive.

We should kill those threads. The information collected by them won't be used 
anymore.

I noticed this issue on the logs:

{noformat}
### HMSFollower 1st run ######

2017-05-23 13:57:56,976 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.service.thrift.HMSFollower.run(HMSFollower.java:208)] 
HMSFollower run is called.        

### Starting to get a snapshot (2 databases found (db2, default) and submitted 
for execution) ###

2017-05-23 13:57:56,978 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer.getFullHMSSnapshot(FullUpdateInitializer.java:396)]
 get full snapshot                          
2017-05-23 13:57:56,979 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer.getFullHMSSnapshot(FullUpdateInitializer.java:401)]
 submit database: db2                           
2017-05-23 13:57:56,979 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer.getFullHMSSnapshot(FullUpdateInitializer.java:401)]
 submit database: default                       

### Thread 1 started: db2 ###

2017-05-23 13:57:56,979 (pool-150-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer$DbTask.doTask(FullUpdateInitializer.java:346)]
 begin thread: db2                                         

### Waiting for db2 thread-1 ###

2017-05-23 13:57:56,979 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer.getFullHMSSnapshot(FullUpdateInitializer.java:416)]
 Waiting for call java.util.concurrent.FutureTa$
k@3b30d168                                                                      
                                                                                
                                            

### Thread 2 started: default ###

2017-05-23 13:57:56,979 (pool-150-thread-2) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer$DbTask.doTask(FullUpdateInitializer.java:346)]
 begin thread: default 

### Thread 1 failed ###                                    
2017-05-23 13:57:57,007 (pool-150-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer$BaseTask$RetryStrategy.exec(FullUpdateInitializer.java:212)]
 Failed to execute task on 1 attempt$
. Sleeping for 1000 ms. Exception: org.apache.thrift.TApplicationException: 
get_database failed: out of sequence response                                   
                                                
2017-05-23 13:57:58,011 (pool-150-thread-1) [ERROR - 
org.apache.sentry.hdfs.FullUpdateInitializer$BaseTask$RetryStrategy.exec(FullUpdateInitializer.java:232)]
 Task did not complete successfully $
fter 1 tries

### Thread 1 failed, and throwing an exception from getFullHMSSnapshot() ###
2017-05-23 13:57:58,011 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer.getFullHMSSnapshot(FullUpdateInitializer.java:418)]
 Call ended org.apache.sentry.hdfs.FullUpdateIn$
tializer$CallResult@7cf642e8                                                    
                                                                                
                                            
2017-05-23 13:57:58,012 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer.getFullHMSSnapshot(FullUpdateInitializer.java:421)]
 throwing exception

### HMSFollower 2nd run ######

2017-05-23 13:57:59,012 (pool-5-thread-1) [DEBUG - 
org.apache.sentry.service.thrift.HMSFollower.run(HMSFollower.java:208)] 
HMSFollower run is called.

### Thread 2 from 1st HMSFollower finished with a failure ####

2017-05-23 13:58:14,722 (pool-150-thread-2) [DEBUG - 
org.apache.sentry.hdfs.FullUpdateInitializer$BaseTask$RetryStrategy.exec(FullUpdateInitializer.java:212)]
 Failed to execute task on 1 attempts
. Sleeping for 1000 ms. Exception: 
org.apache.thrift.transport.TTransportException: java.net.SocketException: 
Socket closed
2017-05-23 13:58:14,725 (pool-150-thread-2) [ERROR - 
org.apache.sentry.hdfs.FullUpdateInitializer$BaseTask$RetryStrategy.exec(FullUpdateInitializer.java:232)]
 Task did not complete successfully a
fter 2 tries
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to