[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
Revision 60696 15 February 2016, compilation time: Jun 20 2016 13:25:42



 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:

operationtype groupid templateid inventory_mode
4 NULL NULL NULL
6 NULL NULL NULL

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:
#define ZABBIX_REVDATE "15 February 2016"

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

Name Conditions Operations Status
Linux tmp Host metadata like tmp Add to host groups: Enabled

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;
operationid actionid operationtype esc_period esc_step_from esc_step_to evaltype
14 10 4 0 1 1 0
select count(*) from opgroup where operationid=14;
count(*)
0
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
client - OS X 10.11

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.

Generated at Wed Apr 24 22:39:56 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.