Skip to content

Commit

Permalink
Fix: release_expired now works as intended
Browse files Browse the repository at this point in the history
  • Loading branch information
welleby committed Nov 2, 2018
1 parent 1cf40a0 commit b3dd479
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 3 deletions.
10 changes: 7 additions & 3 deletions lib/logstash/filters/transaction_time.rb
Original file line number Diff line number Diff line change
Expand Up @@ -217,10 +217,14 @@ def flush(options = {})
expired_elements = remove_expired_elements()
end

expired_elements.each do |element|
filter_matched(element)
if @release_expired
expired_elements.each do |element|
filter_matched(element)
end
#print("Exp" + options.to_s + expired_elements.to_s)
return expired_elements
end
return expired_elements
return []
#yield expired_elements if block_given?
#return create_expired_events_from(expired_elements)
end
Expand Down
21 changes: 21 additions & 0 deletions spec/filters/transaction_time_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,26 @@ def setup_filter(config = {})
insist { @filter.transactions.size } == 1
end
end
describe "Setup release_expired = false" do
it "never releases any expired events when flush is called" do
config = {"release_expired" => false}
@config.merge!(config)

@filter.filter(event("message" => "Log message", UID_FIELD => uid, "@timestamp" => "2018-04-22T09:46:22.000+0100"))
insist { @filter.transactions.size } == 1
@filter.filter(event("message" => "Log message", UID_FIELD => uid2, "@timestamp" => "2018-04-22T09:46:22.000+0100"))
insist { @filter.transactions.size } == 2

#Looks like flush doesn't have config-scope. Setting release_expired hard instead of by config. Will it work like intended when using only config?
@filter.release_expired = false
((TIMEOUT/5)+1).times do
flushRes = @filter.flush({"from" => "test" })
insist { (flushRes.any?) } == false
#insist { @filter.flush().nil? }
end
insist { @filter.transactions.size } == 0
end
end
end

context "Testing Timestamp Override." do
Expand All @@ -185,6 +205,7 @@ def setup_filter(config = {})
config = {"replace_timestamp" => 'oldest'}
@config.merge!(config)


@filter = LogStash::Filters::TransactionTime.new(@config)
@filter.register

Expand Down

0 comments on commit b3dd479

Please sign in to comment.