Skip to content

Commit c385a1c

Browse files
Restore send_heartbeat in initial heartbeat execution and update settings_changed? method to compare settings by value for rate limiting buckets.
1 parent 045d67b commit c385a1c

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

lib/aikido/zen/agent.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def start!
7878

7979
@config.initial_heartbeat_delays.each do |heartbeat_delay|
8080
@worker.delay(heartbeat_delay) do
81-
# send_heartbeat
81+
send_heartbeat
8282
@config.logger.info("Executed initial heartbeat after #{heartbeat_delay} seconds")
8383
end
8484
end

lib/aikido/zen/rate_limiter/bucket.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,17 @@ def increment(key)
6969
end
7070

7171
def settings_changed?(settings)
72+
# If we don't have previous settings stored, we can't tell if they've
73+
# changed here — the caller will already create a new bucket when that
74+
# happens (i.e. when +bucket+ is nil), so we treat this as "no change".
7275
return false if @settings.nil?
7376

74-
!@settings.equal?(settings)
77+
# Compare by value instead of by object identity so that recreating
78+
# settings objects (e.g. on heartbeat) with the same effective config
79+
# does not reset the rate limiting buckets.
80+
@settings.period != settings.period ||
81+
@settings.max_requests != settings.max_requests ||
82+
@settings.enabled? != settings.enabled?
7583
end
7684

7785
private

0 commit comments

Comments
 (0)