Quoting Willy Tarreau <w...@1wt.eu>:

On Wed, Jan 21, 2009 at 09:43:58PM +0100, Martin Karbon wrote:
Quoting Willy Tarreau <w...@1wt.eu>:

Hi Willy, thanks for the fast reply
>Hi Martin,
>
>On Wed, Jan 21, 2009 at 12:13:35PM +0100, Martin Karbon wrote:
>>Hi
>>I am relatively new to this great software and I am having problems
>>with the feature stats socket. it won't write the haproxy.stat file no
>>matter what. so I cannot run the "socat".
>>r...@lb1:~# echo "show stat" | socat unix-connect:/var/run/haproxy.stat
>>stdio
>>2009/01/21 12:12:54 socat[4887] E connect(3, AF=1
>>"/var/run/haproxy.stat", 23): No such file or directory
>>I wanted to try to write some  script that checks the connection
>>distribution every n seconds (i.e.for a monitoring tool)... any advice
>>for this?
>
>I see nothing wrong in your config. It's so simple! Could you check a
>few things, such as if something already exists in /var/run, if you see
>a symbolic link or anything like this which might explain such a strange
>behaviour.

As far as I can see no symbolic link in here...just pid files and some dirs

>Also, it would be nice if you could start haproxy under strace :
>
># strace -o /tmp/haproxy-start.log haproxy -db -f /etc/haproxy.cfg
>
>Then press Ctrl-C after a few seconds, and look for "haproxy.stat"
>in the output file (or post the result here). I think we'll find
>the reason there. There must be an error somewhere, or there is
>something disabling the stats but I don't see what can do that.
>
>Regards,
>Willy

here is the output of the strace (note: this is a virtual machine I
have at home, same installation as the "original" one)

(...)

now that's rather intriguing. There's no trace of the socket at all.
Just as if the "stats" line was ignored.

What version of haproxy do you have ? (haproxy -vv)

r...@lobalix01:/etc# haproxy -vv
HA-Proxy version 1.3.12 2007/06/17
Copyright 2000-2007 Willy Tarreau <w...@1wt.eu

Could you add an error on the "stats" line (insert "foobar" before
"socket") so that you can verify haproxy complains ? If it does
not complain, could you retype the line or at least add one line
with "stats foobar" in order to get the parsing error ?

