IBMStreams / streamsx.topology

Develop streaming applications for IBM Streams in Python, Java & Scala.
http://ibmstreams.github.io/streamsx.topology
Apache License 2.0
29 stars 43 forks source link

exceptions from TStream.periodicSource's Supplier don't get reported #213

Closed dlaboss closed 4 years ago

dlaboss commented 9 years ago

I have Supplier implementations that throw an exception. Nothing gets reported in EMBEDDED when used from periodicSource(). The stream just silently ends up with 0 tuples on it.

ddebrunner commented 9 years ago

Think this is an issue with IBM Streams.

The periodic task executed by the operator will throw an exception, which is traced, so it's not a silent error, and the periodic task is cancelled, but this is not seen by the SPL runtime, as the scheduler does not explicitly report it.

dlaboss commented 9 years ago

hmm... I just forced the failure by wacking FunctionalSubmissionParamsTest.PeriodicSourceTest() (change 10 to something else in the statement: params.put("someInt", 10)) -- that induces the sourceSupplier.get() to throw and AssertionError, and ran EMBEDDED. The test fails but nothing is captured in the XML file other than 0 tuples were received. I've modified build.xml with showoutput="yes".

  ...
  <testcase classname="com.ibm.streamsx.topology.test.api.FunctionalSubmissionParamsTest" name="PeriodicSourceTest" time="15.021">
    <failure message="Expected tuple count: 5 != received: 0" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: Expected tuple count: 5 != received: 0
    at com.ibm.streamsx.topology.test.api.FunctionalSubmissionParamsTest.PeriodicSourceTest(FunctionalSubmissionParamsTest.java:159)
</failure>
  </testcase>
  <testcase classname="com.ibm.streamsx.topology.test.api.FunctionalSubmissionParamsTest" name="OthersTest" time="0.0">
    <skipped message="Suddenly started failing on jenkins streamsx.topology - but only there (expected 100 got 0). Get the build working again." />
  </testcase>
  <testcase classname="com.ibm.streamsx.topology.test.api.FunctionalSubmissionParamsTest" name="AllTypesTest" time="0.148" />
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
ddebrunner commented 9 years ago

Pull request #230 adds a test that throws an exception from a periodic source and when running in Eclipse I see the exception in the console.