2014-12-24 63 views
0

我尝试为我们开发的软件创建一个开发环境。为此,我使用Docker和Boot2docker,因为我在mac(Yosemite)上工作。 我们在产品中使用了Hazelcast,但当我“码头化”它时,我遇到了问题。 在这里Hazelcast第一连接是发生了什么:Boot2Docker Hazelcast和ulimit

INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Hazelcast Community Edition 3.2.2 (20140527) starting at Address[172.17.0.2]:5601 
déc. 24, 2014 2:11:27 PM com.hazelcast.system 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Copyright (C) 2008-2014 Hazelcast.com 
déc. 24, 2014 2:11:27 PM com.hazelcast.core.LifecycleService 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Address[172.17.0.2]:5601 is STARTING 
déc. 24, 2014 2:11:27 PM com.hazelcast.instance.Node 
AVERTISSEMENT: [172.17.0.2]:5601 [akio] [3.2.2] No join method is enabled! Starting standalone. 
déc. 24, 2014 2:11:27 PM com.hazelcast.core.LifecycleService 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Address[172.17.0.2]:5601 is STARTED 
déc. 24, 2014 2:12:30 PM com.hazelcast.nio.SocketAcceptor 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Accepting socket connection from /127.0.0.1:55736 
déc. 24, 2014 2:12:30 PM com.hazelcast.nio.TcpIpConnectionManager 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] 5601 accepted socket connection from /127.0.0.1:55736 
déc. 24, 2014 2:12:30 PM com.hazelcast.client.AuthenticationRequest 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Received auth from Connection [/127.0.0.1:55736 -> null] live=true, client=true, type=JAVA_CLIENT, successfully authenticated 
déc. 24, 2014 2:12:30 PM com.hazelcast.nio.SocketAcceptor 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Accepting socket connection from /172.17.0.2:57088 
déc. 24, 2014 2:12:30 PM com.hazelcast.nio.TcpIpConnectionManager 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] 5601 accepted socket connection from /172.17.0.2:57088 
déc. 24, 2014 2:12:30 PM com.hazelcast.client.AuthenticationRequest 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Received auth from Connection [/172.17.0.2:57088 -> null] live=true, client=true, type=JAVA_CLIENT, successfully authenticated 
déc. 24, 2014 2:12:31 PM com.hazelcast.partition.InternalPartitionService 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Initializing cluster partition table first arrangement... 
déc. 24, 2014 2:13:42 PM com.hazelcast.nio.TcpIpConnection 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Connection [Address[172.17.0.2]:57088] lost. Reason: Socket explicitly closed 
déc. 24, 2014 2:13:42 PM com.hazelcast.nio.TcpIpConnection 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Connection [Address[127.0.0.1]:55736] lost. Reason: Socket explicitly closed 
déc. 24, 2014 2:13:42 PM com.hazelcast.initializer 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Destroying node initializer. 
déc. 24, 2014 2:13:42 PM com.hazelcast.instance.Node 
INFOS: [172.17.0.2]:5601 [akio] [3.2.2] Hazelcast Shutdown is completed in 111 ms. 
java.lang.OutOfMemoryError: unable to create new native thread 
déc. 24, 2014 2:13:42 PM com.hazelcast.concurrent.lock.operations.LockOperation 
GRAVE: [172.17.0.2]:5601 [akio] [3.2.2] unable to create new native thread 
java.lang.OutOfMemoryError: unable to create new native thread 
    at java.lang.Thread.start0(Native Method) 
    at java.lang.Thread.start(Thread.java:714) 
    at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949) 
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1360) 
    at com.hazelcast.spi.impl.BasicInvocation$InvocationFuture.runAsynchronous(BasicInvocation.java:617) 
    at com.hazelcast.spi.impl.BasicInvocation$InvocationFuture.set(BasicInvocation.java:668) 
    at com.hazelcast.spi.impl.BasicInvocation.notify(BasicInvocation.java:303) 
    at com.hazelcast.spi.impl.BasicPartitionInvocation.notify(BasicPartitionInvocation.java:28) 
    at com.hazelcast.spi.impl.ResponseHandlerFactory$LocalInvocationResponseHandler.sendResponse(ResponseHandlerFactory.java:144) 
    at com.hazelcast.spi.impl.BasicOperationService.processOperation(BasicOperationService.java:385) 
    at com.hazelcast.spi.impl.BasicOperationService.access$300(BasicOperationService.java:102) 
    at com.hazelcast.spi.impl.BasicOperationService$BasicOperationProcessorImpl.process(BasicOperationService.java:754) 
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.process(BasicOperationScheduler.java:276) 
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.doRun(BasicOperationScheduler.java:270) 
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.run(BasicOperationScheduler.java:245) 

déc. 24, 2014 2:13:42 PM com.hazelcast.spi.OperationService 
AVERTISSEMENT: [172.17.0.2]:5601 [akio] [3.2.2] While sending op error... op: [email protected], error: java.lang.OutOfMemoryError: unable to create new native thread 
com.hazelcast.spi.exception.ResponseAlreadySentException: NormalResponse already sent for callback: BasicInvocation{ serviceName='hz:impl:lockService', [email protected]2a, partitionId=50, replicaIndex=0, tryCount=100, tryPauseMillis=500, invokeCount=1, callTimeout=10000, target=Address[172.17.0.2]:5601}, current-response: : com.hazelcast.core.HazelcastInstanceNotActiveException: Hazelcast instance is not active! 
    at com.hazelcast.spi.impl.ResponseHandlerFactory$LocalInvocationResponseHandler.sendResponse(ResponseHandlerFactory.java:141) 
    at com.hazelcast.spi.impl.BasicOperationService.handleOperationError(BasicOperationService.java:531) 
    at com.hazelcast.spi.impl.BasicOperationService.processOperation(BasicOperationService.java:404) 
    at com.hazelcast.spi.impl.BasicOperationService.access$300(BasicOperationService.java:102) 
    at com.hazelcast.spi.impl.BasicOperationService$BasicOperationProcessorImpl.process(BasicOperationService.java:754) 
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.process(BasicOperationScheduler.java:276) 
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.doRun(BasicOperationScheduler.java:270) 
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.run(BasicOperationScheduler.java:245) 

在谷歌搜索此错误后可因边界过程中,用户可以控制造成的。在我研究之后,应该在主机(Boot2Docker)上使用“ulimit -u”,但它不提供该选项。

有人遇到过这个问题吗?如果是这样,你可以解决它?

PS: 泊坞主机=最后的CentOS 6.6 Java版本 “1.7.0_60” Hazelcast = 3.2.2

+0

是否与内存不足异常相关? java.lang.OutOfMemoryError:无法创建新的本地线程 –

+0

事实上,它是我发现解释服务停止的唯一线索 – Ben

回答

0

我不知道有什么不提供选项 “的ulimit -u”,但通常你在linux shell上运行这个。您必须为Docker容器中的打开文件以及可能在主机上配置软硬限制。从来没有使用码头工人,但这是一个常见的Linux问题,没有码头不是Hazelcast特定的。

+0

使用docker,必须在主机上设置限制(无法在contenair本身执行)。 Docker在Mac下无法正常工作,必须从boot2docker(基于Tiny Core Linux的VM)启动。但boot2docker中的ulimit不提供-u选项来设置每个用户的最大线程数。 – Ben