node0, node1 and port offsets

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

node0, node1 and port offsets

Richard Achmatowicz
Hi

I've just spent a lot of time tracking down some problems with tests
failing with two IPv6 addresses which lead me to some arquillian.xml
files, like this:

<group qualifier="iiop">

<!-- The server than invokes the exposed EJB's -->
<container qualifier="iiop-client" default="true">
<configuration>
<property name="jbossHome">${basedir}/target/jbossas-iiop-client</property>
<property name="javaVmArguments">${server.jvm.args}
-Djboss.inst=${basedir}/target/jbossas-iiop-client</property>
<property
name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
<property name="managementAddress">${node0}</property>
<property name="managementPort">${as.managementPort:9999}</property>
</configuration>
</container>

<!-- The server that expsoses EJB's via IIOP -->
<container qualifier="iiop-server" default="false">
<configuration>
<property name="jbossHome">${basedir}/target/jbossas-iiop-server</property>
<property name="javaVmArguments">${server.jvm.args}</property>
<property
name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
<!-- we use port offsets in the configuration build -->
<property name="managementAddress">${node1}</property>
<property name="managementPort">10099</property>
</configuration>
</container>
</group>

These configurations use both separate node IPs *and* port offsets, and
yet the builds for the configurations only use port offsets. This
results in Arquillian looking in the wrong place for some servers have
actually started. For example, the arquillian.xml configuration above
tells arquillian to look for a host running at ${node1}:10099; but the
server configuration built by iiop-build.xml uses port offsets, so the
second server's managment address is ${node0}:10099. The test fails
because Arquillian can never connect to the host ${node1}:10099. We have
some tests which use a single node and port offsets, some tests which
use distinct nodes and port offsets, and I also expect some tests which
use distinct nodes and no offsets.

In the past, we have used two approaches to run two servers on a single
node: using distinct IP addresses and the same ports or using a single
IP address and ports distinguished by port offsets. The first was the
standard case; the second was generally used for testing the port offset
mechanism, IIRC. We need one or the other but not both.

Should we consider returning to that standard in which we use distinct
IPs and no offsets for the general case, and only use port offsets when
testing the port offset mechanism?. Using two separate interfaces rather
than one arguably a more realistic test than one interface with port
offsets. Also, having different multi-host configurations for each test
makes debugging more of a pain, as it is one less thing you can assume
about a test when trying to figure out what is going on. Also, looking
at different IPs in two sets of logs is easier and less error prone than
calculating offsets in your head in my experience.

The problem configurations I saw were in integration/iiop,
integration/manual-mode, and integration/multi-node.

Richard







_______________________________________________
jboss-as7-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
Reply | Threaded
Open this post in threaded view
|

Re: node0, node1 and port offsets

Jason T. Greene
Are you up to date? I fixed a bunch of those last week.

Sent from my iPhone

On Mar 13, 2012, at 2:23 AM, Richard Achmatowicz <[hidden email]> wrote:

> Hi
>
> I've just spent a lot of time tracking down some problems with tests
> failing with two IPv6 addresses which lead me to some arquillian.xml
> files, like this:
>
> <group qualifier="iiop">
>
> <!-- The server than invokes the exposed EJB's -->
> <container qualifier="iiop-client" default="true">
> <configuration>
> <property name="jbossHome">${basedir}/target/jbossas-iiop-client</property>
> <property name="javaVmArguments">${server.jvm.args}
> -Djboss.inst=${basedir}/target/jbossas-iiop-client</property>
> <property
> name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
> <property name="managementAddress">${node0}</property>
> <property name="managementPort">${as.managementPort:9999}</property>
> </configuration>
> </container>
>
> <!-- The server that expsoses EJB's via IIOP -->
> <container qualifier="iiop-server" default="false">
> <configuration>
> <property name="jbossHome">${basedir}/target/jbossas-iiop-server</property>
> <property name="javaVmArguments">${server.jvm.args}</property>
> <property
> name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
> <!-- we use port offsets in the configuration build -->
> <property name="managementAddress">${node1}</property>
> <property name="managementPort">10099</property>
> </configuration>
> </container>
> </group>
>
> These configurations use both separate node IPs *and* port offsets, and
> yet the builds for the configurations only use port offsets. This
> results in Arquillian looking in the wrong place for some servers have
> actually started. For example, the arquillian.xml configuration above
> tells arquillian to look for a host running at ${node1}:10099; but the
> server configuration built by iiop-build.xml uses port offsets, so the
> second server's managment address is ${node0}:10099. The test fails
> because Arquillian can never connect to the host ${node1}:10099. We have
> some tests which use a single node and port offsets, some tests which
> use distinct nodes and port offsets, and I also expect some tests which
> use distinct nodes and no offsets.
>
> In the past, we have used two approaches to run two servers on a single
> node: using distinct IP addresses and the same ports or using a single
> IP address and ports distinguished by port offsets. The first was the
> standard case; the second was generally used for testing the port offset
> mechanism, IIRC. We need one or the other but not both.
>
> Should we consider returning to that standard in which we use distinct
> IPs and no offsets for the general case, and only use port offsets when
> testing the port offset mechanism?. Using two separate interfaces rather
> than one arguably a more realistic test than one interface with port
> offsets. Also, having different multi-host configurations for each test
> makes debugging more of a pain, as it is one less thing you can assume
> about a test when trying to figure out what is going on. Also, looking
> at different IPs in two sets of logs is easier and less error prone than
> calculating offsets in your head in my experience.
>
> The problem configurations I saw were in integration/iiop,
> integration/manual-mode, and integration/multi-node.
>
> Richard
>
>
>
>
>
>
>
> _______________________________________________
> jboss-as7-dev mailing list
> [hidden email]
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev

