I am curious, do you this an exception like this in the child instance log
file?
2015-12-03 08:48:03,154 | WARN | 8]-nio2-thread-1 | ServerSession
| 1 - org.apache.sshd.core - 0.14.0 | Exception caught
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_45]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_45]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_45]
at sun.nio.ch.IOUtil.read(IOUtil.java:197)[:1.8.0_45]
at
sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:508)[:1.8.0_45]
at
sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:276)[:1.8.0_45]
at
sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:297)[:1.8.0_45]
at
java.nio.channels.AsynchronousSocketChannel.read(AsynchronousSocketChannel.java:420)[:1.8.0_45]
at
org.apache.sshd.common.io.nio2.Nio2Session.startReading(Nio2Session.java:170)[1:org.apache.sshd.core:0.14.0]
at
org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:135)[1:org.apache.sshd.core:0.14.0]
at
org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:120)[1:org.apache.sshd.core:0.14.0]
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:32)
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_45]
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:30)[1:org.apache.sshd.core:0.14.0]
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)[:1.8.0_45]
at sun.nio.ch.Invoker$2.run(Invoker.java:218)[:1.8.0_45]
at
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)[:1.8.0_45]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
> On Dec 3, 2015, at 8:46 AM, Jean-Baptiste Onofré <[email protected]> wrote:
>
> It works also in Karaf: actually, I extended the Karaf itests about instances
> with it.
>
> So, it's probably something in your custom distribution or environment/code.
>
> Regards
> JB
>
> On 12/03/2015 02:43 PM, Alex Soto wrote:
>> Hi JB,
>>
>> Yes, it works for Cellar, I can confirm this from a test I did with a
>> slightly modified CellarTestSupport. However, if I move this same class to
>> my project, then it fails. So, something is different, perhaps in the
>> dependencies, that is causing this. I will keep researching and report
>> back here any findings.
>>
>> Thanks for taking the time to help!
>>
>>> On Dec 3, 2015, at 2:05 AM, Jean-Baptiste Onofré <[email protected]> wrote:
>>>
>>> Hi Alex,
>>>
>>> I added an itest in Karaf that does:
>>>
>>> @Test
>>> public void createStartCommand() throws Exception {
>>> System.out.println(executeCommand("instance:create itest"));
>>> assertContains("itest", executeCommand("instance:list"));
>>> System.out.println(executeCommand("instance:start itest"));
>>> Thread.sleep(5000);
>>> String output = executeCommand("instance:status itest");
>>> System.out.println("itest instance status: " + output);
>>> assertContains("Started", output);
>>> System.out.println(executeCommand("instance:stop itest"));
>>> Thread.sleep(5000);
>>> output = executeCommand("instance:status itest");
>>> System.out.println("itest instance status: " + output);
>>> assertContains("Stopped", output);
>>> }
>>>
>>> and it works fine: the itest instance goes in Started instance. I added a
>>> sleep just to give time to the instance to start (else we may have Starting
>>> during the interval).
>>>
>>> We are using Pax Exam 4.6.0 for now, I'm upgrading to 4.7.0 to see if
>>> there's an impact.
>>>
>>> Regards
>>> JB
>>>
>>> On 12/02/2015 06:54 PM, Alex Soto wrote:
>>>> Correct.
>>>>
>>>>> On Dec 2, 2015, at 12:52 PM, Jean-Baptiste Onofré <[email protected]
>>>>> <mailto:[email protected]>> wrote:
>>>>>
>>>>> You use Karaf 4.0.3 right ?
>>>>>
>>>>> Let me check in Karaf itest.
>>>>>
>>>>> Regards
>>>>> JB
>>>>>
>>>>> On 12/02/2015 06:15 PM, Alex Soto wrote:
>>>>>> Hi JB,
>>>>>>
>>>>>> I was able to narrow it down to this line in my @Configuration method:
>>>>>>
>>>>>> configureConsole().ignoreLocalConsole().ignoreRemoteShell(),
>>>>>>
>>>>>> With the above option, the root instance never finishes initializing:
>>>>>>
>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>> -------------------------------------------------------------
>>>>>> 8101 | 1099 | 44444 | Starting | 7354 | root
>>>>>> 8102 | 1100 | 44445 | Stopped | 0 | LA1
>>>>>>
>>>>>>
>>>>>> Without it, the root instance initializes successfully, but not the
>>>>>> child instance:
>>>>>>
>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>> ------------------------------------------------------------
>>>>>> 8101 | 1099 | 44444 | Started | 7240 | root
>>>>>> 8102 | 1100 | 44445 | Stopped | 0 | LA1
>>>>>>
>>>>>>
>>>>>> and this exception is thrown in the logs:
>>>>>>
>>>>>> 2015-12-02 12:08:03,103 | INFO | 1]-nio2-thread-2 | ServerSession
>>>>>> | 1 - org.apache.sshd.core - 0.14.0 | Server
>>>>>> session created from /127.0.0.1:53673
>>>>>> 2015-12-02 12:08:03,103 | WARN | 1]-nio2-thread-2 | ServerSession
>>>>>> | 1 - org.apache.sshd.core - 0.14.0 | Exception
>>>>>> caught
>>>>>> java.io.IOException: Connection reset by peer
>>>>>> at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_45]
>>>>>> at
>>>>>> sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_45]
>>>>>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_45]
>>>>>> at sun.nio.ch.IOUtil.read(IOUtil.java:197)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:508)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:276)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:297)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> java.nio.channels.AsynchronousSocketChannel.read(AsynchronousSocketChannel.java:420)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> org.apache.sshd.common.io.nio2.Nio2Session.startReading(Nio2Session.java:170)[1:org.apache.sshd.core:0.14.0]
>>>>>> at
>>>>>>
>>>>>> org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:135)[1:org.apache.sshd.core:0.14.0]
>>>>>> at
>>>>>>
>>>>>> org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.onCompleted(Nio2Acceptor.java:120)[1:org.apache.sshd.core:0.14.0]
>>>>>> at
>>>>>>
>>>>>> org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:32)
>>>>>> at java.security.AccessController.doPrivileged(Native
>>>>>> Method)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:30)[1:org.apache.sshd.core:0.14.0]
>>>>>> at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)[:1.8.0_45]
>>>>>> at sun.nio.ch.Invoker$2.run(Invoker.java:218)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45]
>>>>>> at
>>>>>>
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45]
>>>>>> at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
>>>>>>
>>>>>>
>>>>>> Any idea what is going on?
>>>>>>
>>>>>>
>>>>>>
>>>>>>> On Dec 2, 2015, at 11:12 AM, Alex Soto <[email protected]
>>>>>>> <mailto:[email protected]>
>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>
>>>>>>> I am using very similar method, using the executeCommand, almost
>>>>>>> identical to how Cellar is doing it.
>>>>>>> I see the instance directory being created but there is nothing in the
>>>>>>> log file of the child instance.
>>>>>>>
>>>>>>> Thanks for the help!
>>>>>>>
>>>>>>>
>>>>>>>> On Dec 2, 2015, at 10:34 AM, Jean-Baptiste Onofré <[email protected]
>>>>>>>> <mailto:[email protected]>
>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>
>>>>>>>> It's @Ignore due to some hazelcast issue. I will re-enable it.
>>>>>>>>
>>>>>>>> With Karaf 4.0.0, you can see:
>>>>>>>>
>>>>>>>> protected void createCellarChild(String name, boolean debug, int
>>>>>>>> port) {
>>>>>>>> int instances = 0;
>>>>>>>> String createCommand = "instance:create --featureURL " +
>>>>>>>> System.getProperty("cellar.feature.url") + " --feature cellar ";
>>>>>>>> if (debug && port > 0) {
>>>>>>>> createCommand = createCommand + String.format(DEBUG_OPTS,
>>>>>>>> port);
>>>>>>>> }
>>>>>>>> System.err.println(executeCommand(createCommand + " " + name));
>>>>>>>> System.err.println(executeCommand("instance:start " + name));
>>>>>>>>
>>>>>>>> //Wait till the node is listed as Starting
>>>>>>>> System.err.print("Waiting for " + name + " to start ");
>>>>>>>> for (int i = 0; i < 5 && instances == 0; i++) {
>>>>>>>> String response = executeCommand("instance:list | grep " +
>>>>>>>> name + " | grep -c " + INSTANCE_STARTED, COMMAND_TIMEOUT, true);
>>>>>>>> instances = Integer.parseInt(response.trim());
>>>>>>>> System.err.print(".");
>>>>>>>> try {
>>>>>>>> Thread.sleep(3000);
>>>>>>>> } catch (InterruptedException e) {
>>>>>>>> //Ignore
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>> if (instances > 0) {
>>>>>>>> System.err.println(".Started!");
>>>>>>>> } else {
>>>>>>>> System.err.println(".Timed Out!");
>>>>>>>> }
>>>>>>>>
>>>>>>>> }
>>>>>>>>
>>>>>>>> It's what I used and it should work.
>>>>>>>>
>>>>>>>> Do you do the same ?
>>>>>>>>
>>>>>>>> Do you use the Instance service directly or the commands ?
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> JB
>>>>>>>>
>>>>>>>> On 12/02/2015 04:27 PM, Alex Soto wrote:
>>>>>>>>> Downloaded Cellar from the
>>>>>>>>> Headathttps://github.com/apache/karaf-cellar
>>>>>>>>> All Integration Tests have the @Ignore annotation.
>>>>>>>>>
>>>>>>>>> Is anybody able to launch a second Karaf instance from a Pax-Exam
>>>>>>>>> integration test?
>>>>>>>>> If so, can you point me to a working example?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> On Dec 1, 2015, at 3:12 PM, Alex Soto <[email protected]
>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hmm, I tried downloading Cellar and all the mirrors fail with not
>>>>>>>>>> found error.
>>>>>>>>>> How do I get the source code?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> On Dec 1, 2015, at 3:00 PM, Alex Soto <[email protected]
>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> JB:
>>>>>>>>>>>
>>>>>>>>>>> Yes, it works outside of Pax-Exam.
>>>>>>>>>>> I will take a look at Cellar.
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>>> On Dec 1, 2015, at 2:54 PM, Jean-Baptiste Onofré
>>>>>>>>>>>> <[email protected] <mailto:[email protected]>
>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hey Alex,
>>>>>>>>>>>>
>>>>>>>>>>>> I guess it works fine "outside" of Pax Exam, right ?
>>>>>>>>>>>>
>>>>>>>>>>>> You can take a look on Cellar as I use instance to simulate
>>>>>>>>>>>> multiple
>>>>>>>>>>>> nodes.
>>>>>>>>>>>>
>>>>>>>>>>>> Let me try with 4.0.3.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards
>>>>>>>>>>>> JB
>>>>>>>>>>>>
>>>>>>>>>>>> On 12/01/2015 08:16 PM, Alex Soto wrote:
>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I am using Karaf version 4.0.3. In my integration test I want to
>>>>>>>>>>>>> launch
>>>>>>>>>>>>> a second instance of Karaf, but it always times out, so I am now
>>>>>>>>>>>>> wondering if it is because the root instance is not yet finished
>>>>>>>>>>>>> starting.
>>>>>>>>>>>>>
>>>>>>>>>>>>> In order to troubleshoot this issue, I have now added the
>>>>>>>>>>>>> ‘instance:list’ command to my test:
>>>>>>>>>>>>>
>>>>>>>>>>>>> String listOutput = executeCommand("instance:list");
>>>>>>>>>>>>> log.info(listOutput);
>>>>>>>>>>>>>
>>>>>>>>>>>>> I call the above from my @Test method, but the output always
>>>>>>>>>>>>> shows:
>>>>>>>>>>>>>
>>>>>>>>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>>> 8101 | 1099 | 44444 | Starting | 2914 | root
>>>>>>>>>>>>>
>>>>>>>>>>>>> No matter how much I wait, it always shows the same status.
>>>>>>>>>>>>> Meaning the
>>>>>>>>>>>>> container never finishes starting. I can manually run the
>>>>>>>>>>>>> exact same
>>>>>>>>>>>>> container that was created under 'target/exam/<guid>’ folder,
>>>>>>>>>>>>> and issue
>>>>>>>>>>>>> the above command and get:
>>>>>>>>>>>>>
>>>>>>>>>>>>> SSH Port | RMI Registry | RMI Server | State | PID | Name
>>>>>>>>>>>>> ------------------------------------------------------------
>>>>>>>>>>>>> 8101 | 1099 | 44444 | Started | 3409 | root
>>>>>>>>>>>>>
>>>>>>>>>>>>> So, it appears to be some kind of issue with the way the
>>>>>>>>>>>>> PAM-EXAM test
>>>>>>>>>>>>> is wired. I have added this dependency to try to cope with the
>>>>>>>>>>>>> problem:
>>>>>>>>>>>>>
>>>>>>>>>>>>> @Inject
>>>>>>>>>>>>> @Filter(timeout = SERVICE_TIMEOUT)
>>>>>>>>>>>>> protected BootFinished bootFinished;
>>>>>>>>>>>>>
>>>>>>>>>>>>> but so far, I have not been able to solve it. As I said
>>>>>>>>>>>>> before, my
>>>>>>>>>>>>> ultimate goal is to run a child instance, but I suspect that won’t
>>>>>>>>>>>>> happen until the main instance is successfully started. Any
>>>>>>>>>>>>> hints?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>> Alex Soto
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>>>> <mailto:[email protected]><mailto:[email protected]>
>>>>>>>>>>>> http://blog.nanthrax.net
>>>>>>>>>>>> <http://blog.nanthrax.net/><http://blog.nanthrax.net/>
>>>>>>>>>>>> Talend -http://www.talend.com
>>>>>>>>>>>> <http://www.talend.com/><http://www.talend.com/>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Jean-Baptiste Onofré
>>>>>>>> [email protected]
>>>>>>>> <mailto:[email protected]><mailto:[email protected]>
>>>>>>>> http://blog.nanthrax.net
>>>>>>>> <http://blog.nanthrax.net/><http://blog.nanthrax.net/>
>>>>>>>> Talend -http://www.talend.com
>>>>>>>> <http://www.talend.com/><http://www.talend.com/>
>>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Jean-Baptiste Onofré
>>>>> [email protected] <mailto:[email protected]>
>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>>>> Talend -http://www.talend.com <http://www.talend.com/>
>>>>
>>>
>>> --
>>> Jean-Baptiste Onofré
>>> [email protected]
>>> http://blog.nanthrax.net
>>> Talend - http://www.talend.com
>>
>
> --
> Jean-Baptiste Onofré
> [email protected]
> http://blog.nanthrax.net
> Talend - http://www.talend.com