accumulo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Josh Elser <josh.el...@gmail.com>
Subject Re: MiniAccumuloClutser Unit Test Problems
Date Fri, 26 Jun 2015 13:59:38 GMT
Jonathan,

If you're not seeing consistent behavior starting and stopping a 
MiniAccumuloCluster repeatedly, that's a bug. If you can provide a code 
which shows this problem, that'd be a huge help.

If you can get a list of the processes running when you see this happen 
and cross-reference it with what processes should be running, that would 
also go a long way in trying to debug this.

I am a little confused to your specific situation. You said that you 
construct and start a MAC instance in a BeforeClass and stop it in an 
AfterClass, but then you said that you start and stop it for each test. 
Are you saying that after the third construction and use of a MAC, you 
see problems? Or, are you saying that you stop and start each MAC 
instance before you run the @Test methods?

- Josh

Parise, Jonathan wrote:
> Hello,
>
> I have been writing some J-unit tests based on the MiniAccumuloCluster
> class. I’m experiencing some issues when several of the tests run back
> to back. Before I get into the error, let me explain how the tests work
> in general. Also, I am using Accumulo 1.6.2.
>
> Each test has an @BeforeClass method that first creates a new random
> directory. Then makes a new MiniAccumuloCluster instance using that
> directory as the dir parameter. Then, I call MiniAccumuloCluster.start().
>
> There are several @Test methods in each test class. The typical pattern
> for them is that they create any necessary tables, write some data into
> those tables and then scan to verify it was written correctly. Basically
> they are testing that I can serialize and deserialize various types of
> Objects correctly.
>
> Then the test class as an @AfterClass method that calls
> MiniAccumuloCluster.stop(). It also deletes the random directory used by
> the previous test.
>
> The issue I am running into is that generally the first test or two run
> fine. However, the third test usually gets stuck in the
> MiniAccumuloCluster startup. It just keeps complaining about being
> unable to connect. Note that if the test is run independently it passes
> just fine. When run back to back, I see errors like this one repeatedly:
>
> 2015-06-26 09:10:24,352 INFO [main-SendThread(localhost:47046)]
> zookeeper.ClientCnxn (ClientCnxn.java:startConnect(1058)) - Opening
> socket connection to server localhost/127.0.0.1:47046
>
> 2015-06-26 09:10:24,353 WARN [main-SendThread(localhost:47046)]
> zookeeper.ClientCnxn (ClientCnxn.java:run(1185)) - Session
> 0x14e2ffc86d80004 for server null, unexpected error, closing socket
> connection and attempting reconnect
>
> java.net.ConnectException: Connection refused
>
> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
>
> at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
>
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1143)
>
> 2015-06-26 09:10:24,956 INFO [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:startConnect(1058)) - Opening
> socket connection to server localhost/127.0.0.1:10406
>
> 2015-06-26 09:10:24,957 WARN [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:run(1185)) - Session
> 0x14e2ffcb2390004 for server null, unexpected error, closing socket
> connection and attempting reconnect
>
> 2015-06-26 09:10:51,764 INFO [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:startConnect(1058)) - Opening
> socket connection to server localhost/127.0.0.1:10406
>
> 2015-06-26 09:10:51,765 WARN [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:run(1185)) - Session
> 0x14e2ffcb2390004 for server null, unexpected error, closing socket
> connection and attempting reconnect
>
> java.net.ConnectException: Connection refused
>
> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
>
> at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
>
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1143)
>
> 2015-06-26 09:10:52,572 INFO [main-SendThread(localhost:47046)]
> zookeeper.ClientCnxn (ClientCnxn.java:startConnect(1058)) - Opening
> socket connection to server localhost/127.0.0.1:47046
>
> 2015-06-26 09:10:52,573 WARN [main-SendThread(localhost:47046)]
> zookeeper.ClientCnxn (ClientCnxn.java:run(1185)) - Session
> 0x14e2ffc86d80004 for server null, unexpected error, closing socket
> connection and attempting reconnect
>
> java.net.ConnectException: Connection refused
>
> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
>
> at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
>
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1143)
>
> 2015-06-26 09:10:52,890 INFO [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:startConnect(1058)) - Opening
> socket connection to server localhost/127.0.0.1:10406
>
> 2015-06-26 09:10:52,891 WARN [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:run(1185)) - Session
> 0x14e2ffcb2390004 for server null, unexpected error, closing socket
> connection and attempting reconnect
>
> java.net.ConnectException: Connection refused
>
> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
>
> at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
>
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1143)
>
> 2015-06-26 09:10:54,191 INFO [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:startConnect(1058)) - Opening
> socket connection to server localhost/127.0.0.1:10406
>
> 2015-06-26 09:10:54,192 WARN [main-SendThread(localhost:10406)]
> zookeeper.ClientCnxn (ClientCnxn.java:run(1185)) - Session
> 0x14e2ffcb2390004 for server null, unexpected error, closing socket
> connection and attempting reconnect
>
> java.net.ConnectException: Connection refused
>
> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
>
> at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
>
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1143)
>
> 2015-06-26 09:10:54,471 INFO [main-SendThread(localhost:47046)]
> zookeeper.ClientCnxn (ClientCnxn.java:startConnect(1058)) - Opening
> socket connection to server localhost/127.0.0.1:47046
>
> 2015-06-26 09:10:54,471 WARN [main-SendThread(localhost:47046)]
> zookeeper.ClientCnxn (ClientCnxn.java:run(1185)) - Session
> 0x14e2ffc86d80004 for server null, unexpected error, closing socket
> connection and attempting reconnect
>
> In the ZooKeeperServerMain.out I see lines like this repeating several
> thousand times:
>
> 2015-06-26 08:39:44,810 INFO [SyncThread:0] server.NIOServerCnxn
> (NIOServerCnxn.java:finishSessionInit(1580)) - Established session
> 0x14e2fe179eb0000 with negotiated timeout 30000 for client /127.0.0.1:36311
>
> 2015-06-26 08:39:45,278 INFO [ProcessThread:-1]
> server.PrepRequestProcessor (PrepRequestProcessor.java:pRequest(419)) -
> Got user-level KeeperException when processing
> sessionid:0x14e2fe179eb0000 type:create cxid:0x31
> zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error
> Path:/accumulo/87e85c1f-eb40-4695-b11d-67ed88586648/tables/+r/conf
> Error:KeeperErrorCode = NodeExists for
> /accumulo/87e85c1f-eb40-4695-b11d-67ed88586648/tables/+r/conf
>
> 2015-06-26 08:39:45,300 INFO [ProcessThread:-1]
> server.PrepRequestProcessor (PrepRequestProcessor.java:pRequest(419)) -
> Got user-level KeeperException when processing
> sessionid:0x14e2fe179eb0000 type:create cxid:0x33
> zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error
> Path:/accumulo/87e85c1f-eb40-4695-b11d-67ed88586648/tables/!0/conf
> Error:KeeperErrorCode = NodeExists for
> /accumulo/87e85c1f-eb40-4695-b11d-67ed88586648/tables/!0/conf
>
> I’ve thought about putting a Thread.sleep() call after the
> MiniAccumuloCluster.stop() call, but that certainly seems brittle. I’m
> not sure if that would improve the situation.
>
> It seems to me that the MiniAccumuloCluster does not behave well when
> instances are started and stopped several times. I am running the tests
> through Maven using the default test behavior.
>
> Could it be something with Maven? Maybe I need to be more explicit when
> telling it how to run the tests?
>
> Anyone have any insight into what is going wrong here? In general is my
> usage pattern correct for MiniAccumuloCluster?
>
> Thanks,
>
> Jon Parise
>
> Senior Software Engineer
>
> Viz | General Dynamics Missons Systems
>
> *This message and/or attachments may include information subject to GD
> Corporate Policies 07-103 and 07-105 and is intended to be accessed only
> by authorized recipients. Use, storage and transmission are governed by
> General Dynamics and its policies. Contractual restrictions apply to
> third parties. Recipients should refer to the policies or contract to
> determine proper handling. Unauthorized review, use, disclosure or
> distribution is prohibited. If you are not an intended recipient, please
> contact the sender and destroy all copies of the original message.*
>

Mime
View raw message