Le Tue, Mar 26, 2024 at 05:41:00PM +0100, Anna-Maria Behnsen a écrit : > Frederic Weisbecker <frederic@xxxxxxxxxx> writes: > Now propagation goes on as GRP0:0 is completely idle. When executing > tmigr_update_events() in the next step of walking the hierarchy via > tmigr_inactive_up(), the arguments for tmigr_update_events() are set in > the following way: > > group = GRP1:0 > child = GRP0:0 > > Then at the begin of tmigr_update_events() the group event of child is > updated - so all ignored events are removed (T0i), and the > child->groupevt and child->next_expiry is updated with T1. This > reevaluated child->groupevt is then queued/updated in the GRP1:0 > timerqueue. > > So T1 will be handled! > > As there is no parent, the top level group event is updated (see goto > label "check_toplvl") and T1 will be still the first event. Bah! Good point, I got confused there... > > > Fix those issues with removing the buggy related early return. Ignored > > child events must not prevent from evaluating the other events within > > the same group. > > I would prefere to keep this early return but skip it, when there is > !group->parent (only a single level in hierarchy). > > Then it would prevent taking the group lock and making some random > event updates which are done nevertheless on the next iteration of the > hierarchy walk. Ok sounds like a good plan! Thanks. > > Thanks, > > Anna-Maria >