[collectd] Strange behavior of UnixSock plugin

Jarle Bjørgeengen jarle at bjorgeengen.net
Fri Dec 12 15:01:05 CET 2008


 Hi experts,

after upgrading collectd to 4.4.4 (from EPEL repository) my perl script
that sends data to the Unixsock plugin stopped working. 

I can't get it  to output any debug information to logfile. It just
hangs forever on the first putval method of the open socket (I'm using
Unixsock perl module) 

It stops when doing this. 

---------------------------------
 $sock->putval (%identifier, time=> $time , \
values => [@vdisk_rates, at vdisk_lats])
---------------------------------

and does not return, or output anything to the logfile. 


last line of strace of the process looks like this.

-----------------------------------------
read(3, "disk032,eva06\n1229090177,31,3,0."..., 4096) = 4096
read(3, "known,A,Yes,Back,XAJ7,tier-1\\Vdi"..., 4096) = 4096
read(3, "prod_cx_ora_redo,eva05\n122909017"..., 4096) = 4096
read(3, "d5,eva04\n1229090177,34,0,0.00,0."..., 4096) = 4096
brk(0x1da97000)                         = 0x1da97000
read(3, "229090177,17,0,0.00,0.0,0,0.00,0"..., 4096) = 4096
read(3, "01,0.02,0.00,146GB-FC-DiskGroup,"..., 4096) = 4096
read(3, ".00,146GB-FC-DiskGroup,Unknown,A"..., 4096) = 4096
brk(0x1dab8000)                         = 0x1dab8000
read(3, "up,Unknown,B,Yes,Back,L80V,win-p"..., 4096) = 598
read(3, "", 4096)                       = 0
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4708cf90) = -1 EINVAL
(Invalid argument)
lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4708cf90) = -1 EINVAL
(Invalid argument)
lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
connect(3, {sa_family=AF_FILE, path="/usr/var/run/collectd-unixsock"},
110) = 0
write(1, "Starting to send data to collect"..., 34Starting to send data
to collectd
) = 34
write(3, "PUTVAL \"eva06/evaperf-vd/eva_vd-"..., 112) = 112
read(3, 
-----------------------------------------

and then it stops. 

I have tested to change the data input so that it is wrong identifer
number of fields, and it then gives error , as expected. 

I have alsoe verified (by printing just before) the values inside all
variables passed to the putval method. 

Any suggestions how to proceed troubleshooting this are highly
appreciated. 

Best rgds
Jarle Bjørgeengen




More information about the collectd mailing list