Description
Describe the bug
I am uncertain as to whether this is a bug or something that needs more warnings in Icinga.
I was running a check command with a java library that was loaded like this:
java -cp "lib/*" java.class.that.was.used.as.an.argument.that.was.eighty.seven.characters.long.and.broke ....omitted
The class parameter has no flag/option/argument prior, so this may be part of the issue.
In the command template I put this as an argument which all worked fine from the check perspective.
However icingadb didn't like it:
icinga2_icingadb | 2024-08-15T02:23:41.983Z WARN database Can't execute query. Retrying {"error": "can't perform \"INSERT INTO \\\"checkcommand_argument\\\" (\\\"argument_key\\\", \\\"description\\\", \\\"set_if\\\", \\\"checkcommand_id\\\", \\\"argument_value\\\", \\\"argument_order\\\", \\\"environment_id\\\", \\\"id\\\", \\\"repeat_key\\\", \\\"required\\\", \\\"skip_key\\\", \\\"properties_checksum\\\", \\\"argument_key_override\\\", \\\"separator\\\") VALUES (:argument_key, :description, :set_if, :checkcommand_id, :argument_value, :argument_order, :environment_id, :id, :repeat_key, :required, :skip_key, :properties_checksum, :argument_key_override, :separator)\": Error 1406 (22001): Data too long for column 'argument_key' at row 10", "errorVerbose": "Error 1406 (22001): Data too long for column 'argument_key' at row 10\ncan't perform \"INSERT INTO \\\"checkcommand_argument\\\" (\\\"argument_key\\\", \\\"description\\\", \\\"set_if\\\", \\\"checkcommand_id\\\", \\\"argument_value\\\", \\\"argument_order\\\", \\\"environment_id\\\", \\\"id\\\", \\\"repeat_key\\\", \\\"required\\\", \\\"skip_key\\\", \\\"properties_checksum\\\", \\\"argument_key_override\\\", \\\"separator\\\") VALUES (:argument_key, :description, :set_if, :checkcommand_id, :argument_value, :argument_order, :environment_id, :id, :repeat_key, :required, :skip_key, :properties_checksum, :argument_key_override, :separator)\"\ngithub.com/icinga/icingadb/internal.CantPerformQuery\n\t/icingadb-src/internal/internal.go:30\ngithub.com/icinga/icingadb/pkg/icingadb.(*DB).NamedBulkExec.func1.(*DB).NamedBulkExec.func1.1.2.1\n\t/icingadb-src/pkg/icingadb/db.go:412\ngithub.com/icinga/icingadb/pkg/retry.WithBackoff\n\t/icingadb-src/pkg/retry/retry.go:60\ngithub.com/icinga/icingadb/pkg/icingadb.(*DB).NamedBulkExec.func1.(*DB).NamedBulkExec.func1.1.2\n\t/icingadb-src/pkg/icingadb/db.go:407\ngolang.org/x/sync/errgroup.(*Group).Go.func1\n\t/go/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1695"}
icinga2_icingadb | 2024-08-15T02:23:41.988Z INFO icingadb Starting state runtime updates sync
icinga2_icingadb | 2024-08-15T02:23:41.988Z INFO config-sync Finished initial state sync in 40.420509ms
icinga2_icingadb | 2024-08-15T02:24:21.990Z INFO runtime-updates Upserted 1 ServiceState items
icinga2_icingadb | 2024-08-15T02:24:31.832Z INFO history-sync Synced 1 state history items
icinga2_icingadb | 2024-08-15T02:28:41.983Z WARN config-sync Aborted config sync after 5m0.035728203s
icinga2_icingadb | 2024-08-15T02:28:42.737Z FATAL icingadb Error 1406 (22001): Data too long for column 'argument_key' at row 10
icinga2_icingadb | can't perform "INSERT INTO \"checkcommand_argument\" (\"argument_key\", \"description\", \"set_if\", \"checkcommand_id\", \"argument_value\", \"argument_order\", \"environment_id\", \"id\", \"repeat_key\", \"required\", \"skip_key\", \"properties_checksum\", \"argument_key_override\", \"separator\") VALUES (:argument_key, :description, :set_if, :checkcommand_id, :argument_value, :argument_order, :environment_id, :id, :repeat_key, :required, :skip_key, :properties_checksum, :argument_key_override, :separator)"
icinga2_icingadb | github.com/icinga/icingadb/internal.CantPerformQuery
icinga2_icingadb | /icingadb-src/internal/internal.go:30
icinga2_icingadb | github.com/icinga/icingadb/pkg/icingadb.(*DB).NamedBulkExec.func1.(*DB).NamedBulkExec.func1.1.2.1
icinga2_icingadb | /icingadb-src/pkg/icingadb/db.go:412
icinga2_icingadb | github.com/icinga/icingadb/pkg/retry.WithBackoff
icinga2_icingadb | /icingadb-src/pkg/retry/retry.go:60
icinga2_icingadb | github.com/icinga/icingadb/pkg/icingadb.(*DB).NamedBulkExec.func1.(*DB).NamedBulkExec.func1.1.2
icinga2_icingadb | /icingadb-src/pkg/icingadb/db.go:407
icinga2_icingadb | golang.org/x/sync/errgroup.(*Group).Go.func1
icinga2_icingadb | /go/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78
icinga2_icingadb | runtime.goexit
icinga2_icingadb | /usr/local/go/src/runtime/asm_amd64.s:1695
icinga2_icingadb | retry deadline exceeded
icinga2_icingadb | github.com/icinga/icingadb/pkg/retry.WithBackoff
icinga2_icingadb | /icingadb-src/pkg/retry/retry.go:95
icinga2_icingadb | github.com/icinga/icingadb/pkg/icingadb.(*DB).NamedBulkExec.func1.(*DB).NamedBulkExec.func1.1.2
icinga2_icingadb | /icingadb-src/pkg/icingadb/db.go:407
icinga2_icingadb | golang.org/x/sync/errgroup.(*Group).Go.func1
icinga2_icingadb | /go/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78
icinga2_icingadb | runtime.goexit
icinga2_icingadb | /usr/local/go/src/runtime/asm_amd64.s:1695
arguments += {
"-cp" = {
value = CustomPluginDir + "/lib/*"
order = "-4"
}
"java.class.that.was.used.as.an.argument.that.was.eighty.seven.characters.long.and.broke" = {
order = "-3"
}
.... omitted
}
Expected behavior
A warning that argument keys have a limit, or this is a bug.
I have resolved this by using a bash script wrapper. What advice would you give for anyone else who has a similar issue?
Your Environment
Include as many relevant details about the environment you experienced the problem in
Using the following docker images:
"icinga/icingaweb2:2.12.1"
"icinga/icinga2:2.14.2"
"icinga/icingadb:1.2.0"
"redis:7.2.5"
Additional context
I ran this in a docker environment with MySQL.