Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-1905

CompositeReadableBuffer.duplicate seen to throw a NPE during frame logging

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: proton-j-0.27.0, proton-j-0.28.0
    • Fix Version/s: None
    • Component/s: proton-j
    • Labels:
      None

      Description

      Whilst verifying the RC1 candidate for the 0.27.3 RC1, the proton_tests.engine.CreditTest.testDrainOrder Jython test caused a NPE with Proton-J's application code. I realised later my shell had the PN_TRACE_FRM=true environment variable set. Unsetting the variable allows the test to pass. The regression was introduced at 0.27.0.

      proton_tests.engine.CreditTest.testDrainOrder ...........................[1346009488:0] -> Open{ containerId='', hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}, target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}, target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, linkCredit=10, available=null, drain=false, echo=false, properties=null}
      [1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, resume=false, aborted=false, batchable=false} (1) "A"
       fail
      Error during test:  Traceback (most recent call last):
          File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test", line 362, in run
            phase()
          File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py", line 1556, in testDrainOrder
            self.pump()
          File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py", line 112, in pump
            pump(t1, t2, buffer_size)
          File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py", line 113, in pump
            while (pump_uni(transport1, transport2, buffer_size) or
          File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py", line 86, in pump_uni
            p = src.pending()
          File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py", line 2764, in pending
            p = pn_transport_pending(self._impl)
          File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py", line 936, in pn_transport_pending
            return trans.impl.pending()
        NullPointerException: java.lang.NullPointerException
          org.apache.qpid.proton.codec.CompositeReadableBuffer.<init>(CompositeReadableBuffer.java:69)
          org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:474)
          org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:35)
          org.apache.qpid.proton.amqp.Binary.create(Binary.java:181)
          org.apache.qpid.proton.engine.impl.FrameWriter.logFrame(FrameWriter.java:200)
          org.apache.qpid.proton.engine.impl.FrameWriter.writeFrame(FrameWriter.java:168)
          org.apache.qpid.proton.engine.impl.TransportImpl.writeFrame(TransportImpl.java:1081)
          org.apache.qpid.proton.engine.impl.TransportImpl.processTransportWorkSender(TransportImpl.java:606)
          org.apache.qpid.proton.engine.impl.TransportImpl.processTransportWork(TransportImpl.java:518)
          org.apache.qpid.proton.engine.impl.TransportImpl.writeInto(TransportImpl.java:347)
          org.apache.qpid.proton.engine.impl.TransportOutputAdaptor.pending(TransportOutputAdaptor.java:59)
          org.apache.qpid.proton.engine.impl.TransportImpl.pending(TransportImpl.java:1532)
          sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
          sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          java.lang.reflect.Method.invoke(Method.java:498)
      proton_tests.engine.CreditTest.testDrainZero ............................[2018964506:0] -> Open{ containerId='', hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                k-wall Keith Wall
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: