An error occurred while loading the file. Please try again.
  • M. Mert Yıldıran's avatar
    Stop the hanging Goroutines by dropping the old, unidentified TCP streams (#260) · 858a6468
    M. Mert Yıldıran authored
    * Close the hanging TCP message channels after a dynamically aligned timeout (base `10000` milliseconds)
    
    * Bring back `source.Lazy`
    
    * Add a one more `sync.Map.Delete` call
    
    * Improve the formula by taking base Goroutine count into account
    
    * Reduce duplication
    
    * Include the dropped TCP streams count into the stats tracker and print a debug log whenever it happens
    
    * Add `superIdentifier` field to `tcpStream` to check if it has identified
    
    Also stop the other protocol dissectors if a TCP stream identified by a protocol.
    
    * Take one step forward in fixing the channel closing issue (WIP)
    
    Add `sync.Mutex` to `tcpReader` and make the loops reference based.
    
    * Fix the channel closing issue
    
    * Improve the accuracy of the formula, log better and multiply `baseStreamChannelTimeoutMs` by 100
    
    * Remove `fmt.Printf`
    
    * Replace `runtime.Gosched()` with `time.Sleep(1 * time.Millisecond)`
    
    * Close the channels of other protocols in case of an identification
    
    * Simplify the logic
    
    * Replace the formula with hard timeout 5000 milliseconds and 4000 maximum number of Goroutines
    Unverified
    858a6468