There's not enough context here to know what's going on, but one of the most common mistakes made in writing plugins is that people neglect to recycle packs when they're done being processed. The pipeline packs are reference counted, so any Go plugin that receives a pack but does not explicitly pass that pack on to another piece of the pipeline must call pack.Recycle() to free up the pack for reuse. When recycling doesn't happen, eventually the supply of packs will be exhausted and Heka will freeze, no more processing can occur.

The "Diagnostics" messages you're seeing reflect some code that we added to help debug this situation. Packs are tracked as they flow through the system, and if any plugin starts to accumulate a number of them (i.e. packs are going in but aren't being passed along or recycled) then messages such as this will be generated.

So my guess is that either OutputFilter (that's an interesting name, what is that supposed to be doing, exactly?), MongoOutput, or both are failing to recycle packs. That's about as much help as we can provide, w/o seeing the code.

Hope this helps,

-r


On Thu 23 Jan 2014 12:52:52 AM PST, 伍五 wrote:
2014/01/23 16:50:46 Diagnostics: %!d(string=input) packs have been
idle more than 3 seconds.%!(EXTRA time.Duration=2m0s)

2014/01/23 16:50:46 Diagnostics: (input) Plugin names and quantities
found on idle packs:

2014/01/23 16:50:46 Diagnostics: OutputFilter: 3

2014/01/23 16:50:46 Diagnostics: MongoOutput: 3

2014/01/23 16:50:46


I write a pugin by go, but there is some wrong in it, what happend and
how to fix it?



_______________________________________________
Heka mailing list
[email protected]
https://mail.mozilla.org/listinfo/heka
_______________________________________________
Heka mailing list
[email protected]
https://mail.mozilla.org/listinfo/heka

Reply via email to