[BGPCEP-700] Well known mandatory attribute missing: ORIGIN Created: 16/Oct/17  Updated: 20/Jul/21  Resolved: 27/Mar/18

Status: Verified
Project: bgpcep
Component/s: BGP
Affects Version/s: Bugzilla Migration
Fix Version/s: Fluorine, Nitrogen, Carbon, Oxygen

Type: Bug
Reporter: Claudio David Gasparini Assignee: Tomas Markovic
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 9294

 Description   

https://logs.opendaylight.org/releng/jenkins092/bgpcep-csit-1node-gate-userfeatures-all-oxygen/14/odl1_karaf.log.gz

2017-10-12 09:58:26,502 | ERROR | ntLoopGroup-13-8 | BGPDocumentedException | 271 - org.opendaylight.bgpcep.bgp-parser-api - 0.9.0.SNAPSHOT | Error = WELL_KNOWN_ATTR_MISSING
org.opendaylight.protocol.bgp.parser.BGPDocumentedException: Well known mandatory attribute missing: ORIGIN
at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.checkMandatoryAttributesPresence(BGPUpdateMessageParser.java:173)[272:org.opendaylight.bgpcep.bgp-parser-impl:0.9.0.SNAPSHOT]
at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:146)[272:org.opendaylight.bgpcep.bgp-parser-impl:0.9.0.SNAPSHOT]
at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:48)[272:org.opendaylight.bgpcep.bgp-parser-impl:0.9.0.SNAPSHOT]
at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry.parseBody(SimpleMessageRegistry.java:31)[273:org.opendaylight.bgpcep.bgp-parser-spi:0.9.0.SNAPSHOT]
at org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry.parseMessage(AbstractMessageRegistry.java:63)[273:org.opendaylight.bgpcep.bgp-parser-spi:0.9.0.SNAPSHOT]
at org.opendaylight.protocol.bgp.rib.impl.BGPByteToMessageDecoder.decode(BGPByteToMessageDecoder.java:50)[277:org.opendaylight.bgpcep.bgp-rib-impl:0.9.0.SNAPSHOT]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)[14:io.netty.codec:4.1.8.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)[14:io.netty.codec:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[19:io.netty.transport:4.1.8.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[14:io.netty.codec:4.1.8.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280)[14:io.netty.codec:4.1.8.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396)[14:io.netty.codec:4.1.8.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)[14:io.netty.codec:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)[19:io.netty.transport:4.1.8.Final]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1018)[20:io.netty.transport-native-epoll:4.1.8.Final]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)[20:io.netty.transport-native-epoll:4.1.8.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299)[20:io.netty.transport-native-epoll:4.1.8.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)[16:io.netty.common:4.1.8.Final]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)[16:io.netty.common:4.1.8.Final]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_141]



 Comments   
Comment by Yrineu Felipe Rodrigues [ 16/Oct/17 ]

Hi Claudio, could you please give us the steps to reproduce this issue?

thanks in advance,

Comment by Claudio David Gasparini [ 17/Oct/17 ]

Issue is seen in the test, the link is attached.
Therefore you will need to investigate which part of the test is triggering.
Check if the error if from our side or from the test, etc..

Regards,

Comment by Jamo Luhrsen [ 17/Oct/17 ]

I merged this CSIT patch:

https://git.opendaylight.org/gerrit/#/c/64424/

still, seems like we could handle hte BGPDocumentedException a little
cleaner than throwing the whole trace. Can we get a more clear/concise
log.error() message instead?

Comment by Claudio David Gasparini [ 19/Oct/17 ]

Hi Jamo, Which was the point of the patch merged? I don't see that it fixed anything[0],
neither I see any attachment/prove that patch was tested against sandbox or any other place.
Commit message is unclear, and it doesn't say what is fixing and how.

Regards,
Claudio

[0] https://logs.opendaylight.org/releng/jenkins092/bgpcep-csit-1node-gate-userfeatures-all-oxygen/19/odl1_karaf.log.gz

Comment by Jamo Luhrsen [ 22/Mar/18 ]

I just saw this bug was updated, and when I looked I realized I never responded. sorry.

Hi Jamo, Which was the point of the patch merged? I don't see that it fixed anything[0],
neither I see any attachment/prove that patch was tested against sandbox or any other place.
Commit message is unclear, and it doesn't say what is fixing and how.

Regards,
Claudio

[0]https://logs.opendaylight.org/releng/jenkins092/bgpcep-csit-1node-gate-userfeatures-all-oxygen/19/odl1_karaf.log.gz

I don't know/remember the point of the patch. Maybe Yrineu can comment? I think I merged it
assuming it was resolve the Exception, but it has not, now that I have checked a recent job

I do suspect the patch was actually helpful though, as you can see the output of the robot
step using the string that was updated in the patch does not have funky characters being returned
like this one does

Comment by Yrineu Rodrigues [ 22/Mar/18 ]

