-
Problem report
-
Resolution: Won't fix
-
Major
-
None
-
None
-
CentOS-6.9, three hosts:
a) Zabbix-2.2.18, PHP-5.3.3
b) Zabbix-2.4.8, PHP-5.3.3, PHP-5.6.32
c) Zabbix-3.2.6, PHP-5.6.31
RHEL-7.3, one host
a) Zabbix-2.4.8, PHP-5.4.16
Using simple PHP script as UserParameter,
UserParameter=local.php.test,php -f /var/tmp/stdout.tester.php
<?php date_default_timezone_set("America/Chicago"); $count=fwrite(STDOUT,strftime("%c")); exit; ?>
the test (zabbix_agentd -t local.php.test) hangs under PHP-5.3.3 but works with PHP >=5.4.
Significant tail-end portion of strace Zabbix-2.1.18/2.4.8, PHP-5.3.3
alarm(3) = 0 pipe([3, 4]) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f6ce1aeda90) = 3215 close(4) = 0 read(3, 0x7ffc3cf7f210, 4095) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_STOPPED, si_pid=3215, si_status=SIGTTOU, si_utime=0, si_stime=0} --- read(3, 0x7ffc3cf7f210, 4095) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL, si_value={int=22, ptr=0x16}} --- rt_sigreturn() = -1 EINTR (Interrupted system call) close(3) = 0 kill(4294964081, SIGTERM) = 0 wait4(3215, [{WIFSTOPPED(s) && WSTOPSIG(s) == SIGTTOU}], WSTOPPED|WCONTINUED, NULL) = 3215 wait4(3215, ^CProcess 3214 detached <detached ...> [root@newzabbix tmp]# zabbix_agentd [3214]: Warning: Got signal [signal:2(SIGINT),sender_pid:0,sender_uid:0,reason:128]. Exiting ... zabbix_agentd [3214]: Zabbix Agent stopped. Zabbix 2.2.18 (revision 67443).
Process hangs and has to be manually terminated (crtl-c).
strace of success under Zabbix-2.4.8, PHP >= 5.4
alarm(3) = 0 pipe([3, 4]) = 0 write(1, "local.php.test "..., 45local.php.test ) = 45 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f112fb18a90) = 3708 close(4) = 0 read(3, "Sat Aug 5 00:00:10 2017", 4095) = 24 read(3, "", 4095) = 0 close(3) = 0 wait4(3708, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WSTOPPED|WCONTINUED, NULL) = 3708 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3708, si_status=0, si_utime=0, si_stime=0} --- alarm(0) = 3 write(1, " [t|Sat Aug 5 00:00:10 2017]\n", 30 [t|Sat Aug 5 00:00:10 2017] ) = 30 exit_group(0) = ? +++ exited with 0 +++