Skip to content
Snippets Groups Projects
Commit 8c43bdcc authored by Florian Fittkau's avatar Florian Fittkau
Browse files

for testing: fixed remote records handled by trace reconstruction

parent 6d78188e
No related branches found
No related tags found
No related merge requests found
......@@ -17,8 +17,6 @@ class TraceReconstructionBuffer {
private final List<AbstractEventRecord> events = new ArrayList<AbstractEventRecord>(
Constants.TRACE_RECONSTRUCTION_BUFFER_INITIAL_SIZE);
private boolean closeable;
private int openEvents;
private volatile boolean updatedInThisPeriod = true;
......@@ -28,16 +26,12 @@ class TraceReconstructionBuffer {
public final void insertEvent(final AbstractEventRecord event) {
updatedInThisPeriod = true;
final int orderIndex = setMaxOrderIndex(event);
setMaxOrderIndex(event);
if (event instanceof AbstractBeforeEventRecord) {
if (orderIndex == 0) {
closeable = true;
}
openEvents++;
} else if (event instanceof AbstractAfterFailedEventRecord) {
openEvents--;
} else if (event instanceof AbstractAfterEventRecord) {
} else if ((event instanceof AbstractAfterFailedEventRecord)
|| (event instanceof AbstractAfterEventRecord)) {
openEvents--;
}
......@@ -73,7 +67,7 @@ class TraceReconstructionBuffer {
}
public final boolean isInvalid() {
return ((openEvents != 0) || events.isEmpty() || ((maxOrderIndex + 1) != events.size()) || !closeable);
return ((openEvents != 0) || events.isEmpty() || ((maxOrderIndex + 1) != events.size()));
}
public final Trace toTrace(final boolean valid) {
......@@ -83,11 +77,14 @@ class TraceReconstructionBuffer {
stack.push((AbstractBeforeEventRecord) event);
} else if ((event instanceof AbstractAfterEventRecord)
|| (event instanceof AbstractAfterFailedEventRecord)) {
if (!stack.isEmpty()) {
final AbstractBeforeEventRecord beforeEvent = stack.pop();
final long time = event.getLoggingTimestamp() - beforeEvent.getLoggingTimestamp();
beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1, time,
time * time));
final long time = event.getLoggingTimestamp()
- beforeEvent.getLoggingTimestamp();
beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1,
time, time * time));
}
}
}
return new Trace(events, valid);
......
......@@ -81,7 +81,7 @@ public final class TraceReconstructionFilter extends AbstractFilter implements I
} else {
traceBuffer.updateLastBufferInsert();
if (traceBuffer.getLastBufferInsert() <= traceTimeout) {
if ((timestamp - traceBuffer.getLastBufferInsert()) <= traceTimeout) {
deliver(traceBuffer.toTrace(false));
traceIdsToRemove.add(entry.getKey());
}
......
......@@ -49,7 +49,6 @@ public final class TCPReader {
thread.start();
threads.add(thread);
}
serversocket.close();
} catch (final IOException ex) {
System.out.println("Error in read() " + ex.getMessage());
} finally {
......
......@@ -51,6 +51,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
this.ringBuffer = ringBuffer;
new TimeSignalReader(TimeUnit.SECONDS.toMillis(1), this).start();
// TODO if 2 clients connected => bad
}
@Override
......@@ -63,6 +64,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
}
} catch (final IOException ex) {
System.out.println("Error in read() " + ex.getMessage());
// TODO cancel timer???
}
}
......@@ -398,6 +400,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
private final void readInReceivedRemoteCallEvent(final ByteBuffer buffer) {
final long callerTraceId = buffer.getLong();
final int callerOrderIndex = buffer.getInt();
System.out.println("worker: received remote - callerTraceId: " + callerTraceId);
final long timestamp = buffer.getLong();
final long traceId = buffer.getLong();
......@@ -456,6 +459,8 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
final int orderIndex = buffer.getInt();
final int destinationId = buffer.getInt();
System.out.println("worker: sent remote - traceId: " + traceId);
try {
putInRingBuffer(new SentRemoteCallRecord(timestamp,
stringRegistry.getStringFromId(destinationId), traceId, orderIndex,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment