cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daan Hoogland <daan.hoogl...@gmail.com>
Subject Re: Can't create Basic Zone with master
Date Fri, 13 Oct 2017 08:06:28 GMT
Mike, i created https://github.com/apache/cloudstack/pull/2296 after
investigation. haven't tested it yet.

On Fri, Oct 13, 2017 at 9:29 AM, Daan Hoogland <daan.hoogland@gmail.com>
wrote:

> Mike, absolutely right and I would usually just say "okay revert" but in
> this case I want to look to fix forward. This commit is an attempt to make
> network types more pluggable. So let me see if I can find a solution. I had
> trusted on the smoke tests to pick this up.
>
> On Thu, Oct 12, 2017 at 10:50 PM, Tutkowski, Mike <
> Mike.Tutkowski@netapp.com> wrote:
>
>> It looks like this commit broke support for Basic Zones:
>>
>> a06530d (Daan: Can you look into this?)
>>
>> 4.10
>>
>> @Override
>> protected boolean canHandle(NetworkOffering offering, DataCenter dc) {
>>     // this guru handles system Direct pod based network
>>     if (dc.getNetworkType() == NetworkType.Basic &&
>> isMyTrafficType(offering.getTrafficType())) {
>>         return true;
>>     } else {
>>         s_logger.trace("We only take care of Guest Direct Pod based
>> networks");
>>         return false;
>>     }
>> }
>>
>> master
>>
>> @Override
>> protected boolean canHandle(NetworkOffering offering, DataCenter dc,
>> PhysicalNetwork physnet) {
>>     // this guru handles system Direct pod based network
>>     if (dc.getNetworkType() == NetworkType.Basic &&
>> isMyTrafficType(offering.getTrafficType()) &&
>> isMyIsolationMethod(physnet)) {
>>         return true;
>>     } else {
>>         s_logger.trace("We only take care of Guest Direct Pod based
>> networks");
>>         return false;
>>     }
>> }
>>
>> isMyIsolationMethod(physnet) fails (new to master):
>>
>>     protected boolean isMyIsolationMethod(PhysicalNetwork
>> physicalNetwork) {
>>         for (IsolationMethod m : _isolationMethods) {
>>             if (physicalNetwork.getIsolationM
>> ethods().contains(m.toString())) {
>>                 return true;
>>             }
>>         }
>>         return false;
>>     }
>>
>> _isolationMethods = new IsolationMethod[] { new IsolationMethod("VLAN") };
>>
>> _isolationMethods is only of size = 1 and m.toString() returns “VLAN”
>> whereas physicalNetwork.getIsolationMethods() is of size = 0. This
>> method returns false and none of the network gurus can support the creation
>> of a Basic Zone.
>>
>> On 10/12/17, 7:03 AM, "Tutkowski, Mike" <Mike.Tutkowski@netapp.com>
>> wrote:
>>
>>     Yes, I can debug it more. I’m in the middle of some other task at the
>> moment, so I might not be able to get to it until later this evening. In
>> the meanwhile, I figured I’d send out the previous e-mail in case it might
>> sound like something one of our networking devs recognize. :) Thanks!
>>
>>     On Oct 12, 2017, at 12:18 AM, Rohit Yadav <rohit.yadav@shapeblue.com
>> <mailto:rohit.yadav@shapeblue.com>> wrote:
>>
>>     Hi Mike,
>>
>>
>>     I think you can repeat the process with 4.10 and compare with master
>> as to which NetworkGuru is supposed to design and return you a network,
>> then you can do some git log tracing to find what was changed and why the
>> respective network guru is not returning a network. It could be
>> environment/config issue or change/regression in code.
>>
>>
>>     For local/nfs storage, and all three hypervisor no major regression
>> was seen in last trillian smoke test runs.
>>
>>
>>     - Rohit
>>
>>     ________________________________
>>     From: Tutkowski, Mike <Mike.Tutkowski@netapp.com<mailto:
>> Mike.Tutkowski@netapp.com>>
>>     Sent: Thursday, October 12, 2017 1:17:50 AM
>>     To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>
>>     Subject: Re: Can't create Basic Zone with master
>>
>>     Hi Rohit,
>>
>>     I walked through the debugger with this and now have more info:
>>
>>     The following network gurus are leveraged to create networks
>> successfully:
>>
>>     PublicNetworkGuru
>>     PodBasedNetworkGuru
>>     ControlNetworkGuru
>>     StorageNetworkGuru
>>
>>     Once the zone-creation wizard reaches the “Enabling Security Group
>> provider” part, NetworkOrchestrator.setupNetwork is again invoked and
>> this time throws an exception.
>>
>>     It walks through all of its network gurus and none of them returns a
>> pointer to a Network object.
>>
>>                for (final NetworkGuru guru : networkGurus) {
>>                    final Network network = guru.design(offering, plan,
>> predefined, owner);
>>                    if (network == null) {
>>                        continue;
>>                    }
>>
>>     Since no Network object was returned, the list of Network objects is
>> empty and an exception is thrown.
>>
>>     Thanks,
>>     Mike
>>
>>     On 10/11/17, 1:44 AM, "Rohit Yadav" <rohit.yadav@shapeblue.com<mai
>> lto:rohit.yadav@shapeblue.com>> wrote:
>>
>>        Mike,
>>
>>
>>        Can you re-deploy a fresh environment and see what's failing,
>> stepping through the workflow. The specific line it's throwing exception is
>> caused when there are no network (network size is 0) setup:
>>
>>
>>        https://github.com/apache/cloudstack/blob/master/engine/orc
>> hestration/src/org/apache/cloudstack/engine/orchestration/Ne
>> tworkOrchestrator.java#L715
>>
>>
>>        - Rohit
>>
>>        ________________________________
>>        From: Tutkowski, Mike <Mike.Tutkowski@netapp.com<mailto:
>> Mike.Tutkowski@netapp.com>>
>>        Sent: Wednesday, October 11, 2017 6:08:10 AM
>>        To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>
>>        Subject: Can't create Basic Zone with master
>>
>>        Hi,
>>
>>        I was trying to run the managed-storage regression test suite on
>> PR 2018 (https://github.com/apache/cloudstack/pull/2081) when I realized
>> I couldn’t create a Basic Zone (using XenServer) with that code.
>>
>>        I then took a step back from that PR and tried to create a Basic
>> Zone (again, with XenServer) using master (specifically f1c01a5).
>>
>>        After this didn’t work, I tried with the tag 4.10.0.0 (9d2893d)
>> and it worked.
>>
>>        As such, it appears somewhere along the way that we have
>> introduced code into master that has broken the use case of creating a
>> Basic Zone (at least with XenServer).
>>
>>        It seems to be networking related.
>>
>>        Here is the stack trace I’m getting:
>>
>>        ERROR [c.c.a.ApiServer] (qtp708058685-279:ctx-a3ea1e98
>> ctx-b18fc696) (logid:ce86e7d9) unhandled exception executing api command:
>> [Ljava.lang.String;@50361bfa
>>        com.cloud.utils.exception.CloudRuntimeException: Unable to
>> convert network offering with specified id to network profile
>>        at org.apache.cloudstack.engine.orchestration.NetworkOrchestrat
>> or.setupNetwork(NetworkOrchestrator.java:715)
>>        at org.apache.cloudstack.engine.orchestration.NetworkOrchestrat
>> or$10.doInTransaction(NetworkOrchestrator.java:2296)
>>        at org.apache.cloudstack.engine.orchestration.NetworkOrchestrat
>> or$10.doInTransaction(NetworkOrchestrator.java:2250)
>>        at com.cloud.utils.db.Transaction$2.doInTransaction(Transaction
>> .java:50)
>>        at com.cloud.utils.db.Transaction.execute(Transaction.java:40)
>>        at com.cloud.utils.db.Transaction.execute(Transaction.java:47)
>>        at org.apache.cloudstack.engine.orchestration.NetworkOrchestrat
>> or.createGuestNetwork(NetworkOrchestrator.java:2250)
>>        at com.cloud.network.NetworkServiceImpl$4.doInTransaction(Netwo
>> rkServiceImpl.java:1411)
>>        at com.cloud.network.NetworkServiceImpl$4.doInTransaction(Netwo
>> rkServiceImpl.java:1359)
>>        at com.cloud.utils.db.Transaction.execute(Transaction.java:40)
>>        at com.cloud.network.NetworkServiceImpl.commitNetwork(NetworkSe
>> rviceImpl.java:1359)
>>        at com.cloud.network.NetworkServiceImpl.createGuestNetwork(Netw
>> orkServiceImpl.java:1322)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>> ssorImpl.java:62)
>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>> thodAccessorImpl.java:43)
>>        at java.lang.reflect.Method.invoke(Method.java:498)
>>        at org.springframework.aop.support.AopUtils.invokeJoinpointUsin
>> gReflection(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(ActionEventInt
>> erceptor.java:51)
>>        at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .proceed(ReflectiveMethodInvocation.java:168)
>>        at org.springframework.aop.interceptor.ExposeInvocationIntercep
>> tor.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.$Proxy231.createGuestNetwork(Unknown Source)
>>        at org.apache.cloudstack.api.command.admin.network.CreateNetwor
>> kCmdByAdmin.execute(CreateNetworkCmdByAdmin.java:58)
>>        at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:150)
>>        at com.cloud.api.ApiServer.queueCommand(ApiServer.java:728)
>>        at com.cloud.api.ApiServer.handleRequest(ApiServer.java:552)
>>        at com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.
>> java:297)
>>        at com.cloud.api.ApiServlet$1.run(ApiServlet.java:129)
>>        at org.apache.cloudstack.managed.context.impl.DefaultManagedCon
>> text$1.call(DefaultManagedContext.java:56)
>>        at org.apache.cloudstack.managed.context.impl.DefaultManagedCon
>> text.callWithContext(DefaultManagedContext.java:103)
>>        at org.apache.cloudstack.managed.context.impl.DefaultManagedCon
>> text.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.doFilte
>> r(ServletHandler.java:1669)
>>        at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.do
>> Filter(WebSocketUpgradeFilter.java:189)
>>        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilte
>> r(ServletHandler.java:1652)
>>        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHan
>> dler.java:585)
>>        at org.eclipse.jetty.server.handler.ScopedHandler.handle(Scoped
>> Handler.java:143)
>>        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHa
>> ndler.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(ServletHand
>> ler.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(Scoped
>> Handler.java:141)
>>        at org.eclipse.jetty.server.handler.ContextHandlerCollection.ha
>> ndle(ContextHandlerCollection.java:215)
>>        at org.eclipse.jetty.server.handler.HandlerCollection.handle(
>> HandlerCollection.java:110)
>>        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(Handl
>> erWrapper.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(HttpConne
>> ction.java:258)
>>        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnec
>> tion.java:544)
>>        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(Queued
>> ThreadPool.java:635)
>>        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedT
>> hreadPool.java:555)
>>        at java.lang.Thread.run(Thread.java:745)
>>
>>        Any of our networking gurus want to take a look at this?
>>
>>        Thanks!
>>        Mike
>>
>>        rohit.yadav@shapeblue.com<mailto:rohit.yadav@shapeblue.com>
>>        www.shapeblue.com<http://www.shapeblue.com><http://www.shap
>> eblue.com>
>>        53 Chandos Place, Covent Garden, London  WC2N 4HSUK
>>        @shapeblue
>>
>>
>>
>>
>>
>>
>>     rohit.yadav@shapeblue.com<mailto:rohit.yadav@shapeblue.com>
>>     www.shapeblue.com<http://www.shapeblue.com>
>>     53 Chandos Place, Covent Garden, London  WC2N 4HSUK
>>     @shapeblue
>>
>>
>>
>>
>>
>>
>
>
> --
> Daan
>



-- 
Daan

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message