[ZBX-10926] Host auto-registration does not work Created: 2016 Jun 21 Updated: 2017 May 30 Resolved: 2016 Jun 27 |
|
Status: | Closed |
Project: | ZABBIX BUGS AND ISSUES |
Component/s: | Frontend (F) |
Affects Version/s: | 3.2.0alpha1 |
Fix Version/s: | None |
Type: | Incident report | Priority: | Major |
Reporter: | Pavel Volkovitskiy | Assignee: | Unassigned |
Resolution: | Won't fix | Votes: | 0 |
Labels: | None | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified | ||
Environment: |
zabbix_server (Zabbix) 3.1.0 |
Description |
I'm trying to setup host auto-registration, but zabbix does not register them Debug output from server log: 20829:20160621:171608.579 trapper got '{"request":"active checks","host":"puppet","host_metadata":"Linux 4.4.0-24-generic [VMware, Inc.]","ip":"172.16.11.19"}' 20829:20160621:171608.579 In send_list_of_active_checks_json() 20829:20160621:171608.579 In get_hostid_by_host() host:'puppet' 20829:20160621:171608.580 query [txnlev:0] [select hostid,status,tls_accept,tls_issuer,tls_subject,tls_psk_identity from hosts where host='puppet' and status in (0,1) and flags<>2 and proxy_hostid is null] 20829:20160621:171608.585 query [txnlev:1] [begin;] 20829:20160621:171608.585 query [txnlev:1] [select autoreg_hostid from autoreg_host where proxy_hostid is null and host='puppet'] 20829:20160621:171608.586 query [txnlev:1] [update autoreg_host set listen_ip='172.16.11.19',listen_dns='puppet.matrix',listen_port=10050,host_metadata='Linux 4.4.0-24-generic [VMware, Inc.]' where autoreg_hostid=5] 20829:20160621:171608.586 In process_events() events_num:1 20829:20160621:171608.587 In DCget_nextid() table:'events' num:1 20829:20160621:171608.587 query [txnlev:1] [select max(eventid) from events where eventid between 0 and 9223372036854775807] 20829:20160621:171608.588 End of DCget_nextid() table:'events' [33776:33776] 20829:20160621:171608.588 query [txnlev:1] [insert into events (eventid,source,object,objectid,clock,ns,value) values (33776,2,3,5,1466518568,0,1); ] 20829:20160621:171608.588 In process_actions() events_num:1 20829:20160621:171608.589 In zbx_dc_get_actions_eval() 20829:20160621:171608.589 End of zbx_dc_get_actions_eval() actions:1 20829:20160621:171608.589 In check_action_conditions() actionid:9 20829:20160621:171608.589 In check_action_condition() actionid:9 conditionid:13 cond.value:'Linux' cond.value2:'' 20829:20160621:171608.589 In check_auto_registration_condition() 20829:20160621:171608.589 query [txnlev:1] [select host_metadata from autoreg_host where autoreg_hostid=5] 20829:20160621:171608.590 End of check_auto_registration_condition():SUCCEED 20829:20160621:171608.590 End of check_action_condition():SUCCEED 20829:20160621:171608.590 In check_action_condition() actionid:9 conditionid:14 cond.value:'VMware' cond.value2:'' 20829:20160621:171608.590 In check_auto_registration_condition() 20829:20160621:171608.590 query [txnlev:1] [select host_metadata from autoreg_host where autoreg_hostid=5] 20829:20160621:171608.590 End of check_auto_registration_condition():SUCCEED 20829:20160621:171608.590 End of check_action_condition():SUCCEED 20829:20160621:171608.590 End of check_action_conditions():SUCCEED 20829:20160621:171608.591 In DCget_nextid() table:'escalations' num:1 20829:20160621:171608.591 query [txnlev:1] [select max(escalationid) from escalations where escalationid between 0 and 9223372036854775807] 20829:20160621:171608.591 End of DCget_nextid() table:'escalations' [1:1] 20829:20160621:171608.591 In execute_operations() actionid:9 20829:20160621:171608.592 query [txnlev:1] [select o.operationtype,g.groupid,t.templateid,oi.inventory_mode from operations o left join opgroup g on g.operationid=o.operationid left join optemplate t on t.operationid=o.operationid left join opinventory oi on oi.operationid=o.operationid where o.actionid=9] 20829:20160621:171608.592 End of execute_operations() 20829:20160621:171608.592 query [txnlev:1] [insert into escalations (escalationid,actionid,status,triggerid,itemid,eventid,r_eventid) values (1,9,0,null,null,33776,null); ] 20829:20160621:171608.592 End of process_actions() 20829:20160621:171608.592 In DBupdate_itservices() 20829:20160621:171608.592 End of DBupdate_itservices():SUCCEED 20829:20160621:171608.592 End of process_events() 20829:20160621:171608.593 query [txnlev:1] [commit;] 20829:20160621:171608.595 End of get_hostid_by_host():FAIL 20829:20160621:171608.595 cannot send list of active checks to "172.16.11.19": host [puppet] not found 20829:20160621:171608.595 send_list_of_active_checks_json() sending [{"response":"failed","info":"host [puppet] not found"}] 20829:20160621:171608.595 End of send_list_of_active_checks_json():SUCCEED I've tried to run select o.operationtype,g.groupid,t.templateid,oi.inventory_mode from operations o left join opgroup g on g.operationid=o.operationid left join optemplate t on t.operationid=o.operationid left join opinventory oi on oi.operationid=o.operationid where o.actionid=9; and got output:
Also if i tried to update auto-registration action, i got errors: Undefined index: groupids [ in actionconf.php:149] Invalid argument supplied for foreach() [ in actionconf.php:149] Undefined index: templateids [ in actionconf.php:160] Invalid argument supplied for foreach() [ in actionconf.php:160] Operation has no group to operate. and Undefined index: groupids [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:442] Invalid argument supplied for foreach() [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:442] Undefined index: templateids [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:449] Invalid argument supplied for foreach() [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:449] Undefined index: groupids [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:627] Invalid argument supplied for foreach() [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:627] Undefined index: templateids [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:649] Invalid argument supplied for foreach() [actionconf.php:678 ? CView->render() ? include() ? getActionOperationDescriptions() in include/actions.inc.php:649] |
Comments |
Comment by Glebs Ivanovskis (Inactive) [ 2016 Jun 21 ] | ||||||||||||||||
Is it really 3.1.0 (trunk) or 3.0.0? I judge by 15 February 2016. | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 21 ] | ||||||||||||||||
It starts working if i insert right values in tables: insert into optemplate (operationid, templateid) values (13, 10001); insert into opgroup (operationid, groupid) values (12, 2); | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 21 ] | ||||||||||||||||
It's current trunk that date hardcoded in version.h: | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
Could you please share a scenario that breaks "optemplate" and "opgroup" tables? | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
I just created new action with operation "Add to host groups" It displays in web-interface as
ie no group name | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
Trunk r60696 seems to work well for me - the auto-registration action with the settings you specified is created well (i.e., with a host group to add to) for me through frontend. According to the official database schema in create/src/schema.tmpl, "optemplate" and "opgroup" tables should have all fields set to NOT NULL. Could you please check how your tables ended up with this constraint removed? | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
Constraints is not removed and tables does not has NULLs, they just has no entries with needed operationid ie select * from operations where actionid=10;
select count(*) from opgroup where operationid=14;
| ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
Sorry, was confused by looking at the NULL's in the issue description. If you enable debug mode for your frontend user, what queries do you see executing when you create an action? | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
I added error_log() in db.inc.php INSERT INTO actions (name,status,esc_period,def_shortdata,def_longdata,recovery_msg,r_shortdata,r_longdata,eventsource,evaltype,actionid) VALUES ('ttt','0','0','Auto registration: {HOST.HOST}','Host name: {HOST.HOST}\\r\\nHost IP: {HOST.IP}\\r\\nAgent port: {HOST.PORT}','0','','','2','0','12') INSERT INTO operations (operationtype,actionid,operationid) VALUES ('4','12','16') INSERT INTO auditlog (userid,clock,ip,action,resourcetype,details,auditid) VALUES ('1','1466587663','192.168.101.7','0','5','Name: ttt','31') | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
Maybe you could post a complete debug output from the frontend? (When you enable debug mode in frontend for your user, there will be a "Debug" button in the lower right.) | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
1. action.create [actionconf.php:207] Parameters: Array ( [name] => debug create [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [operations] => Array ( [0] => Array ( [operationtype] => '4' [mediatypeid] => 0 [opgroup] => Array ( [0] => Array ( [groupid] => 4 ) ) ) ) [filter] => Array ( [conditions] => Array ( [0] => Array ( [conditiontype] => 24 [operator] => 2 [value] => debug metadata [formulaid] => A [value2] => ) ) [evaltype] => 0 ) [eventsource] => 2 ) and sql part: SQL (0.000143): BEGIN actionconf.php:193 → DBstart() → DBexecute() in include/db.inc.php:258 SQL (0.000394): SELECT a.* FROM actions a WHERE a.name='debug create' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->validateCreate() → CAction->get() → DBselect() in include/classes/api/services/CAction.php:255 SQL (0.000119): SELECT COUNT(DISTINCT g.groupid) AS rowscount FROM groups g WHERE g.groupid='4' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->validateCreate() → CAction->validateOperationsIntegrity() → CHostGroup->isWritable() → CHostGroup->get() → DBselect() in include/classes/api/services/CHostGroup.php:324 SQL (0.000301): SELECT nextid FROM ids WHERE table_name='actions' AND field_name='actionid' FOR UPDATE actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000363): UPDATE ids SET nextid=15 WHERE table_name='actions' AND field_name='actionid' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.000414): INSERT INTO actions (name,status,esc_period,def_shortdata,def_longdata,recovery_msg,r_shortdata,r_longdata,eventsource,evaltype,actionid) VALUES ('debug create','0','0','Auto registration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}','0','','','2','0','15') actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000238): SELECT nextid FROM ids WHERE table_name='conditions' AND field_name='conditionid' FOR UPDATE actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addConditions() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000125): UPDATE ids SET nextid=17 WHERE table_name='conditions' AND field_name='conditionid' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addConditions() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.000187): INSERT INTO conditions (conditiontype,operator,value,value2,actionid,conditionid) VALUES ('24','2','debug metadata','','15','17') actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addConditions() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000125): SELECT nextid FROM ids WHERE table_name='operations' AND field_name='operationid' FOR UPDATE actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.00011): UPDATE ids SET nextid=19 WHERE table_name='operations' AND field_name='operationid' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.000151): INSERT INTO operations (operationtype,actionid,operationid) VALUES ('4','15','19') actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000125): SELECT nextid FROM ids WHERE table_name='auditlog' AND field_name='auditid' FOR UPDATE actionconf.php:215 → add_audit() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.00011): UPDATE ids SET nextid=35 WHERE table_name='auditlog' AND field_name='auditid' actionconf.php:215 → add_audit() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.00018): INSERT INTO auditlog (userid,clock,ip,action,resourcetype,details,auditid) VALUES ('1','1466588464','192.168.101.7','0','5','Name: debug create','35') actionconf.php:215 → add_audit() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.001565): COMMIT actionconf.php:219 → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
Here is my debug for comparison: ******************** Script profiler ******************** Total time: 0.024673 Total SQL time: 0.008477 SQL count: 43 (selects: 23 | executes: 20) Peak memory usage: 3.5M Memory limit: 128M 1. action.create [actionconf.php:207] Parameters: Array ( [name] => debug create [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [operations] => Array ( [0] => Array ( [operationtype] => 4 [mediatypeid] => 0 [opgroup] => Array ( [0] => Array ( [groupid] => 6 ) ) ) ) [filter] => Array ( [conditions] => Array ( [0] => Array ( [conditiontype] => 24 [operator] => 2 [value] => debug metadata [formulaid] => A [value2] => ) ) [evaltype] => 0 ) [eventsource] => 2 ) Result: Array ( [actionids] => Array ( [0] => 10 ) ) 2. action.get [actionconf.php:703] Parameters: Array ( [output] => extend [filter] => Array ( [eventsource] => Array ( [0] => 2 ) ) [selectFilter] => Array ( [0] => formula [1] => conditions [2] => evaltype ) [selectOperations] => extend [editable] => 1 [sortfield] => name [limit] => 1001 ) Result: Array ( [0] => Array ( [actionid] => 8 [name] => Linux tmp [eventsource] => 2 [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [maintenance_mode] => 1 [filter] => Array ( [evaltype] => 0 [formula] => [conditions] => Array ( [0] => Array ( [conditiontype] => 24 [operator] => 2 [value] => tmp [value2] => [formulaid] => A ) ) ) [operations] => Array ( [0] => Array ( [operationid] => 9 [actionid] => 8 [operationtype] => 4 [esc_period] => 0 [esc_step_from] => 1 [esc_step_to] => 1 [evaltype] => 0 [opconditions] => Array ( ) [opgroup] => Array ( [0] => Array ( [operationid] => 9 [groupid] => 6 ) ) ) [1] => Array ( [operationid] => 10 [actionid] => 8 [operationtype] => 4 [esc_period] => 0 [esc_step_from] => 1 [esc_step_to] => 1 [evaltype] => 0 [opconditions] => Array ( ) [opgroup] => Array ( [0] => Array ( [operationid] => 10 [groupid] => 2 ) ) ) ) ) [1] => Array ( [actionid] => 9 [name] => adsf [eventsource] => 2 [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [maintenance_mode] => 1 [filter] => Array ( [evaltype] => 0 [formula] => [conditions] => Array ( [0] => Array ( [conditiontype] => 22 [operator] => 2 [value] => asdf [value2] => [formulaid] => A ) ) ) [operations] => Array ( [0] => Array ( [operationid] => 11 [actionid] => 9 [operationtype] => 4 [esc_period] => 0 [esc_step_from] => 1 [esc_step_to] => 1 [evaltype] => 0 [opconditions] => Array ( ) [opgroup] => Array ( [0] => Array ( [operationid] => 11 [groupid] => 2 ) ) ) ) ) [2] => Array ( [actionid] => 10 [name] => debug create [eventsource] => 2 [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [maintenance_mode] => 1 [filter] => Array ( [evaltype] => 0 [formula] => [conditions] => Array ( [0] => Array ( [conditiontype] => 24 [operator] => 2 [value] => debug metadata [value2] => [formulaid] => A ) ) ) [operations] => Array ( [0] => Array ( [operationid] => 12 [actionid] => 10 [operationtype] => 4 [esc_period] => 0 [esc_step_from] => 1 [esc_step_to] => 1 [evaltype] => 0 [opconditions] => Array ( ) [opgroup] => Array ( [0] => Array ( [operationid] => 12 [groupid] => 6 ) ) ) ) ) ) 3. hostgroup.get [actions.inc.php:506] Parameters: Array ( [output] => Array ( [0] => name ) [groupids] => Array ( [0] => 2 [1] => 6 ) [preservekeys] => 1 ) Result: Array ( [2] => Array ( [groupid] => 2 [name] => Linux servers ) [6] => Array ( [groupid] => 6 [name] => Virtual machines ) ) SQL (0.000121): SET NAMES utf8 actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DBexecute() in include/db.inc.php:59 SQL (0.000436): SHOW TABLES LIKE 'dbversion' actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DbBackend->checkDbVersion() → MysqlDbBackend->checkDbVersionTable() → DBselect() in include/classes/db/MysqlDbBackend.php:32 SQL (9.7E-5): SELECT dv.mandatory,dv.optional FROM dbversion dv actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DbBackend->checkDbVersion() → DBselect() in include/classes/db/DbBackend.php:46 SQL (3.9E-5): SELECT NULL FROM config c actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DbBackend->checkConfig() → DBselect() in include/classes/db/DbBackend.php:62 SQL (4.0E-5): BEGIN actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBstart() → DBexecute() in include/db.inc.php:258 SQL (0.000328): SELECT u.userid,u.autologout,s.lastaccess FROM sessions s,users u WHERE s.sessionid='c8806f053847d08b704768d2716f2451' AND s.status=0 AND s.userid=u.userid AND (s.lastaccess+u.autologout>1466589015 OR u.autologout=0) actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CUser->checkAuthentication() → DBselect() in include/classes/api/services/CUser.php:1197 SQL (8.1E-5): SELECT g.usrgrpid FROM usrgrp g,users_groups ug WHERE ug.userid='1' AND g.usrgrpid=ug.usrgrpid AND g.users_status=1 LIMIT 1 OFFSET 0 actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CUser->checkAuthentication() → check_perm2system() → DBselect() in include/perm.inc.php:75 SQL (0.00019): UPDATE sessions SET lastaccess=1466589015 WHERE userid='1' AND sessionid='c8806f053847d08b704768d2716f2451' actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CUser->checkAuthentication() → DBexecute() in include/classes/api/services/CUser.php:1222 SQL (4.3E-5): SELECT MAX(g.gui_access) AS gui_access FROM usrgrp g,users_groups ug WHERE ug.userid='1' AND g.usrgrpid=ug.usrgrpid actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CUser->checkAuthentication() → DBselect() in include/classes/api/services/CUser.php:1230 SQL (4.4E-5): SELECT u.userid,u.alias,u.name,u.surname,u.url,u.autologin,u.autologout,u.lang,u.refresh,u.type, u.theme,u.attempt_failed,u.attempt_ip,u.attempt_clock,u.rows_per_page FROM users u WHERE u.userid='1' actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CUser->checkAuthentication() → CUser->_getUserData() → DBselect() in include/classes/api/services/CUser.php:1254 SQL (3.8E-5): SELECT ug.userid FROM usrgrp g,users_groups ug WHERE ug.userid='1' AND g.usrgrpid=ug.usrgrpid AND g.debug_mode=1 actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CUser->checkAuthentication() → CUser->_getUserData() → DBselect() in include/classes/api/services/CUser.php:1262 SQL (0.001203): COMMIT actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CFrontendApiWrapper->checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 SQL (0.000116): SELECT p.* FROM profiles p WHERE p.userid=1 ORDER BY p.userid,p.profileid actionconf.php:31 → require_once() → zbx_construct_menu() → CProfile::update() → CProfile::init() → DBselect() in include/classes/user/CProfile.php:42 SQL (0.000141): SELECT c.* FROM config c actionconf.php:31 → require_once() → select_config() → DBselect() in include/profiles.inc.php:33 SQL (0.000105): BEGIN actionconf.php:193 → DBstart() → DBexecute() in include/db.inc.php:258 SQL (0.000184): SELECT a.* FROM actions a WHERE a.name='debug create' actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->validateCreate() → CAction->get() → DBselect() in include/classes/api/services/CAction.php:255 SQL (0.000127): SELECT COUNT(DISTINCT g.groupid) AS rowscount FROM groups g WHERE g.groupid='6' actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->validateCreate() → CAction->validateOperationsIntegrity() → CHostGroup->isWritable() → CHostGroup->get() → DBselect() in include/classes/api/services/CHostGroup.php:324 SQL (0.000226): SELECT nextid FROM ids WHERE table_name='actions' AND field_name='actionid' FOR UPDATE actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000214): UPDATE ids SET nextid=10 WHERE table_name='actions' AND field_name='actionid' actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.000251): INSERT INTO actions (name,status,esc_period,def_shortdata,def_longdata,recovery_msg,r_shortdata,r_longdata,eventsource,evaltype,actionid) VALUES ('debug create','0','0','Auto registration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}','0','','','2','0','10') actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000224): SELECT nextid FROM ids WHERE table_name='conditions' AND field_name='conditionid' FOR UPDATE actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addConditions() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000134): UPDATE ids SET nextid=12 WHERE table_name='conditions' AND field_name='conditionid' actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addConditions() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.000203): INSERT INTO conditions (conditiontype,operator,value,value2,actionid,conditionid) VALUES ('24','2','debug metadata','','10','12') actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addConditions() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000209): SELECT nextid FROM ids WHERE table_name='operations' AND field_name='operationid' FOR UPDATE actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000191): UPDATE ids SET nextid=12 WHERE table_name='operations' AND field_name='operationid' actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.000211): INSERT INTO operations (operationtype,actionid,operationid) VALUES ('4','10','12') actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000189): SELECT nextid FROM ids WHERE table_name='opgroup' AND field_name='opgroupid' FOR UPDATE actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addOperations() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000126): UPDATE ids SET nextid=6 WHERE table_name='opgroup' AND field_name='opgroupid' actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addOperations() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.00015): INSERT INTO opgroup (operationid,groupid,opgroupid) VALUES ('12','6','6') actionconf.php:207 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->create() → CAction->addOperations() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000166): SELECT nextid FROM ids WHERE table_name='auditlog' AND field_name='auditid' FOR UPDATE actionconf.php:215 → add_audit() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000135): UPDATE ids SET nextid=10 WHERE table_name='auditlog' AND field_name='auditid' actionconf.php:215 → add_audit() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.00014): INSERT INTO auditlog (userid,clock,ip,action,resourcetype,details,auditid) VALUES ('1','1466589015','127.0.0.1','0','5','Name: debug create','10') actionconf.php:215 → add_audit() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000968): COMMIT actionconf.php:219 → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 SQL (4.5E-5): BEGIN actionconf.php:703 → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBstart() → DBexecute() in include/db.inc.php:258 SQL (0.000317): SELECT a.* FROM actions a WHERE a.eventsource='2' ORDER BY a.name LIMIT 1001 OFFSET 0 actionconf.php:703 → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->get() → DBselect() in include/classes/api/services/CAction.php:255 SQL (0.000213): SELECT t.conditionid,t.actionid,t.conditiontype,t.operator,t.value,t.value2 FROM conditions t WHERE t.actionid IN ('8','9','10') actionconf.php:703 → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->get() → CAction->addRelatedObjects() → CApiService->select() → DBselect() in include/classes/api/CApiService.php:350 SQL (0.000191): SELECT t.* FROM operations t WHERE t.actionid IN ('8','9','10') actionconf.php:703 → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->get() → CAction->addRelatedObjects() → CApiService->select() → DBselect() in include/classes/api/CApiService.php:350 SQL (0.000171): SELECT op.* FROM opconditions op WHERE op.operationid IN ('9','10','11','12') actionconf.php:703 → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->get() → CAction->addRelatedObjects() → DBselect() in include/classes/api/services/CAction.php:1622 SQL (0.000217): SELECT o.operationid,o.groupid FROM opgroup o WHERE operationid IN ('9','10','11','12') actionconf.php:703 → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CAction->get() → CAction->addRelatedObjects() → DBselect() in include/classes/api/services/CAction.php:1768 SQL (6.7E-5): COMMIT actionconf.php:703 → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 SQL (5.7E-5): BEGIN actionconf.php:735 → CView->render() → include() → getActionOperationDescriptions() → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBstart() → DBexecute() in include/db.inc.php:258 SQL (7.0E-5): SELECT g.groupid,g.name FROM groups g WHERE g.groupid IN ('2','6') actionconf.php:735 → CView->render() → include() → getActionOperationDescriptions() → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CHostGroup->get() → DBselect() in include/classes/api/services/CHostGroup.php:324 SQL (5.9E-5): COMMIT actionconf.php:735 → CView->render() → include() → getActionOperationDescriptions() → CFrontendApiWrapper->get() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 It can be seen that the debug is quite different, including backtraces and source code lines. Could you please check whether you are really running r60696 of trunk? Alternatively, could you please attach your frontend here or a list of MD5 hashes for all the files? | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
I've tried to checkout latest trunk and put it on server as is. ie svn co svn://svn.zabbix.com/trunk/frontends/php full debug log: Total time: 0.044545 Total SQL time: 0.030324 SQL count: 34 (selects: 20 | executes: 14) Peak memory usage: 2M Memory limit: 128M 1. action.create [actionconf.php:207] Parameters: Array ( [name] => test [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [operations] => Array ( [0] => Array ( [operationtype] => '4' [mediatypeid] => 0 [opgroup] => Array ( [0] => Array ( [groupid] => 2 ) ) ) ) [filter] => Array ( [conditions] => Array ( ) [evaltype] => 0 ) [eventsource] => 2 ) Result: Array ( [actionids] => Array ( [0] => 17 ) ) 2. action.get [actionconf.php:702] Parameters: Array ( [output] => extend [filter] => Array ( [eventsource] => Array ( [0] => 2 ) ) [selectFilter] => Array ( [0] => formula [1] => conditions [2] => evaltype ) [selectOperations] => extend [editable] => 1 [sortfield] => name [limit] => 1001 ) Result: Array ( [0] => Array ( [actionid] => 17 [name] => test [eventsource] => 2 [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [maintenance_mode] => 1 [filter] => Array ( [evaltype] => 0 [formula] => [conditions] => Array ( ) ) [operations] => Array ( [0] => Array ( [operationid] => 21 [actionid] => 17 [operationtype] => 4 [esc_period] => 0 [esc_step_from] => 1 [esc_step_to] => 1 [evaltype] => 0 [opconditions] => Array ( ) [opgroup] => Array ( ) ) ) ) ) SQL (0.000177): SET NAMES utf8 actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DBexecute() in include/db.inc.php:59 SQL (0.001903): SHOW TABLES LIKE 'dbversion' actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DbBackend->checkDbVersion() → MysqlDbBackend->checkDbVersionTable() → DBselect() in include/classes/db/MysqlDbBackend.php:32 SQL (0.000209): SELECT dv.mandatory,dv.optional FROM dbversion dv actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DbBackend->checkDbVersion() → DBselect() in include/classes/db/DbBackend.php:46 SQL (0.000117): SELECT NULL FROM config c actionconf.php:22 → require_once() → ZBase->run() → ZBase->initDB() → DBconnect() → DbBackend->checkConfig() → DBselect() in include/classes/db/DbBackend.php:62 SQL (0.000191): BEGIN actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBstart() → DBexecute() in include/db.inc.php:258 SQL (0.000572): SELECT u.userid,u.autologout,s.lastaccess FROM sessions s,users u WHERE s.sessionid='f0bc0d86619a1d5e506a6a99d9a9a4a1' AND s.status=0 AND s.userid=u.userid AND (s.lastaccess+u.autologout>1466592911 OR u.autologout=0) actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CUser->checkAuthentication() → DBselect() in include/classes/api/services/CUser.php:1196 SQL (0.000169): SELECT g.usrgrpid FROM usrgrp g,users_groups ug WHERE ug.userid='1' AND g.usrgrpid=ug.usrgrpid AND g.users_status=1 LIMIT 1 OFFSET 0 actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CUser->checkAuthentication() → check_perm2system() → DBselect() in include/perm.inc.php:75 SQL (0.000744): UPDATE sessions SET lastaccess=1466592911 WHERE userid='1' AND sessionid='f0bc0d86619a1d5e506a6a99d9a9a4a1' actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CUser->checkAuthentication() → DBexecute() in include/classes/api/services/CUser.php:1221 SQL (0.000162): SELECT MAX(g.gui_access) AS gui_access FROM usrgrp g,users_groups ug WHERE ug.userid='1' AND g.usrgrpid=ug.usrgrpid actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CUser->checkAuthentication() → DBselect() in include/classes/api/services/CUser.php:1229 SQL (0.000136): SELECT u.userid,u.alias,u.name,u.surname,u.url,u.autologin,u.autologout,u.lang,u.refresh,u.type, u.theme,u.attempt_failed,u.attempt_ip,u.attempt_clock,u.rows_per_page FROM users u WHERE u.userid='1' actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CUser->checkAuthentication() → CUser->_getUserData() → DBselect() in include/classes/api/services/CUser.php:1253 SQL (0.000115): SELECT ug.userid FROM usrgrp g,users_groups ug WHERE ug.userid='1' AND g.usrgrpid=ug.usrgrpid AND g.debug_mode=1 actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CUser->checkAuthentication() → CUser->_getUserData() → DBselect() in include/classes/api/services/CUser.php:1261 SQL (0.001695): COMMIT actionconf.php:22 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 SQL (0.000378): SELECT p.* FROM profiles p WHERE p.userid=1 ORDER BY p.userid,p.profileid actionconf.php:31 → require_once() → zbx_construct_menu() → CProfile::update() → CProfile::init() → DBselect() in include/classes/user/CProfile.php:41 SQL (0.001145): SELECT c.* FROM config c actionconf.php:31 → require_once() → select_config() → DBselect() in include/profiles.inc.php:33 SQL (0.000254): BEGIN actionconf.php:193 → DBstart() → DBexecute() in include/db.inc.php:258 SQL (0.001609): SELECT a.* FROM actions a WHERE a.name='test' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->validateCreate() → CAction->get() → DBselect() in include/classes/api/services/CAction.php:255 SQL (0.000392): SELECT COUNT(DISTINCT g.groupid) AS rowscount FROM groups g WHERE g.groupid='2' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->validateCreate() → CAction->validateOperationsIntegrity() → CHostGroup->isWritable() → CHostGroup->get() → DBselect() in include/classes/api/services/CHostGroup.php:324 SQL (0.000667): SELECT nextid FROM ids WHERE table_name='actions' AND field_name='actionid' FOR UPDATE actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.00052): UPDATE ids SET nextid=17 WHERE table_name='actions' AND field_name='actionid' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.00296): INSERT INTO actions (name,status,esc_period,def_shortdata,def_longdata,recovery_msg,r_shortdata,r_longdata,eventsource,evaltype,actionid) VALUES ('test','0','0','Auto registration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}','0','','','2','0','17') actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000538): SELECT nextid FROM ids WHERE table_name='operations' AND field_name='operationid' FOR UPDATE actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.000221): UPDATE ids SET nextid=21 WHERE table_name='operations' AND field_name='operationid' actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.008296): INSERT INTO operations (operationtype,actionid,operationid) VALUES ('4','17','21') actionconf.php:207 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->create() → CAction->addOperations() → DB::save() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.000386): SELECT nextid FROM ids WHERE table_name='auditlog' AND field_name='auditid' FOR UPDATE actionconf.php:215 → add_audit() → DB::insert() → DB::reserveIds() → DBselect() in include/classes/db/DB.php:114 SQL (0.00021): UPDATE ids SET nextid=37 WHERE table_name='auditlog' AND field_name='auditid' actionconf.php:215 → add_audit() → DB::insert() → DB::reserveIds() → DBexecute() in include/classes/db/DB.php:128 SQL (0.00029): INSERT INTO auditlog (userid,clock,ip,action,resourcetype,details,auditid) VALUES ('1','1466592911','192.168.101.7','0','5','Name: test','37') actionconf.php:215 → add_audit() → DB::insert() → DBexecute() in include/classes/db/DB.php:440 SQL (0.001753): COMMIT actionconf.php:219 → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 SQL (0.000206): BEGIN actionconf.php:702 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBstart() → DBexecute() in include/db.inc.php:258 SQL (0.001947): SELECT a.* FROM actions a WHERE a.eventsource='2' ORDER BY a.name LIMIT 1001 OFFSET 0 actionconf.php:702 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->get() → DBselect() in include/classes/api/services/CAction.php:255 SQL (0.000444): SELECT t.conditionid,t.actionid,t.conditiontype,t.operator,t.value,t.value2 FROM conditions t WHERE t.actionid='17' actionconf.php:702 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->get() → CAction->addRelatedObjects() → CApiService->select() → DBselect() in include/classes/api/CApiService.php:350 SQL (0.000594): SELECT t.* FROM operations t WHERE t.actionid='17' actionconf.php:702 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->get() → CAction->addRelatedObjects() → CApiService->select() → DBselect() in include/classes/api/CApiService.php:350 SQL (0.00043): SELECT op.* FROM opconditions op WHERE op.operationid='21' actionconf.php:702 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->get() → CAction->addRelatedObjects() → DBselect() in include/classes/api/services/CAction.php:1622 SQL (0.000685): SELECT o.operationid,o.groupid FROM opgroup o WHERE operationid='21' actionconf.php:702 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CAction->get() → CAction->addRelatedObjects() → DBselect() in include/classes/api/services/CAction.php:1767 SQL (0.000209): COMMIT actionconf.php:702 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → DBend() → DBcommit() → DBexecute() in include/db.inc.php:319 | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
frontend checkout from svn trunk attached | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
One difference we can spot is that my debug has the following: [operations] => Array ( [0] => Array ( [operationtype] => 4 ... Your debug has operation type as a string with single quotes inside it: [operations] => Array ( [0] => Array ( [operationtype] => '4' ... What browser, Web server, and PHP versions are you trying this on? | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
"ZabbixPHP.tar.bz2" looks good. You can remove it now to save space. | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
server running on Ubuntu 16.04 apache 2.4.18-2ubuntu3 php 7.0.4-7ubuntu2.1 google chrome 51.0.2704.84 (64-bit) mozilla firefox 47.0 | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
Could you please show the POST data that the browser sends to the Web server? | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
POST: sid=506a6a99d9a9a4a1&form_refresh=6&form=Create+action&eventsource=2&name=test&def_shortdata=Auto+registration%3A+%7BHOST.HOST%7D&def_longdata=Host+name%3A+%7BHOST.HOST%7D%0D%0AHost+IP%3A+%7BHOST.IP%7D%0D%0AAgent+port%3A+%7BHOST.PORT%7D&status=0&evaltype=0&formula=&conditions%5B0%5D%5Bconditiontype%5D=24&conditions%5B0%5D%5Boperator%5D=2&conditions%5B0%5D%5Bvalue%5D=test&conditions%5B0%5D%5Bformulaid%5D=A&conditions%5B0%5D%5Bvalue2%5D=&new_condition%5Bconditiontype%5D=24&new_condition%5Boperator%5D=2&new_condition%5Bvalue%5D=&operations%5B0%5D%5Boperationtype%5D=4&operations%5B0%5D%5Bgroupids%5D%5B0%5D=6&operations%5B0%5D%5Bmediatypeid%5D=0&add=Add | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 22 ] | ||||||||||||||||
The POST request looks good: ... operations%5B0%5D%5Boperationtype%5D=4 ... decoding which yields ... operations[0][operationtype]=4 ... | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
I've added debug output to func.inc.php getRequest getRequest: form_refresh: string(1) "6"\n getRequest: name: string(3) "ttt"\n getRequest: status: string(1) "0"\n getRequest: def_shortdata: string(30) "Auto registration: {HOST.HOST}"\n getRequest: def_longdata: string(67) "Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}"\n getRequest: operations: array(1) {\n [0]=>\n array(3) {\n ["operationtype"]=>\n string(1) "4"\n ["groupids"]=>\n array(1) {\n [0]=>\n string(1) "6"\n }\n ["mediatypeid"]=>\n string(1) "0"\n }\n}\n getRequest: conditions: array(1) {\n [0]=>\n array(5) {\n ["conditiontype"]=>\n string(2) "24"\n ["operator"]=>\n string(1) "2"\n ["value"]=>\n string(3) "ttt"\n ["formulaid"]=>\n string(1) "A"\n ["value2"]=>\n string(0) ""\n }\n}\n getRequest: evaltype: string(1) "0"\n getRequest: eventsource: string(1) "2"\n getRequest: eventsource: string(1) "2"\n getRequest: form_refresh: string(1) "6"\n getRequest: form_refresh: string(1) "6"\n | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
Debug output API::Action()->create() argument: Array ( [name] => ttt [status] => 0 [esc_period] => 0 [def_shortdata] => Auto registration: {HOST.HOST} [def_longdata] => Host name: {HOST.HOST} Host IP: {HOST.IP} Agent port: {HOST.PORT} [recovery_msg] => 0 [r_shortdata] => [r_longdata] => [operations] => Array ( [0] => Array ( [operationtype] => 4 [mediatypeid] => 0 [opgroup] => Array ( [0] => Array ( [groupid] => 6 ) ) ) ) [filter] => Array ( [conditions] => Array ( [0] => Array ( [conditiontype] => 24 [operator] => 2 [value] => bbb [formulaid] => A [value2] => ) ) [evaltype] => 0 ) [eventsource] => 2 ) | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
I've tried to debug it in CAction.php file function protected function addOperations($operations) in process it calls $operations = DB::save('operations', $operations); and after that operationtype is '4' (ie 3 characters length string) DB.php DB::save() calls self::insert($tableName, $newRecords); insert() calls self::checkValueTypes($table, $row); checkValueTypes() contains $values[$field] = zbx_dbstr($values[$field]); and zbx_dbstr has: return "'".mysqli_real_escape_string($DB['DB'], $var)."'"; | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
i wonder why public static function checkValueTypes($table, &$values) has "&" prefix? why not just "return $values" at the end? | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 22 ] | ||||||||||||||||
i've added quick hack for test $row_ = unserialize(serialize($row)); self::checkValueTypes($table, $row_); $sql = 'INSERT INTO '.$table.' ('.implode(',', array_keys($row_)).') VALUES ('.implode(',', array_values($row_)).')'; it creates action successfully after that | ||||||||||||||||
Comment by Alexander Vladishev [ 2016 Jun 27 ] | ||||||||||||||||
I confirm the issue in latest trunk r60755 and latest 3.0 r60747. Seems the problem can be reproduced with php7 only. | ||||||||||||||||
Comment by Alexander Vladishev [ 2016 Jun 27 ] | ||||||||||||||||
It is php7 bug described in https://bugs.php.net/bug.php?id=71914. Updating to version 7.0.6 can solve this problem. | ||||||||||||||||
Comment by Alexander Vladishev [ 2016 Jun 27 ] | ||||||||||||||||
I close the issue as "Won't Fix". | ||||||||||||||||
Comment by richlv [ 2016 Jun 27 ] | ||||||||||||||||
would it be worth blacklisting that php version in the requirement check ? that would fail the config wizard, and show up in red in the dashboard for superadmins. also, is it worth documenting in known issues ? | ||||||||||||||||
Comment by Pavel Volkovitskiy [ 2016 Jun 27 ] | ||||||||||||||||
Unfortunately this php version is latest available version on latest ubuntu lts release | ||||||||||||||||
Comment by Aleksandrs Saveljevs [ 2016 Jun 28 ] | ||||||||||||||||
This does not seem to cause any particular issues here, but sasha has also reported another bug in PHP 7.0.8 (see https://bugs.php.net/bug.php?id=72508). | ||||||||||||||||
Comment by Alexander Vladishev [ 2016 Jun 28 ] | ||||||||||||||||
Officially Zabbix does not support php7. See requirements for more details. |