{"record":{"id":"8d098e7c948f2379","repo":"fluent/fluentd","slug":"bug-callback-not-specified","errorCode":null,"errorMessage":"BUG: callback not specified","messagePattern":"BUG: callback not specified","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/fluent/plugin_helper/thread.rb","lineNumber":67,"sourceCode":"        @_threads_mutex.synchronize{ @_threads.values }.each do |t|\n          if t.alive?\n            puts \"going to kill the thread still running: #{t[:_fluentd_plugin_helper_thread_title]}\"\n            t.kill rescue nil\n            t[:_fluentd_plugin_helper_thread_running] = false\n          end\n        end\n      end\n\n      # Ruby 2.2.3 or earlier (and all 2.1.x) cause bug about Threading (\"Stack consistency error\")\n      #  by passing splatted argument to `yield`\n      # https://bugs.ruby-lang.org/issues/11027\n      # We can enable to pass arguments after expire of Ruby 2.1 (& older 2.2.x)\n      # def thread_create(title, *args)\n      #   Thread.new(*args) do |*t_args|\n      #     yield *t_args\n      def thread_create(title)\n        raise ArgumentError, \"BUG: title must be a symbol\" unless title.is_a? Symbol\n        raise ArgumentError, \"BUG: callback not specified\" unless block_given?\n        m = Mutex.new\n        m.lock\n        thread = ::Thread.new do\n          m.lock # run thread after that thread is successfully set into @_threads\n          m.unlock\n          thread_exit = false\n          ::Thread.current[:_fluentd_plugin_helper_thread_title] = title\n          ::Thread.current[:_fluentd_plugin_helper_thread_started] = true\n          ::Thread.current[:_fluentd_plugin_helper_thread_running] = true\n          begin\n            yield\n            thread_exit = true\n          rescue Exception => e\n            log.warn \"thread exited by unexpected error\", plugin: self.class, title: title, error: e\n            thread_exit = true\n            raise\n          ensure\n            @_threads_mutex.synchronize do","sourceCodeStart":49,"sourceCodeEnd":85,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/plugin_helper/thread.rb#L49-L85","documentation":"Error \"BUG: callback not specified\" thrown in fluent/fluentd.","triggerScenarios":"Thrown at lib/fluent/plugin_helper/thread.rb:67 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"}