Improve log message when deferred response is too big. (#21720)
Makes debugging a little bit easier by mentioning the enforced limit, the payload size, the plugin that will be stopped, and the specific transaction id. Found this by selecting all available facets over a big time range in the logs tab from the UI.
vkalintiris committed
Feb 6, 2026 at 23:19 UTC
453bc9d4ad22bd7fcde41d754d6d7187957e193a
1 file changed
+9
-1
src/plugins.d/pluginsd_parser.h
+9
-1
@@ -195,7 +195,15 @@ static inline int parser_action(PARSER *parser, char *input) {
195
if(buffer_strlen(parser->defer.response) > PLUGINSD_MAX_DEFERRED_SIZE) {
196
// more than PLUGINSD_MAX_DEFERRED_SIZE of data,
197
// or a bad plugin that did not send the end_keyword
198
- nd_log(NDLS_DAEMON, NDLP_ERR, "PLUGINSD: deferred response is too big (%zu bytes). Stopping this plugin.", buffer_strlen(parser->defer.response));
198
+ nd_log(NDLS_DAEMON, NDLP_ERR,
199
+ "PLUGINSD: deferred response is too big (%zu bytes, limit %zu bytes) "
200
+ "while waiting for keyword '%s' from plugin '%s' (transaction '%s'). "
201
+ "Stopping this plugin.",
202
+ buffer_strlen(parser->defer.response),
203
+ (size_t)PLUGINSD_MAX_DEFERRED_SIZE,
204
+ parser->defer.end_keyword ? parser->defer.end_keyword : "unknown",
205
+ parser->user.cd ? string2str(parser->user.cd->filename) : "unknown",
206
+ parser->defer.action_data ? string2str((STRING *)parser->defer.action_data) : "none");
207
return 1;
208
}
209
}