git blame will show you the commit and committer.

On Wed, Jan 1, 2014 at 10:19 PM, Mike Tutkowski
<mike.tutkow...@solidfire.com> wrote:
> Yeah, but I wasn't sure of the coder's intend and if your replacement code
> meet their expectations, so I didn't change it. I was hoping someone would
> claim the code and chime in. :)
>
>
> On Wed, Jan 1, 2014 at 10:16 PM, Marcus Sorensen <shadow...@gmail.com>wrote:
>
>> Yeah, it would be clearer if they were checked separately:
>>
>> if (one == null || one.isEmpty()) {
>>     return true;
>> } else if ( other == null || other.isEmpty()) [
>>     return true;
>> }
>>
>> or something like that.
>>
>> On Wed, Jan 1, 2014 at 10:00 PM, Mike Tutkowski
>> <mike.tutkow...@solidfire.com> wrote:
>> > I should say this check doesn't have to catch it...it might, but it
>> doesn't
>> > have to (depends on the value of one).
>> >
>> >
>> > On Wed, Jan 1, 2014 at 9:59 PM, Mike Tutkowski <
>> mike.tutkow...@solidfire.com
>> >> wrote:
>> >
>> >> Yeah, in my case I'm just setting up a basic zone with a XenServer host.
>> >>
>> >> The code in NetUtils checks for null or "" on the variable in question
>> >> that's passed in. However, in a certain case, null for that variable can
>> >> slip by and lead to a NPE.
>> >>
>> >>         if ((one == null || one.equals(""))
>> >>
>> >>                 &&
>> >>
>> >>                 (other == null || other.equals("")))
>> >>
>> >>         {
>> >>
>> >>             return true;
>> >>
>> >>         }
>> >>
>> >> if other == null, this will not catch it and it can throw a NPE later.
>> >>
>> >>
>> >> On Wed, Jan 1, 2014 at 9:51 PM, Marcus Sorensen <shadow...@gmail.com
>> >wrote:
>> >>
>> >>> You can do "git blame (file)" and it will show you each line and the
>> >>> commit. You can also do a git log on the file.  The issue may not be as
>> >>> obvious as that, though, there may be something totally unrelated
>> causing
>> >>> that object to end up null in this code. Or it may be specific to your
>> >>> setup, some obscure bug nobody else is hitting.
>> >>> On Jan 1, 2014 4:22 PM, "Mike Tutkowski" <mike.tutkow...@solidfire.com
>> >
>> >>> wrote:
>> >>>
>> >>> > This is in 4.3.
>> >>> >
>> >>> > I know the file is NetUtils, but I'm not sure in Git how to look at
>> the
>> >>> > history of a particular file like I could do in SVN.
>> >>> >
>> >>> >
>> >>> > On Wed, Jan 1, 2014 at 3:55 PM, Marcus Sorensen <shadow...@gmail.com
>> >
>> >>> > wrote:
>> >>> >
>> >>> > > Which branch? I see these in master, you can check out the commit
>> just
>> >>> > > before these and see if it helps:
>> >>> > >
>> >>> > > commit b477e4e830597100f0c0171dd8e56f4033bd07aa
>> >>> > > Author: Daan Hoogland <dhoogl...@schubergphilis.com>
>> >>> > > Date:   Tue Dec 31 12:52:51 2013 +0100
>> >>> > >
>> >>> > >     some xtra cases
>> >>> > >
>> >>> > > commit 2cf356e047e26977c1d294fafc57e986c04fc5f4
>> >>> > > Author: Daan Hoogland <dhoogl...@schubergphilis.com>
>> >>> > > Date:   Tue Dec 31 12:25:17 2013 +0100
>> >>> > >
>> >>> > >     isSameIsolationId
>> >>> > >
>> >>> > > commit 04570eefed9a0ee1eca1fd700ed5732ba67150ce
>> >>> > > Author: Daan Hoogland <d...@onecht.net>
>> >>> > > Date:   Fri Dec 20 16:47:58 2013 +0100
>> >>> > >
>> >>> > >     check vlans and other isolation types
>> >>> > >
>> >>> > > commit d50517e931e68daef6735bd18273499fee0d4649
>> >>> > > Author: Sateesh Chodapuneedi <sate...@apache.org>
>> >>> > > Date:   Tue Dec 31 07:16:35 2013 +0530
>> >>> > >
>> >>> > > I also have a commit just after these, but it was pretty minor and
>> >>> > > only to KVM agent code.
>> >>> > >
>> >>> > > On Wed, Jan 1, 2014 at 3:27 PM, Mike Tutkowski
>> >>> > > <mike.tutkow...@solidfire.com> wrote:
>> >>> > > > Hey guys,
>> >>> > > >
>> >>> > > > The NPE I saw last night was related to "isolation id." Is it
>> >>> possible
>> >>> > > this
>> >>> > > > NPE is related to something new that was put that you are talking
>> >>> about
>> >>> > > > here?
>> >>> > > >
>> >>> > > > Thank!
>> >>> > > >
>> >>> > > > ERROR [c.c.a.ApiServer] (1583467451@qtp-185135566-2:ctx-ae5d80b2
>> >>> > > > ctx-5c12c4d9) unhandled exception executing api command:
>> >>> > > createVlanIpRange
>> >>> > > > java.lang.NullPointerException
>> >>> > > >     at
>> >>> > com.cloud.utils.net.NetUtils.isSameIsolationId(NetUtils.java:1419)
>> >>> > > >     at com.cloud.configuration.ConfigurationManagerImpl.
>> >>> > > > createVlanAndPublicIpRange(ConfigurationManagerImpl.java:2474)
>> >>> > > >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> >>> > > >     at sun.reflect.NativeMethodAccessorImpl.invoke(
>> >>> > > > NativeMethodAccessorImpl.java:57)
>> >>> > > >     at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> >>> > > > DelegatingMethodAccessorImpl.java:43)
>> >>> > > >     at java.lang.reflect.Method.invoke(Method.java:616)
>> >>> > > >     at org.springframework.aop.support.AopUtils.
>> >>> > > > invokeJoinpointUsingReflection(AopUtils.java:317)
>> >>> > > >     at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.
>> >>> > > > invokeJoinpoint(ReflectiveMethodInvocation.java:183)
>> >>> > > >     at
>> >>> > >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
>> >>> > > > ReflectiveMethodInvocation.java:150)
>> >>> > > >     at com.cloud.event.ActionEventInterceptor.invoke(
>> >>> > > > ActionEventInterceptor.java:50)
>> >>> > > >     at
>> >>> > >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
>> >>> > > > ReflectiveMethodInvocation.java:161)
>> >>> > > >     at
>> >>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.
>> >>> > > > invoke(ExposeInvocationInterceptor.java:91)
>> >>> > > >     at
>> >>> > >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
>> >>> > > > ReflectiveMethodInvocation.java:172)
>> >>> > > >     at org.springframework.aop.framework.JdkDynamicAopProxy.
>> >>> > > > invoke(JdkDynamicAopProxy.java:204)
>> >>> > > >     at sun.proxy.$Proxy96.createVlanAndPublicIpRange(Unknown
>> Source)
>> >>> > > >     at org.apache.cloudstack.api.command.admin.vlan.
>> >>> > > > CreateVlanIpRangeCmd.execute(CreateVlanIpRangeCmd.java:211)
>> >>> > > >     at
>> com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:161)
>> >>> > > >     at com.cloud.api.ApiServer.queueCommand(ApiServer.java:530)
>> >>> > > >     at com.cloud.api.ApiServer.handleRequest(ApiServer.java:373)
>> >>> > > >     at
>> >>> > >
>> com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:322)
>> >>> > > >     at com.cloud.api.ApiServlet.access$000(ApiServlet.java:52)
>> >>> > > >     at com.cloud.api.ApiServlet$1.run(ApiServlet.java:114)
>> >>> > > >     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:111)
>> >>> > > >
>> >>> > > >
>> >>> > > > On Wed, Jan 1, 2014 at 2:33 PM, Marcus Sorensen <
>> >>> shadow...@gmail.com>
>> >>> > > wrote:
>> >>> > > >
>> >>> > > >> That's just it. The isolation type *is* provided when creating
>> >>> > > >> physical network. If I create a physical network with isolation
>> >>> type
>> >>> > > >> 'VXLAN', and then add traffic type of 'Public', it doesn't obey
>> it.
>> >>> > > >> There's physical_networks and networks, when the zone is
>> created,
>> >>> an
>> >>> > > >> entry goes in network that is Public/Vlan, hardcoded. The Public
>> >>> > > >> traffic type uses this, regardless of what the physical_network
>> its
>> >>> > > >> being added to says. So if we updated the the public network
>> table
>> >>> row
>> >>> > > >> with the correct isolation method for that physical network we
>> are
>> >>> > > >> adding traffic type to when we add the public traffic type, that
>> >>> would
>> >>> > > >> work. It's worth noting that a zone can only have one physical
>> >>> network
>> >>> > > >> with traffic type of public.
>> >>> > > >>
>> >>> > > >> On Wed, Jan 1, 2014 at 12:37 PM, Daan Hoogland <
>> >>> > daan.hoogl...@gmail.com
>> >>> > > >
>> >>> > > >> wrote:
>> >>> > > >> >> While I've got your attention, what's the deal with isolation
>> >>> > method
>> >>> > > vs
>> >>> > > >> broadcast method? These are always set to the same thing as far
>> as
>> >>> > I've
>> >>> > > >> seen.
>> >>> > > >> >
>> >>> > > >> > I've been asking this but haven't found the answer yet. There
>> is
>> >>> an
>> >>> > > >> > overlap but both have some extra values the other hasn't.
>> >>> > > >> >
>> >>> > > >> > I don't like either of your solutions but haven't got a good
>> >>> > > >> > alternative. Best would be to be able to set the isolation
>> type
>> >>> on
>> >>> > > >> > each physical network on creation. The wizard and zone
>> creation
>> >>> api
>> >>> > > >> > command would have to be extended and allow for vlan as
>> default.
>> >>> > > >> >
>> >>> > > >> > regards,
>> >>> > > >> >
>> >>> > > >> > On Wed, Jan 1, 2014 at 8:53 AM, Marcus Sorensen <
>> >>> > shadow...@gmail.com>
>> >>> > > >> wrote:
>> >>> > > >> >> I suppose the answer might be to update the network with the
>> >>> proper
>> >>> > > >> >> isolation method when the traffic type is added. Look up the
>> >>> > physical
>> >>> > > >> >> network's isolation method, grab network object for the
>> public
>> >>> > > network,
>> >>> > > >> and
>> >>> > > >> >> set the right isolation.
>> >>> > > >> >> On Jan 1, 2014 12:46 AM, "Marcus Sorensen" <
>> shadow...@gmail.com
>> >>> >
>> >>> > > wrote:
>> >>> > > >> >>
>> >>> > > >> >>>   I ran into an issue today that I'm still trying to wrap my
>> >>> head
>> >>> > > >> >>> around, and I wanted to bounce this off of you guys. I have
>> a
>> >>> > > physical
>> >>> > > >> >>> network whose isolation method is set to 'VXLAN' (v4.3+). I
>> >>> add my
>> >>> > > >> >>> Public traffic type to it. I'd assume that nics generated
>> for
>> >>> > public
>> >>> > > >> >>> traffic would have the standard vxlan://  URI for  isolation
>> >>> URI
>> >>> > and
>> >>> > > >> >>> broadcast URI, but they just have a vlan://. Digging into
>> it,
>> >>> it
>> >>> > > seems
>> >>> > > >> >>> that public traffic is hard-coded to
>> BroadcastDomainType.Vlan.
>> >>> I
>> >>> > > fixed
>> >>> > > >> >>> this fairly easily for my testing, there were only a few
>> >>> places to
>> >>> > > >> >>> fix, by pulling the BroadcastDomainType from the network
>> object
>> >>> > > rather
>> >>> > > >> >>> than hardcoding it, but that found another problem. This
>> only
>> >>> > works
>> >>> > > if
>> >>> > > >> >>> I change the broadcast type in the 'networks' mysql table by
>> >>> hand,
>> >>> > > as
>> >>> > > >> >>> during zone deployment the public network creation is also
>> >>> > > hard-coded
>> >>> > > >> >>> to vlan.
>> >>> > > >> >>>
>> >>> > > >> >>>   I'm not sure how to go about fixing this, since the
>> Public,
>> >>> > > Control,
>> >>> > > >> >>> Management networks are created upon zone deployment, (see
>> >>> > > >> >>> createDefaultSystemNetworks). The immediate thing that
>> jumped
>> >>> out
>> >>> > > was
>> >>> > > >> >>> a config variable for public isolation method, set prior to
>> >>> zone
>> >>> > > >> >>> deployment, or perhaps even one that overrides what's in the
>> >>> > table.
>> >>> > > >> >>>
>> >>> > > >> >>>   While I've got your attention, what's the deal with
>> isolation
>> >>> > > method
>> >>> > > >> >>> vs broadcast method? These are always set to the same thing
>> as
>> >>> far
>> >>> > > as
>> >>> > > >> >>> I've seen.
>> >>> > > >> >>>
>> >>> > > >>
>> >>> > > >
>> >>> > > >
>> >>> > > >
>> >>> > > > --
>> >>> > > > *Mike Tutkowski*
>> >>> > > > *Senior CloudStack Developer, SolidFire Inc.*
>> >>> > > > e: mike.tutkow...@solidfire.com
>> >>> > > > o: 303.746.7302
>> >>> > > > Advancing the way the world uses the
>> >>> > > > cloud<http://solidfire.com/solution/overview/?video=play>
>> >>> > > > *™*
>> >>> > >
>> >>> >
>> >>> >
>> >>> >
>> >>> > --
>> >>> > *Mike Tutkowski*
>> >>> > *Senior CloudStack Developer, SolidFire Inc.*
>> >>> > e: mike.tutkow...@solidfire.com
>> >>> > o: 303.746.7302
>> >>> > Advancing the way the world uses the
>> >>> > cloud<http://solidfire.com/solution/overview/?video=play>
>> >>> > *™*
>> >>> >
>> >>>
>> >>
>> >>
>> >>
>> >> --
>> >> *Mike Tutkowski*
>> >> *Senior CloudStack Developer, SolidFire Inc.*
>> >> e: mike.tutkow...@solidfire.com
>> >> o: 303.746.7302
>> >> Advancing the way the world uses the cloud<
>> http://solidfire.com/solution/overview/?video=play>
>> >> *™*
>> >>
>> >
>> >
>> >
>> > --
>> > *Mike Tutkowski*
>> > *Senior CloudStack Developer, SolidFire Inc.*
>> > e: mike.tutkow...@solidfire.com
>> > o: 303.746.7302
>> > Advancing the way the world uses the
>> > cloud<http://solidfire.com/solution/overview/?video=play>
>> > *™*
>>
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the
> cloud<http://solidfire.com/solution/overview/?video=play>
> *™*

Reply via email to