[ https://issues.apache.org/jira/browse/HIVE-13966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15332238#comment-15332238 ]
Nachiket Vaidya commented on HIVE-13966: ---------------------------------------- [~sircodesalot]: Thank you for your inputs. By "synchronous" I mean running notifications in the same transaction so that if notification fails entire operation fails. As Sravya pointed out that "synchronous" may be misnomer (may be name could be same transaction notifier) I do not know what is the "contract" for metastore listener - if we are supposed to run them after operation is committed/rolled back. We can use the same class hierarchy and will have different config property. > DbNotificationListener: can loose DDL operation notifications > ------------------------------------------------------------- > > Key: HIVE-13966 > URL: https://issues.apache.org/jira/browse/HIVE-13966 > Project: Hive > Issue Type: Bug > Components: HCatalog > Reporter: Nachiket Vaidya > Priority: Critical > > The code for each API in HiveMetaStore.java is like this: > 1. openTransaction() > 2. -- operation-- > 3. commit() or rollback() based on result of the operation. > 4. add entry to notification log (unconditionally) > If the operation is failed (in step 2), we still add entry to notification > log. Found this issue in testing. > It is still ok as this is the case of false positive. > If the operation is successful and adding to notification log failed, the > user will get an MetaException. It will not rollback the operation, as it is > already committed. We need to handle this case so that we will not have false > negatives. -- This message was sent by Atlassian JIRA (v6.3.4#6332)