{"record":{"id":"4ae4e58b5fb5a7ab","repo":"fluent/fluentd","slug":"deprecated-method-this-method-is-going-to-be-dele-4ae4e5","errorCode":null,"errorMessage":"Deprecated method: this method is going to be deleted. Use Fluent::MessagePackFactory.msgpack_unpacker","messagePattern":"Deprecated method: this method is going to be deleted\\. Use Fluent::MessagePackFactory\\.msgpack_unpacker","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"lib/fluent/msgpack_factory.rb","lineNumber":41,"sourceCode":"\n    module Mixin\n      def msgpack_factory\n        unless @deprecated_log_done\n          deprecated_log('Deprecated method: this method is going to be deleted. Use Fluent::MessagePackFactory.engine_factory')\n        end\n        MessagePackFactory.engine_factory\n      end\n\n      def msgpack_packer(*args)\n        unless @deprecated_log_done\n          deprecated_log('Deprecated method: this method is going to be deleted. Use Fluent::MessagePackFactory.msgpack_packer')\n        end\n        MessagePackFactory.msgpack_packer(*args)\n      end\n\n      def msgpack_unpacker(*args)\n        unless @deprecated_log_done\n          deprecated_log('Deprecated method: this method is going to be deleted. Use Fluent::MessagePackFactory.msgpack_unpacker')\n        end\n        MessagePackFactory.msgpack_unpacker(*args)\n      end\n\n      def deprecated_log(str)\n        if $log\n          $log.warn(str)\n          @deprecated_log_done = true\n        end\n      end\n    end\n\n    def self.engine_factory(enable_time_support: false)\n      @@engine_factory || factory(enable_time_support: enable_time_support)\n    end\n\n    def self.msgpack_packer(*args)\n      engine_factory.packer(*args)","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/msgpack_factory.rb#L23-L59","documentation":"Fluent::MessagePackFactory::Mixin#msgpack_unpacker is a deprecated shim: it warns once per object and delegates to Fluent::MessagePackFactory.msgpack_unpacker(*args). Both return unpackers built from the shared engine factory, so switching is behavior-neutral.","triggerScenarios":"A plugin including Fluent::MessagePackFactory::Mixin calls msgpack_unpacker (often with an io or initial feed data argument) while deserializing records from sockets/files.","commonSituations":"Older input plugins (in_forward-style, custom protocol plugins) using the mixin accessor to parse MessagePack streams.","solutions":["Replace msgpack_unpacker(...) with Fluent::MessagePackFactory.msgpack_unpacker(...).","Remove the Mixin include once no mixin accessors remain.","Migrate sibling calls (msgpack_factory, msgpack_packer) in the same change."],"exampleFix":"# before\ninclude Fluent::MessagePackFactory::Mixin\nunpacker = msgpack_unpacker(io)\n\n# after\nunpacker = Fluent::MessagePackFactory.msgpack_unpacker(io)","handlingStrategy":"validation","validationCode":"# CI guard: fail on mixin-style msgpack_unpacker calls\n# grep -rn '[^.:]\\bmsgpack_unpacker(' lib/ --include='*.rb' && exit 1 || exit 0","typeGuard":"Fluent::MessagePackFactory.respond_to?(:msgpack_unpacker) # module-level API present and preferred","tryCatchPattern":null,"preventionTips":["Use Fluent::MessagePackFactory.msgpack_unpacker(...) explicitly in new code.","Migrate all three mixin accessors together to avoid partial-deprecation warnings recurring."],"tags":["deprecation","msgpack","serialization","plugin-api"],"backgroundTag":"deprecated-method-migration","analyzedSha":"dd45c6e18dc7be33b5e5a0f0767bf46307ff5626","analyzedAt":"2026-08-21T16:22:07.332Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}