Please help me with the following problem. On some reason LWP in control module Foscam.pm is failing with "Bad file descriptor" when command is about to be send over HTTP.
syslog:
Code: Select all
16:15:00 zmcontrol[20060]: INF [Error check failed:'500 Can't connect to 192.168.1.110:80 (connect: Bad file descriptor)]
Code: Select all
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("192.168.1.110")}, 16) = -1 EINPROGRESS (Operation now in progress)
fcntl64(4, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl64(4, F_SETFL, O_RDWR) = 0
close(4) = 0
strace:
Code: Select all
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("192.168.1.110")}, 16) = -1 EINPROGRESS (Operation now in progress)
select(8, NULL, [3], NULL, {180, 0}) = 1 (out [3], left {179, 980022})
connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("192.168.1.110")}, 16) = 0
write(3, "GET /decoder_control.cgi?command"..., 176) = 176
read(3, "HTTP/1.1 200 OK\r\nServer: Netwave"..., 1024) = 176
The problem is not always reproducible. Sometimes the command is passed through.
Can somebody give me a hint where to look at? As the script forks, I cannot do perl -wTd:Trace /usr/bin/zmcontrol.pl ... If somebody knows if it is possible to connect to running script, please let me know.
Debian sid, kernel 3.2.0-3-486, Perl v5.14.2.