kieker-monitoring / kieker

Kieker's main repository
Apache License 2.0
70 stars 41 forks source link

[KIEKER-533] FS Readers terminate immediately on unknown types #1376

Closed rju closed 11 hours ago

rju commented 3 days ago

JIRA Issue: KIEKER-533 FS Readers terminate immediately on unknown types Original Reporter: Andre van Hoorn


FSReaders do provide the property "readOnlyRecordsOfType"; however, this functionality doesn't work any more. Also, thanks to the new pipe-and-filter framework, it also isn't required to have this feature any longer.

1. We will remove this property
and
2. Add a new property "ignoreUnknownRecordTypes" which defaults to false. If the property is set to false, the behavior is exactly like the current one. If true, the reader ignore records of this type and proceeds.

rju commented 2 days ago

author André van Hoorn -- Fri, 30 Mar 2012 21:28:36 +0200

Implemented fix (and tests) in

New tests to be found in

rju commented 2 days ago

author André van Hoorn -- Fri, 30 Mar 2012 22:22:10 +0200

The TraceAnalysisTool configures the FSReader to ignore unknown types (9f87071ae76c99bb36054f84cb6ad9ef0e50611a).

Tested by

1. Executing the main in BookstoreEventRecordFactory
1. Manipulating the kieker.map
{{

{ avanhoornavanhoorn-thinkpad:0:~/git_work/kieker <master> $ cat /tmp/kieker-20120330-201321543-UTC-avanhoorn-thinkpad-KIEKER-SINGLETON/kieker.map $0=kieker.common.record.flow.trace.TraceXY $1=kieker.common.record.flow.trace.operation.BeforeOperationEvent $2=kieker.common.record.flow.trace.operation.AfterOperationEvent $3=kieker.common.record.flow.trace.operation.CallOperationEvent }

}}
1. Executing the TraceAnalysis tool

avanhoornavanhoorn-thinkpad:0:~/git_work/kieker <master> $ bin/trace-analysis.sh -i /tmp/kieker-20120330-201321543-UTC-avanhoorn-thinkpad-KIEKER-SINGLETON/ -o tmp/ -p 23- --plot-Aggregated-Deployment-Call-Tree --plot-Aggregated-Assembly-Call-Tree

#
# Plugin: Aggregated call tree (deployment level)
Trace processing summary: 3 total; 3 succeeded; 0 failed.
Saved 1 call tree

#
# Plugin: Aggregated call tree (assembly level)
Trace processing summary: 3 total; 3 succeeded; 0 failed.
Saved 1 call tree

#
# Plugin: Trace reconstruction (execution records -> execution traces)
Trace processing summary: 0 total; 0 succeeded; 0 failed.

#
# Plugin: Trace reconstruction (trace event records -> event record traces)
Trace processing summary: 3 total; 3 succeeded; 0 failed.
First timestamp: 7676876 (Thu, 1 Jan 1970 00:00:00 +0000 (UTC),Thu, 1 Jan 1970 01:00:00 +0100 (local time))
Last timestamp: 7678887 (Thu, 1 Jan 1970 00:00:00 +0000 (UTC),Thu, 1 Jan 1970 01:00:00 +0100 (local time))

#
# Plugin: Trace reconstruction (event record traces -> execution traces)
Trace processing summary: 3 total; 3 succeeded; 0 failed.

4. Inspecting the log.

avanhoornavanhoorn-thinkpad:0:~/git_work/kieker <master> $ cat kieker.log 
0    INFO  [Thread-2] kieker.analysis.plugin.reader.filesystem.FSDirectoryReader     - < Loading /tmp/kieker-20120330-201321543-UTC-avanhoorn-thinkpad-KIEKER-SINGLETON/kieker-20120330-201321668-UTC--000-Thread-3.dat
5    ERROR [Thread-2] kieker.analysis.plugin.reader.filesystem.FSDirectoryReader     - Failed to load record type kieker.common.record.flow.trace.TraceXY
kieker.common.exception.MonitoringRecordException: Failed to get record type of name kieker.common.record.flow.trace.TraceXY
        at kieker.common.record.AbstractMonitoringRecord.classForName(AbstractMonitoringRecord.java:206)
        at kieker.analysis.plugin.reader.filesystem.FSDirectoryReader.processNormalInputFile(FSDirectoryReader.java:227)
        at kieker.analysis.plugin.reader.filesystem.FSDirectoryReader.run(FSDirectoryReader.java:120)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: kieker.common.record.flow.trace.TraceXY
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at kieker.common.record.AbstractMonitoringRecord.classForName(AbstractMonitoringRecord.java:204)
        ... 3 more
33   INFO  [main]    kieker.analysis.AnalysisController     - Terminating analysis.
33   INFO  [main] kieker.analysis.plugin.reader.filesystem.FSReader     - Shutting down reader.
740  INFO  [main] kieker.tools.traceAnalysis.TraceAnalysisTool     - Saved analysis configuration to file '/home/avanhoorn/git_work/kieker/tmp/23-traceAnalysis.kax'