Pravega v0.6.1 Release Notes

Release Date: 2020-01-06 // over 4 years ago
  • 🔖 Version 0.6.1 fixes 11 issues:

    • Issue 4352: Turn retrieve token operation of DelegationTokenProvider asynchronous
      🛠 This fixes a deadlock that was recently introduced as part of automatic refreshing of delegation token.
      🔀 The delegation token provider implementation used client's internal executor to make a synchronous and blocking request for new delegation token which needs to be executed on same executor. The fix has made the DelegationTokenProvider interface operation retrieveToken() asynchronous and make its invocations in client non-blocking, in order to avoid client-side deadlocks.
    • Issue 4349: Complete partially created scopes before throwing ScopeExists
      📇 This fixes an issue that was introduced in 0.5.0 when we moved the metadata to table segments. Creating scopes in pravega tables is a two step operation, where if we failed after first step, subsequent attempts to create the scope should succeed in running both steps in idempotent fashion.
    • 👻 Issue 4334: Fix auth and related exception handling
      🌲 This fix improves exception handling and logging in gRPC interface to distinguish clearly among conditions representing authentication, authorization and internal failures.
    • Issue 4372: Split controller thread pools to avoid potential deadlock
      🛠 This fixes a similar problem to 4352 where writer clients on controller process make a loopback call into local controller service.
    • 🔀 Issue 4383: Fix exception handling during state synchronizer compaction.
      📇 This fix ensures SegmentIsTruncated response from the Segmentstore is handled while attempting to truncate segments using SegmentMetadataClient.
    • Issue 4369: (SegmentStore) Fix memory leak with Future Reads (#4373) (#4389)
      🛠 Fixed a memory leak that can be triggered by abandoning Future Reads without any segment write activity.
    • Issue 4390: Ensure retries by client when delegation token expires. This change ensures that the client retries the request to segment store if the segment store throws an error indicating token expiry. Doing so will ensure that a new delegation token will be obtained after reauthentication and reauthorization with the Controller and used in the retried request.
    • Issue 4399: BookKeeper write throttling. This enable Tier 1 throttling to prevent saturating Bookkeeper client.
    • 🚚 Issue 4396: For completed transactions the ping fails with DataNotFoundException. This issue meant client could endlessly attempt to ping a completed transaction once its active record was moved.
    • Issue 4147: Adjust txn ping to perform multiple pings per transaction. This ensures that transaction pings are more aggressively retried upon failure.
    • 👻 Issue 4409: Reset tokenRefreshFuture upon exception in obtaining a new delegation token
      🛠 This fixes a bug in token refresh logic after a token expiration.

    🌲 Commit log file:
    commitlog.txt