Return-Path: X-Original-To: apmail-accumulo-notifications-archive@minotaur.apache.org Delivered-To: apmail-accumulo-notifications-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 37FAE18029 for ; Tue, 11 Aug 2015 13:07:09 +0000 (UTC) Received: (qmail 65413 invoked by uid 500); 11 Aug 2015 13:06:46 -0000 Delivered-To: apmail-accumulo-notifications-archive@accumulo.apache.org Received: (qmail 65316 invoked by uid 500); 11 Aug 2015 13:06:46 -0000 Mailing-List: contact notifications-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jira@apache.org Delivered-To: mailing list notifications@accumulo.apache.org Received: (qmail 64943 invoked by uid 99); 11 Aug 2015 13:06:45 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Aug 2015 13:06:45 +0000 Date: Tue, 11 Aug 2015 13:06:45 +0000 (UTC) From: "Keith Turner (JIRA)" To: notifications@accumulo.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (ACCUMULO-3954) TabletServer advertises existence before acquiring its lock MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/ACCUMULO-3954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14681773#comment-14681773 ] Keith Turner commented on ACCUMULO-3954: ---------------------------------------- I think what {{announceExistence}} is doing is ok. The lock node created at [TabletServer.java line 3212|https://github.com/apache/accumulo/blob/1.6.3/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java#L3212] is as a child node of the node created at [TabletServer.java line 3178|https://github.com/apache/accumulo/blob/1.6.3/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java#L3178]. It think the code thats reading this data from zookeeper is doing it wrong. To find live tservers, need to read the lock data from the children of {{Constants.ZTSERVERS/*}} > TabletServer advertises existence before acquiring its lock > ----------------------------------------------------------- > > Key: ACCUMULO-3954 > URL: https://issues.apache.org/jira/browse/ACCUMULO-3954 > Project: Accumulo > Issue Type: Bug > Components: tserver > Affects Versions: 1.6.3, 1.7.0 > Reporter: Josh Elser > Assignee: Josh Elser > Priority: Trivial > Fix For: 1.8.0 > > > Noticed this error today on the monitor after restarting Accumulo: > {noformat} > 2015-08-06 16:57:10,788 [tserver.TabletServer] WARN : tserver:hostname Got getScans message from master before lock acquired, ignoring... > 2015-08-06 16:57:10,791 [tserver.TabletServer$ThriftClientHandler] ERROR: tserver:jelser-phoenix-1.openstacklocal Lock not acquired > java.lang.RuntimeException: Lock not acquired > at org.apache.accumulo.tserver.TabletServer$ThriftClientHandler.checkPermission(TabletServer.java:1400) > at org.apache.accumulo.tserver.TabletServer$ThriftClientHandler.getActiveScans(TabletServer.java:1622) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at org.apache.accumulo.core.trace.wrappers.RpcServerInvocationHandler.invoke(RpcServerInvocationHandler.java:39) > at org.apache.accumulo.server.rpc.RpcWrapper$1.invoke(RpcWrapper.java:47) > at com.sun.proxy.$Proxy21.getActiveScans(Unknown Source) > at org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$getActiveScans.getResult(TabletClientService.java:2864) > at org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$getActiveScans.getResult(TabletClientService.java:2848) > at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) > at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) > at org.apache.accumulo.server.rpc.TimedProcessor.process(TimedProcessor.java:63) > at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:516) > at org.apache.accumulo.server.rpc.CustomNonBlockingServer$1.run(CustomNonBlockingServer.java:78) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35) > at java.lang.Thread.run(Thread.java:745) > {noformat} > I don't think this should be bubbling up to the monitor as an error. I believe it is an entirely normal race condition that can happen. If the tabletserver is not ready to accept an RPC, it can log a message at debug. The error condition would be a tabletserver never acquiring its lock (and thus should be handled elsewhere). -- This message was sent by Atlassian JIRA (v6.3.4#6332)