{"record":{"id":"c6020ae0e3f8aa93","repo":"fluent/fluentd","slug":"bug-title-must-be-a-symbol-c6020a","errorCode":null,"errorMessage":"BUG: title must be a symbol","messagePattern":"BUG: title must be a symbol","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/fluent/plugin_helper/timer.rb","lineNumber":34,"sourceCode":"\nrequire 'fluent/plugin_helper/event_loop'\nrequire 'set'\n\nmodule Fluent\n  module PluginHelper\n    module Timer\n      include Fluent::PluginHelper::EventLoop\n\n      # stop     : turn checker into false (callbacks not called anymore)\n      # shutdown : [-]\n      # close    : [-]\n      # terminate: [-]\n\n      attr_reader :_timers # for tests\n\n      # interval: integer/float, repeat: true/false\n      def timer_execute(title, interval, repeat: true, &block)\n        raise ArgumentError, \"BUG: title must be a symbol\" unless title.is_a? Symbol\n        raise ArgumentError, \"BUG: block not specified for callback\" unless block_given?\n        checker = ->(){ @_timer_running }\n        detacher = ->(watcher){ event_loop_detach(watcher) }\n        timer = TimerWatcher.new(title, interval, repeat, log, checker, detacher, &block)\n        @_timers << title\n        event_loop_attach(timer)\n        timer\n      end\n\n      def timer_running?\n        defined?(@_timer_running) && @_timer_running\n      end\n\n      def initialize\n        super\n        @_timers ||= Set.new\n      end\n","sourceCodeStart":16,"sourceCodeEnd":52,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/plugin_helper/timer.rb#L16-L52","documentation":"Error \"BUG: title must be a symbol\" thrown in fluent/fluentd.","triggerScenarios":"Thrown at lib/fluent/plugin_helper/timer.rb:34 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"dd45c6e18dc7be33b5e5a0f0767bf46307ff5626","analyzedAt":"2026-08-21T16:22:07.332Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}