I'm realizing that I generally add the "stats socket" line
approximately as the last line of the global section. While
it would appear stupid to me, could you please move this line
at the end of the section ? Maybe there's a long standing bug
caused by another parameter clearing this one (but once again,
I'd find that a bit strange).

I prefer easily reproducible errors like this one to non-
deterministic ones !

Regards,
Willy

r...@lobalix01:/etc# cat /etc/haproxy.cfg
global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        maxconn 4096
        user haproxy
        group haproxy
        stats fooabove socket /var/run/haproxy.above
        stats socket /var/run/haproxy.stat mode 600
        stats foobelow socket /var/run/haproxy.below
...

when I start
r...@lobalix01:/etc# strace -o /tmp/haproxy-start.log haproxy -db -f /etc/haproxy.cfg
no parsing error is shown, whereas the trace is as follows

r...@lobalix01:/etc# cat /tmp/haproxy-start.log
execve("/usr/sbin/haproxy", ["haproxy", "-db", "-f", "/etc/haproxy.cfg"], [/* 18 vars */]) = 0
brk(0)                                  = 0x8072000
access("/etc/ld.so.nohwcap", F_OK)      = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f14000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=17937, ...}) = 0
mmap2(NULL, 17937, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f0f000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = 0
open("/usr/lib/libpcreposix.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\6\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=5280, ...}) = 0
mmap2(NULL, 8112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f0d000 mmap2(0xb7f0e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb7f0e000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = 0
open("/usr/lib/libpcre.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\16"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=157240, ...}) = 0
mmap2(NULL, 156036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ee6000 mmap2(0xb7f0c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26) = 0xb7f0c000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1274092, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ee5000 mmap2(NULL, 1279600, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dac000 mmap2(0xb7edf000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x133) = 0xb7edf000 mmap2(0xb7ee2000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7ee2000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7dab000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7dab6b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7edf000, 4096, PROT_READ)   = 0
munmap(0xb7f0f000, 17937)               = 0
gettimeofday({1232582050, 620609}, NULL) = 0
brk(0)                                  = 0x8072000
brk(0x8093000)                          = 0x8093000
open("/etc/localtime", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2652, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=2652, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f13000 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\6\0\0"..., 4096) = 2652
_llseek(3, -28, [2624], SEEK_CUR)       = 0
read(3, "\nCET-1CEST,M3.5.0,M10.5.0/3\n", 4096) = 28
close(3)                                = 0
munmap(0xb7f13000, 4096)                = 0
getpid()                                = 4334
uname({sys="Linux", node="lobalix01", ...}) = 0
open("/etc/haproxy.cfg", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=744, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f13000
read(3, "global\n        log 127.0.0.1   l"..., 4096) = 744
socket(PF_FILE, SOCK_STREAM, 0)         = 4
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = 0
send(4, "\2\0\0\0\v\0\0\0\7\0\0\0passwd\0", 19, MSG_NOSIGNAL) = 19
poll([{fd=4, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1 recvmsg(4, {msg_name(0)=NULL, msg_iov(2)=[{"passwd\0", 7}, {"\270O\3\0\0\0\0\0", 8}], msg_controllen=16, {cmsg_len=16, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {5}}, msg_flags=0x40000000 /* MSG_??? */}, 0x40000000 /* MSG_??? */) = 15
mmap2(NULL, 217016, PROT_READ, MAP_SHARED, 5, 0) = 0xb7d76000
close(5)                                = 0
close(4)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 4
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = 0
send(4, "\2\0\0\0\f\0\0\0\6\0\0\0group\0", 18, MSG_NOSIGNAL) = 18
poll([{fd=4, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1 recvmsg(4, {msg_name(0)=NULL, msg_iov(2)=[{"group\0", 6}, {"\270O\3\0\0\0\0\0", 8}], msg_controllen=16, {cmsg_len=16, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {5}}, msg_flags=0x40000000 /* MSG_??? */}, 0x40000000 /* MSG_??? */) = 14
mmap2(NULL, 217016, PROT_READ, MAP_SHARED, 5, 0) = 0xb7d41000
close(5)                                = 0
close(4)                                = 0
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f13000, 4096)                = 0
gettimeofday({1232582050, 648208}, NULL) = 0
mmap2(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d10000
rt_sigaction(SIGQUIT, {0x8049c40, [QUIT], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGUSR1, {0x8049f00, [USR1], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {0x8049c60, [HUP], SA_RESTART}, {SIG_DFL}, 8) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
fcntl64(3, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("192.168.1.210")}, 16) = 0
listen(3, 2000)                         = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 4
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2652, ...}) = 0
sendto(4, "<141>Jan 22 00:54:10 haproxy[433"..., 56, MSG_DONTWAIT|MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(514), sin_addr=inet_addr("127.0.0.1")}, 16) = 56 sendto(4, "<133>Jan 22 00:54:10 haproxy[433"..., 56, MSG_DONTWAIT|MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(514), sin_addr=inet_addr("127.0.0.1")}, 16) = 56
rt_sigaction(SIGTTOU, {0x8049ed0, [TTOU], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTTIN, {0x8049eb0, [TTIN], SA_RESTART}, {SIG_DFL}, 8) = 0
setrlimit(RLIMIT_NOFILE, {rlim_cur=8205, rlim_max=8205}) = 0
setgid32(113)                           = 0
setuid32(105)                           = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=8205, rlim_max=8205}) = 0
gettimeofday({1232582050, 660282}, NULL) = 0
select(4, [3], NULL, NULL, {1, 996926}) = 0 (Timeout)
gettimeofday({1232582052, 659017}, NULL) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 5
fcntl64(5, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
setsockopt(5, SOL_TCP, TCP_NODELAY, [1], 4) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("192.168.1.123")}, 16) = -1 EINPROGRESS (Operation now in progress)
select(6, [3], [5], NULL, {0, 998191})  = ? ERESTARTNOHAND (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
+++ killed by SIGINT +++
r...@lobalix01:/etc# cat /tmp/haproxy-start.log | grep -i foo
r...@lobalix01:/etc#

you thinking the version being the problem ? This is the version I get from ubuntus repositories ...

Martin



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


Reply via email to