Closed dlaboss closed 4 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.
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>
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.
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.