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]>> 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]>> 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 Head athttps://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]>> 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]>> 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]>> 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]>
http://blog.nanthrax.net <http://blog.nanthrax.net/>
Talend -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