Description
We have some CSIT failures reported here: https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/bgpcep-csit-1node-userfeatures-all-phosphorus/179/robot-plugin/log.html.gz
There seems to be some sort of a mismatch between pccmock and ODL w.r.t encoding of PCInitiate (or thereabout, see https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/bgpcep-csit-1node-userfeatures-all-phosphorus/179/robot-plugin/log.html.gz#s1-s2-k2-k3 ):
09:24:00.992 [epollEventLoopGroup-2-1] ERROR org.opendaylight.protocol.pcep.impl.PCEPSessionImpl - Exception captured for session PCEPSessionImpl{channel=[id: 0x0d6906c7, L:/10.30.170.250:44779 - R:10.30.170.242/10.30.170.242:4189], localOpen=Open{deadTimer=120, keepalive=30, sessionId=1, tlvs=Tlvs{augmentation=[Tlvs1{stateful=Stateful{lspUpdateCapability=true, augmentation=[Stateful1{deltaLspSyncCapability=false, includeDbVersion=false, triggeredInitialSync=false, triggeredResync=false}, Stateful1{initiation=true}]}}, Tlvs3{lspDbVersion=LspDbVersion{lspDbVersionValue=1, augmentation=[]}}]}, augmentation=[]}, remoteOpen=Open{deadTimer=120, ignore=false, keepalive=30, processingRule=false, sessionId=1, tlvs=Tlvs{augmentation=[Tlvs1{stateful=Stateful{lspUpdateCapability=true, augmentation=[Stateful1{deltaLspSyncCapability=true, includeDbVersion=true, triggeredInitialSync=true, triggeredResync=true}, Stateful1{initiation=true}]}}, Tlvs3{}]}, version=ProtocolVersion{_value=1}, augmentation=[]}}, closing session.
io.netty.handler.codec.DecoderException: java.lang.ClassCastException: class org.opendaylight.protocol.pcep.spi.UnknownObject cannot be cast to class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.srp.object.Srp (org.opendaylight.protocol.pcep.spi.UnknownObject and org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.srp.object.Srp are in unnamed module of loader 'app')
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:477)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:425)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassCastException: class org.opendaylight.protocol.pcep.spi.UnknownObject cannot be cast to class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.srp.object.Srp (org.opendaylight.protocol.pcep.spi.UnknownObject and org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.srp.object.Srp are in unnamed module of loader 'app')
at org.opendaylight.protocol.pcep.ietf.initiated.InitiatedPCInitiateMessageParser.getValidRequest(InitiatedPCInitiateMessageParser.java:89)
at org.opendaylight.protocol.pcep.ietf.initiated.InitiatedPCInitiateMessageParser.validate(InitiatedPCInitiateMessageParser.java:81)
at org.opendaylight.protocol.pcep.spi.AbstractMessageParser.parseMessage(AbstractMessageParser.java:135)
at org.opendaylight.protocol.pcep.spi.pojo.SimpleMessageRegistry.parseMessage(SimpleMessageRegistry.java:51)
at org.opendaylight.protocol.pcep.impl.PCEPByteToMessageDecoder.parse(PCEPByteToMessageDecoder.java:82)
at org.opendaylight.protocol.pcep.impl.PCEPByteToMessageDecoder.decode(PCEPByteToMessageDecoder.java:51)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:507)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:446)
... 22 common frames omitted