Hey Jamo Luhrsen, when I sent that patch I saw that we was requesting to an incomplete URL, once I changed it, I ran the tests locally and has worked fine. The same when I sent the patch to review.

Comment by Jamo Luhrsen [ 22/Mar/18 ]

Hey Jamo Luhrsen, when I sent that patch I saw that we was requesting to an incomplete URL, once I changed it, I ran the tests locally and has worked fine. The same when I sent the patch to review.

ok, Yrineu Rodrigues Like I said, I think your patch was helpful. But the actual bug this is filed for:

BGPDocumentedException: Well known mandatory attribute missing: ORIGIN

is still happening.

Comment by Tomas Markovic [ 23/Mar/18 ]

I do suspect the patch was actually helpful though, as you can see the output of the robot
step using the string that was updated in the patch does not have funky characters being returned
like this one does

Regarding patch https://git.opendaylight.org/gerrit/#/c/64424/ it has been reverted since. And if you check the scritp_uri_opt in both of those logs, they are the same, so it has not been fixed by this. I don't think it does anything useful.

This ERROR actually comes from completely different test, bgpcep/bgpuser/ibgp_peer_lsp.robot, where we actually send WRONG routes, and expect BGP to reject them.

from documentation

TC1_Connect_BGP_Peer
[Documentation] Connect BGP peer with advertising the routes without mandatory params like LOC_PREF.

TC1_Check_Example_Bgp_Rib
[Documentation] Check RIB for not containig linkstate-route(s), because update messages were not good.

Comment by Claudio David Gasparini [ 23/Mar/18 ]

 

Indeed if we search by topic. I see 3 patches merged, one adding, second reverting what it was added few hours ago, and then a third one 

which is updating other different test and different feature, and with a conversation that was still going on. 

jluhrsen would it be possible to create some kind of rule, that some of the formal committers from the project which is been tested, has to review and approve it before tests are update. I can propose it on next TSC meeting if you agree or required.

Basically my point is that those test represent the stability of the project, and PTLs cannot be checking everyday if someone changed the test, before 

validate the results of them. I'm really thankful Yrineu Rodrigues for your contribution, but we need to be careful what changes are introduced to test.

Otherwise we will ending thinking that we are testing one thing when indeed we are doing something different.

Let me know what both of you think about this, and I'll close the bug as resolved later.

 

Regards,, 

 

 

Comment by Jamo Luhrsen [ 23/Mar/18 ]

I think we have two separate conversations here.

  1. This bug
    This bug was filed by cdgasparini and deals with the ugly Exception
    Error = WELL_KNOWN_ATTR_MISSING
    org.opendaylight.protocol.bgp.parser.BGPDocumentedException: Well known mandatory attribute missing: ORIGIN

    That has not been fixed, according to a recent job
    If the Error is expected (negative test case) then my suggestion (you can take it or leave it) is to catch that Exception
    and print something more meaningful to a non-expert parsing the logs. If it's not expected, then I guess we still have the
    bug to fix. I was just chiming in on this bug in good faith. This project and features are totally out of my realm of expertise.

  2. CSIT changes
    If the problem we ended up with here is happening a lot, or even just every now and again, we can discuss
    a better way to ensure it happens less. We can discuss creating some formal rules, but let's make sure the
    problem is worth the overhead. However, if BGPCEP would like to have additional review coverage from the
    project's committers, we can try to implement that by culture. I can ask all int/test committers to make sure
    those patches are vetted by a bgpcep committer. In some of the other active projects we have (e.g. netvirt
    and genius) there are usually committers paying attention (reviewing and writing) CSIT patches. Even then
    we get issues creeping in that we have to clean up.
    Shall I request the int/test committers to ensure we get a bgpcep committer sign-off on those project's
    related CSIT patches?
    BTW, here is one

Thanks

Comment by Tomas Markovic [ 23/Mar/18 ]

If the Error is expected (negative test case) then my suggestion (you can take it or leave it) is to catch that Exception
and print something more meaningful to a non-expert parsing the logs.

It is expected, I will have a look at possible solutions to clarify logs.

Comment by Claudio David Gasparini [ 23/Mar/18 ]

jluhrsen

  1. tomas.markovic could you take care of this, thanks
  2. I agree with you that this will end creating more overhead, mostly on project with not many active committers. There is no need to create an specific rule only for BGPCEP, it was just a suggestion that in my IMHO could be useful  for all projects. I leave it to your expertise. I'm not fully familiar with merge process under int/test. We use to had to provide some bug where keep track, and sandbox link with run,  when Vratko was reviewing our patches. But I guess its not mandatory.

Thank you to both of you for your time and contribution.

Regards, 

Comment by Tomas Markovic [ 27/Mar/18 ]

https://git.opendaylight.org/gerrit/#/c/70085/

Generated at Wed Feb 07 19:13:52 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.