При неправильном задании пути при работе с ssl-версией(через stunnel), например <a href="http://192.168.1.1:20081">http://192.168.1.1:20081</a> (а не https),т.е. просто при неправильной работе через ssl, stunnel обрывает соединение клиент(правильно), но также шлет rconfrontend SIGPIPE, обработчиков которого у того нет, в итоге он завершается. --- --- 1-ая часть(вывод strace), также в httpd.rb нет обработчика на SIGPIPE (вывод после strace) 10089 accept(4, {sa_family=AF_INET, sin_port=htons(32855), sin_addr=inet_addr(\"127.0.0.1\")}, [16]) = 5 10089 fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR) 10089 fstat64(5, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 10089 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4028b000 10089 _llseek(5, 0, 0xbfffbfe0, SEEK_CUR) = -1 ESPIPE (Illegal seek) 10089 fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR) 10089 fstat64(5, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 10089 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4028c000 10089 _llseek(5, 0, 0xbfffbfe0, SEEK_CUR) = -1 ESPIPE (Illegal seek) 10089 read(5, 0x4028b000, 4096) = -1 ECONNRESET (Connection reset by peer) 10089 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 10089 brk(0x8097000) = 0x8097000 10089 write(5, \"HTTP/1.1 200 OK\\r\\nContent-Type: t\"..., 116) = -1 EPIPE (Broken pipe) 10089 --- SIGPIPE (Broken pipe) @ 0 (0) --- 10089 sigreturn() = ? (mask now []) 10089 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 10089 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 10089 close(5) = 0 10089 munmap(0x4028c000, 4096) = 0 10089 close(5) = -1 EBADF (Bad file descriptor) 10089 munmap(0x4028b000, 4096) = 0 10089 close(4) = 0 10089 munmap(0x4028a000, 4096) = 0 10089 close(4) = -1 EBADF (Bad file descriptor) 10089 munmap(0x40289000, 4096) = 0 10089 _exit(-1) = ? Выдержка из httpd.rb class Httpd def initialize(dispatcher, host=\'localhost\', port=20080) @dispatcher = dispatcher @socket = TCPServer.new(host, port) [\"SIGTERM\", \"SIGHUP\", \"SIGINT\"].each{ |sig| trap sig, lambda { shutdown } } end
Будет исправлено позже
re
Боюсь, не будет исправлено вообще (orphaned).