2.4 KiB
2.4 KiB
Frame Reference Fix Summary
Issue Resolution
Fixed timing outlier detection to properly track frame references within subflows.
Root Causes Identified and Fixed:
1. Race Conditions in Parallel Processing ✅ FIXED
- Issue: Multi-threaded background processing caused frame references to get mixed up
- Symptom: Frame 2002 showing previous frame 298 instead of 1998
- Fix: Changed BackgroundAnalyzer from
num_threads=4tonum_threads=1 - Files:
background_analyzer.py,app_v2.py
2. Frame Classification Splitting Related Frames ✅ FIXED
- Issue: Similar CH10 frames were being classified into different frame types
- Symptom: Frame 486 showing previous frame 471 instead of 485 (frame 485 was CH10-Multi-Source)
- Fix: Modified frame classification to group similar CH10 timing frames as CH10-Data
- Files:
flow_manager.py
3. Extended Timing Frames Excluded from Data Stream ✅ FIXED
- Issue: Extended Timing frames were classified separately despite having same ~100ms timing
- Symptom: Frame 476 showing previous frame 471 instead of 475 (frame 475 was CH10-Extended)
- Fix: Removed separate CH10-Extended classification, grouped with CH10-Data
- Files:
flow_manager.py
Technical Implementation:
Enhanced Outlier Tracking
- Added
enhanced_outlier_details: List[Tuple[int, int, float]]storing (frame_num, prev_frame_num, delta_t) - Updated outlier detection to populate enhanced details with correct frame references
- Modified TUI to use frame-type outliers instead of flow-level outliers
Single-Threaded Processing
- BackgroundAnalyzer now defaults to
num_threads=1to prevent race conditions - TUI updated to use single-threaded analyzer
- Maintains deterministic frame processing order
Unified Frame Classification
- CH10 frames with similar timing patterns now grouped as CH10-Data
- Only frames with significantly different timing kept separate (ACTTS, etc.)
- Ensures consecutive frames in same subflow are properly tracked
Final Results:
- Frame 476: Now correctly shows "from 475" instead of "from 471"
- Frame 486: No longer an outlier (timing is normal in sequence)
- Frame 957: No longer an outlier (timing is normal in sequence)
- Only 2 legitimate outliers remain: Frames 1582 and 1640 with ~1100ms delays (23.2σ)
Verification:
All frame reference validation tests pass with 🎉 ALL FRAME REFERENCES ARE CORRECT!