You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A race condition was found on `Rpl_opt_tracker` that can make
instance pointers invalid.
The scenario is:
1) `Rpl_opt_tracker::worker()` calls
`acquire_option_tracker_service()`;
2) Concurrently `Rpl_opt_tracker::track_replication_replica()` is
called, which calls `acquire_option_tracker_service()` again and
then calls `release_option_tracker_service()`.
This results in one service reference lost,
`m_option_tracker_handle` is overridden, and the invalidation of
`m_option_tracker_service`, which will cause a server error on the
next steps of `Rpl_opt_tracker::worker()`.
To solve the above issue, the helper methods were refactored to use
a guard that handles the service acquire/release on the methods that
interact with the service.
Change-Id: I433d4ef0009b33ac2319943a4defd9ec22d89a23
0 commit comments