_______________________________________________
jboss-as7-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
Reply | Threaded
Open this post in threaded view
|

Re: node0, node1 and port offsets

Richard Achmatowicz
Unfortunately, was out of date. Thanks for fixing this up.

On 03/13/2012 04:35 AM, Jason Greene wrote:

> Are you up to date? I fixed a bunch of those last week.
>
> Sent from my iPhone
>
> On Mar 13, 2012, at 2:23 AM, Richard Achmatowicz<[hidden email]>  wrote:
>
>> Hi
>>
>> I've just spent a lot of time tracking down some problems with tests
>> failing with two IPv6 addresses which lead me to some arquillian.xml
>> files, like this:
>>
>> <group qualifier="iiop">
>>
>> <!-- The server than invokes the exposed EJB's -->
>> <container qualifier="iiop-client" default="true">
>> <configuration>
>> <property name="jbossHome">${basedir}/target/jbossas-iiop-client</property>
>> <property name="javaVmArguments">${server.jvm.args}
>> -Djboss.inst=${basedir}/target/jbossas-iiop-client</property>
>> <property
>> name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
>> <property name="managementAddress">${node0}</property>
>> <property name="managementPort">${as.managementPort:9999}</property>
>> </configuration>
>> </container>
>>
>> <!-- The server that expsoses EJB's via IIOP -->
>> <container qualifier="iiop-server" default="false">
>> <configuration>
>> <property name="jbossHome">${basedir}/target/jbossas-iiop-server</property>
>> <property name="javaVmArguments">${server.jvm.args}</property>
>> <property
>> name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
>> <!-- we use port offsets in the configuration build -->
>> <property name="managementAddress">${node1}</property>
>> <property name="managementPort">10099</property>
>> </configuration>
>> </container>
>> </group>
>>
>> These configurations use both separate node IPs *and* port offsets, and
>> yet the builds for the configurations only use port offsets. This
>> results in Arquillian looking in the wrong place for some servers have
>> actually started. For example, the arquillian.xml configuration above
>> tells arquillian to look for a host running at ${node1}:10099; but the
>> server configuration built by iiop-build.xml uses port offsets, so the
>> second server's managment address is ${node0}:10099. The test fails
>> because Arquillian can never connect to the host ${node1}:10099. We have
>> some tests which use a single node and port offsets, some tests which
>> use distinct nodes and port offsets, and I also expect some tests which
>> use distinct nodes and no offsets.
>>
>> In the past, we have used two approaches to run two servers on a single
>> node: using distinct IP addresses and the same ports or using a single
>> IP address and ports distinguished by port offsets. The first was the
>> standard case; the second was generally used for testing the port offset
>> mechanism, IIRC. We need one or the other but not both.
>>
>> Should we consider returning to that standard in which we use distinct
>> IPs and no offsets for the general case, and only use port offsets when
>> testing the port offset mechanism?. Using two separate interfaces rather
>> than one arguably a more realistic test than one interface with port
>> offsets. Also, having different multi-host configurations for each test
>> makes debugging more of a pain, as it is one less thing you can assume
>> about a test when trying to figure out what is going on. Also, looking
>> at different IPs in two sets of logs is easier and less error prone than
>> calculating offsets in your head in my experience.
>>
>> The problem configurations I saw were in integration/iiop,
>> integration/manual-mode, and integration/multi-node.
>>
>> Richard
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> jboss-as7-dev mailing list
>> [hidden email]
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev

_______________________________________________
jboss-as7-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev