[MXS-3573] Service dependencies aren't checked at destruction time Created: 2021-05-25  Updated: 2023-09-15  Resolved: 2021-06-03

Status: Closed
Project: MariaDB MaxScale
Component/s: Core
Affects Version/s: 2.5.11
Fix Version/s: 2.5.12

Type: Bug Priority: Major
Reporter: markus makela Assignee: markus makela
Resolution: Fixed Votes: 0
Labels: None


 Description   

If service A uses another service B and the service B is destroyed, the dependency to service A sn't checked or removed when the force option is used. This results in a stale pointer being left in the upper level service which will result in a crash.

Similarly, if a filter or another service has a parameter of a type that points to a target, the dependency isn't tracked. One of these is the targets parameter in the tee filter which points to a service or a server. If either of those is destroyed, the filter dependency is left unmodified.

To prevent these problems, the force option should only destroy the object if it can safely unlink the object from the others. It should not try to cascade the destruction and it should fail if it finds a hard dependency between the objects. Without the force mode the normal dependency checks will prevent the destruction once they are fixed.


Generated at Thu Feb 08 04:22:24 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.