Hopefully we can now find someone with experience in CloudStack's networking 
code to tell us if that fix is OK or if that was just a Band-Aid and we should 
do something more thorough to correct the issue.

> On Feb 16, 2017, at 11:48 PM, Rajani Karuturi <raj...@apache.org> wrote:
> 
> Thanks for digging it Mike.
> 
> ~ Rajani
> 
> http://cloudplatform.accelerite.com/
> 
> On February 17, 2017 at 12:18 AM, Tutkowski, Mike
> (mike.tutkow...@netapp.com) wrote:
> 
> Hi,
> 
> I opened a blocker for 4.10 regarding this issue:
> 
> https://issues.apache.org/jira/browse/CLOUDSTACK-9790
> 
> Thanks,
> Mike
> 
> On 2/16/17, 8:35 AM, "Tutkowski, Mike"
> <mike.tutkow...@netapp.com> wrote:
> 
> I believe the issue is here:
> 
> https://github.com/apache/cloudstack/pull/1579
> 
> In ConfigurationManagerImpl.java, it appears the lines that led
> to NPEs being thrown were added on lines 2924 – 2926:
> 
> https://github.com/apache/cloudstack/pull/1579/files
> 
> On 2/16/17, 2:42 AM, "Wido den Hollander" <w...@widodh.nl>
> wrote:
> 
>> Op 16 februari 2017 om 6:21 schreef Rajani Karuturi
> <raj...@apache.org>:
>> 
>> 
>> unfortunately, running one set of tests itself is very time
>> consuming(multiplied by hypervisors, network modes etc. its
>> impossible to run all)
>> 
>> If I remember correctly, wido tested it with PR 1700 (IPV6 in
>> basic networking)
>> 
> 
> I highly doubt it's PR 1700 which is causing this. The PR I have
> open to fix a issue ONLY applies if IPv6 has been set.
> 
> PR 1700 only does something when you have set a IPv6 subnet in
> the 'vlan' table:
> https://github.com/apache/cloudstack/commit/c0e7766713b2631a167c2ceea7d42b574a5cd1b9#diff-f90fdac6810fd89f89e827309a41d180R231
> 
> So I don't think it's caused by this since you NIC table will
> not be filled with IPv6 addresses afterwards.
> 
> Wido
> 
>> Can you try a commit before and a commit after that PR?
>> 
>> Thanks,
>> 
>> ~ Rajani
>> 
>> http://cloudplatform.accelerite.com/
>> 
>> On February 16, 2017 at 1:02 AM, Tutkowski, Mike
>> (mike.tutkow...@netapp.com) wrote:
>> 
>> Thanks for noting that PR, Rene. I tried building a Basic Zone
>> making use of code from that PR, but – unfortunately – I still
>> get an exception (below).
>> 
>> On a related note, does this mean we don’t run any integration
>> tests that build a Basic Zone before we OK a PR to be checked
> in?
>> 
>> ERROR [c.c.a.ApiServer] (qtp555984412-267:ctx-a904cbd0
>> ctx-062a000a) (logid:30f5a3ec) unhandled exception executing
> api
>> command: [Ljava.lang.String;@4732a98c
>> java.lang.NullPointerException
>> at
>> com.cloud.utils.net.NetUtils.getCidrNetmask(NetUtils.java:956)
>> at
>> 
> com.cloud.configuration.ConfigurationManagerImpl.validateIpRange(ConfigurationManagerImpl.java:2924)
>> at
>> 
> com.cloud.configuration.ConfigurationManagerImpl.createVlanAndPublicIpRange(ConfigurationManagerImpl.java:2822)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:498)
>> at
>> 
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
>> at
>> 
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> at
>> 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>> at
>> 
> org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:107)
>> at
>> 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
>> at
>> 
> com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:51)
>> at
>> 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
>> at
>> 
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
>> at
>> 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> at
>> 
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
>> at com.sun.proxy.$Proxy126.createVlanAndPublicIpRange(Unknown
>> Source)
>> at
>> 
> org.apache.cloudstack.api.command.admin.vlan.CreateVlanIpRangeCmd.execute(CreateVlanIpRangeCmd.java:219)
>> at
> com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:150)
>> at com.cloud.api.ApiServer.queueCommand(ApiServer.java:709)
>> at com.cloud.api.ApiServer.handleRequest(ApiServer.java:533)
>> at
>> 
> com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:299)
>> at com.cloud.api.ApiServlet$1.run(ApiServlet.java:129)
>> at
>> 
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
>> at
>> 
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
>> at
>> 
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
>> at
> com.cloud.api.ApiServlet.processRequest(ApiServlet.java:126)
>> at com.cloud.api.ApiServlet.doGet(ApiServlet.java:88)
>> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
>> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>> at
>> 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
>> at
>> 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
>> at
>> 
> org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:189)
>> at
>> 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>> at
>> 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
>> at
>> 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>> at
>> 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
>> at
>> 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
>> at
>> 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
>> at
>> 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
>> at
>> 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
>> at
>> 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
>> at
>> 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>> at
>> 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
>> at
>> 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
>> at
>> 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>> at org.eclipse.jetty.server.Server.handle(Server.java:499)
>> at
>> 
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
>> at
>> 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
>> at
>> 
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
>> at
>> 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
>> at
>> 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
>> at java.lang.Thread.run(Thread.java:745)
>> 
>> On 2/15/17, 12:52 AM, "Tutkowski, Mike"
>> <mike.tutkow...@netapp.com> wrote:
>> 
>> Thanks for pointing this out.
>> 
>> I can incorporate those changes in the morning and see if it
>> does the trick.
>> 
>>> On Feb 15, 2017, at 12:50 AM, Rene Moser
> <m...@renemoser.net>
>> wrote:
>>> 
>>> Probably related to
>> https://github.com/apache/cloudstack/pull/1927
>>> 
>>> 
>>> 
>>>> On 02/14/2017 10:44 PM, Tutkowski, Mike wrote:
>>>> Hi,
>>>> 
>>>> I’m getting a NullPointerException when trying to create a
>> zone using master.
>>>> 
>>>> Below is the relevant code in ConfigurationManagerImpl.
>>>> 
>>>> In the else block, network.getCidr() returns null and
>> NetUtil.getCidrNetmask then throws a NullPointerException.
>>>> 
>>>> I noticed that network.getGateway() also returns null
> (which
>> seems odd).
>>>> 
>>>> Thoughts on this?
>>>> 
>>>> Thanks!
>>>> Mike
>>>> 
>>>> public Pair<Boolean, Pair<String, String>>
>> validateIpRange(final String startIP, final String endIP,
> final
>> String newVlanGateway, final String newVlanNetmask, final
>> List<VlanVO> vlans, final boolean ipv4,
>>>> final boolean ipv6, String ip6Gateway, String ip6Cidr,
> final
>> String startIPv6, final String endIPv6, final Network network)
> {
>>>> String vlanGateway = null;
>>>> String vlanNetmask = null;
>>>> boolean sameSubnet = false;
>>>> if (CollectionUtils.isNotEmpty(vlans)) {
>>>> for (final VlanVO vlan : vlans) {
>>>> vlanGateway = vlan.getVlanGateway();
>>>> vlanNetmask = vlan.getVlanNetmask();
>>>> sameSubnet = hasSameSubnet(ipv4, vlanGateway, vlanNetmask,
>> newVlanGateway, newVlanNetmask, startIP, endIP,
>>>> ipv6, ip6Gateway, ip6Cidr, startIPv6, endIPv6, network);
>>>> if (sameSubnet) break;
>>>> }
>>>> } else {
>>>> vlanGateway = network.getGateway();
>>>> vlanNetmask = NetUtils.getCidrNetmask(network.getCidr());

Reply via email to