message: Erase by stream ID instead of iterator.
  Summary: If the onByteEventCanceled callback changes the map then the iterator will no longer be valid.
diff: @@ -1336,7 +1336,8 @@ void QuicTransportBase::cancelByteEventCallbacksForStream(
  conn_->streamManager->removeTx(id);
  break;
  }
  - byteEventMap.erase(byteEventMapIt);
  + // The callback could have changed the map so erase by id.
  + byteEventMap.erase(id);
  }
  }
  