@@ -278,12 +278,14 @@ handle_call({init, Overall}, _From,
278
278
initial_childspecs = ChildSpecs }) ->
279
279
process_flag (trap_exit , true ),
280
280
ok = pg :join (Group , Overall ),
281
- rabbit_log :debug (" Mirrored supervisor: initializing, joined group ~p " , [Group ]),
281
+ rabbit_log :debug (" Mirrored supervisor: initializing, overall supervisor ~p joined group ~p " , [Overall , Group ]),
282
282
Rest = pg :get_members (Group ) -- [Overall ],
283
283
Nodes = [node (M ) || M <- Rest ],
284
284
rabbit_log :debug (" Mirrored supervisor: known group ~p members: ~p on nodes ~p " , [Group , Rest , Nodes ]),
285
285
case Rest of
286
- [] -> TxFun (fun () -> delete_all (Group ) end );
286
+ [] ->
287
+ rabbit_log :debug (" Mirrored supervisor: no known peer members in group ~p , will delete all child records for it" , [Group ]),
288
+ TxFun (fun () -> delete_all (Group ) end );
287
289
_ -> ok
288
290
end ,
289
291
[begin
@@ -414,7 +416,8 @@ maybe_start(Group, TxFun, Overall, Delegate, ChildSpec) ->
414
416
end .
415
417
416
418
check_start (Group , Overall , Delegate , ChildSpec ) ->
417
- rabbit_log :debug (" Mirrored supervisor: check_start for group ~p , id: ~p " , [Group , id (ChildSpec )]),
419
+ rabbit_log :debug (" Mirrored supervisor: check_start for group ~p , id: ~p , overall: ~p " ,
420
+ [Group , id (ChildSpec ), Overall ]),
418
421
ReadResult = mnesia :wread ({? TABLE , {Group , id (ChildSpec )}}),
419
422
rabbit_log :debug (" Mirrored supervisor: check_start table ~s read for key ~p returned ~p " ,
420
423
[? TABLE , {Group , id (ChildSpec )}, ReadResult ]),
@@ -424,12 +427,19 @@ check_start(Group, Overall, Delegate, ChildSpec) ->
424
427
[S ] -> # mirrored_sup_childspec {key = {Group , Id },
425
428
mirroring_pid = Pid } = S ,
426
429
case Overall of
427
- Pid -> child (Delegate , Id );
428
- _ -> case supervisor (Pid ) of
429
- dead -> _ = write (Group , Overall , ChildSpec ),
430
- start ;
431
- Delegate0 -> child (Delegate0 , Id )
432
- end
430
+ Pid ->
431
+ rabbit_log :debug (" Mirrored supervisor: overall matched mirrored pid ~p " , [Pid ]),
432
+ child (Delegate , Id );
433
+ _ ->
434
+ rabbit_log :debug (" Mirrored supervisor: overall ~p did not match mirrored pid ~p " , [Overall , Pid ]),
435
+ rabbit_log :debug (" Mirrored supervisor: supervisor(~p ) returned ~p " , [Pid , supervisor (Pid )]),
436
+ case supervisor (Pid ) of
437
+ dead ->
438
+ _ = write (Group , Overall , ChildSpec ),
439
+ start ;
440
+ Delegate0 ->
441
+ child (Delegate0 , Id )
442
+ end
433
443
end
434
444
end .
435
445
@@ -460,6 +470,8 @@ stop(Group, TxFun, Delegate, Id) ->
460
470
end .
461
471
462
472
check_stop (Group , Delegate , Id ) ->
473
+ rabbit_log :debug (" Mirrored supervisor: checking if child ~p in group ~p should be stopped: ~p " ,
474
+ [Id , Group , child (Delegate , Id )]),
463
475
case child (Delegate , Id ) of
464
476
undefined -> delete (Group , Id ),
465
477
deleted ;
0 commit comments