[dev.icinga.com #3325] Oracle: servicestatus/hoststatus queries fail when plugin output is longer than 2048 bytes #1136
Comments
Updated by mfriedrich on 2012-10-22 16:18:16 +00:00 having the fix applied for #3324
|
Updated by Tommi on 2012-10-25 12:32:17 +00:00
will take a look into on Sunday. output column was not intend to hold long and/or binary data. For this we have longoutput column, which is already a clob. Therefore truncating is ok, but looks like we need a binary filter too. |
Updated by Tommi on 2012-10-27 09:25:34 +00:00 none of oracle varchar values are currently checked not exeeding their defined field size. There is currently no mapping code<->sql. Means this issue may happen on every of this columns
|
Updated by mfriedrich on 2012-10-27 10:49:36 +00:00 mhm, and the output column is one of those columns which the user (or likely the plugin) can exceed easily. the idea is not to change that for all existing ones, but just in case of failure for that (actually calling check_ssh generating long output, but in the first line - to resolve the issue on the user side you would actually need to rewrite the checkplugin - which is not possible in that case). |
Updated by Tommi on 2012-10-27 19:37:53 +00:00 a fix for output column isnt enough, atleast command_args and command_line fields needs to be handled additionally and in several tables. |
Updated by Tommi on 2012-10-27 19:38:21 +00:00
|
Updated by mfriedrich on 2012-10-28 12:02:22 +00:00 thanks. not really what i was expecting, but if limiting the output is the only solution ... your branch 'tdressler/fixes' is currently built on top of 'dev/ido' but has 'r1.8' merged - which is an invalid merge source for all dev and next branches. so which commits should be cherry-picked then? 995bc8517f7c30338a41798c226811a32c367452 or more? |
Updated by Tommi on 2012-10-28 14:35:57 +00:00 All code related to this issue is in this single commit. There is one small change of a constant name in the commit before, which should be taken additionally. As stated before, i am actually not convinced to move the output column to clob type. Handling of clobs is much more difficult than normal varchar, there are a lot of limitations(no index without add. options etc) and we have already long_output as clob. I know, after every release the same question:what is the right base to merge/rebase my branches and howto clean the current dirty one? |
Updated by mfriedrich on 2012-10-28 14:53:14 +00:00 Tommi wrote:
that's described in detail in the plugin api - http://docs.icinga.org/latest/en/pluginapi.html#outputspec long_output will only populated if your plugin actually returns a second (or more lines). the first line is considered output only, so both don't have anything in common - only the order. perfdata is fully optional, and therefore it got a different delimiter (the pipe).
i guess, icinga-web can handle that properly, as it shows the perfdata field in the status details. the output restrictions only apply to the full string, so you might get even 8k of output http://docs.icinga.org/latest/en/pluginapi.html#outputlengthrestrictions and there are some ppl having recompiled the core for even 16k output length. so the clob handling such data would make sense to me, instead of cutting it.
'dev/.*' how to clean? backup/cherry-pick needed changes, and drop the dirty branch locally and remote, create a new branch sourced from a clean branch (dev(ido e.g.) and cherry-pick the commits saved on your backup branch. since you already poisoned your current branch with the r1.8 commits, rebase or reverts do not make much sense. updated the developer guidelines a bit, to clarify how to merge. |
Updated by mfriedrich on 2012-10-29 18:39:49 +00:00
looks valid, therefore now merged from your now clean (thanks!) branch into dev/ido. will cherry-pick/merge that later into test and next, as well as r1.8 when applicably tested ok. |
Updated by Tommi on 2012-10-29 20:15:55 +00:00 great. |
Updated by mfriedrich on 2012-10-29 20:22:06 +00:00 this is a behaviourial change, not a fix. i would propose opening a new issue for that, as well as working on a seperated branch, adding all the changes required, as well as the sql upgrade scripts for 1.9. imho that should be tested on the long run, and not for a quickfix release which does not get a beta. so schedule that bigger change in the new issue for 1.9, please. |
Updated by Tommi on 2012-10-29 20:43:55 +00:00 continued in #3412. |
Updated by mfriedrich on 2012-11-10 15:02:48 +00:00
works for me, thanks. |
Updated by mfriedrich on 2014-12-08 14:37:54 +00:00
|
This issue has been migrated from Redmine: https://dev.icinga.com/issues/3325
Created by gbeutner on 2012-10-22 13:57:15 +00:00
Assignee: Tommi
Status: Resolved (closed on 2012-11-10 15:02:48 +00:00)
Target Version: 1.8.2
Last Update: 2014-12-08 14:37:54 +00:00 (in Redmine)
Example IDO input: https://sbfl.beutner.name/public/gnb/i-hate-oracle
A quick and dirty fix would be to just truncate the plugin output: https://git.icinga.org/?p=icinga-core.git;a=commit;h=2d7d55cdb4af6b2c535f788993f533c6d3996116
However ideally the output column should probably be changed to CLOB instead. I'm leaving this for someone who is more familiar with Oracle.
Changesets
2012-10-29 18:36:11 +00:00 by mfriedrich b1207bd
2012-10-31 20:30:28 +00:00 by Tommi 61a2ecb94ffed571818c6bb11f8ff83b104f7082
Relations:
The text was updated successfully, but these errors were encountered: