Skip to content
  • Matthew Sykes's avatar
    [FAB-9132] Fix data race in core/chaincode/shim · 635bce55
    Matthew Sykes authored
    
    
    Fix data race in the shim
    
    A data race existed between reading and setting the error value returned
    from stream.Recv(). Modify the shim to avoid the race and add a bit more
    alignment between the peer and shim stream processing functions.
    
    Fix data races in MockCCComm
    
    - Quit was causing a race between channel send and close. Resolved by
      wiring a channel to Run and closing send and receive after the done
      channel had closed.
    - The keep alive go routine was racing on the keepAlive message during
      send. Wired the done channel into the keep-alive go routine.
    - Some tests are setting responses while go routines are running. Work
      around this bad behavior with a lock to avoid restructuring tests.
    
    Change-Id: I49bab82336bbbeb941b7db2d8bd279f254b4ec9f
    Signed-off-by: default avatarMatthew Sykes <sykesmat@us.ibm.com>
    635bce55