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