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());