From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 21 Aug 2003 15:33:15 +0300 From: Michael Shigorin To: ALT Devel discussion list Subject: Re: [devel] [Monit] SIGSEGV ][ Message-ID: <20030821123315.GA24314@osdn.org.ua> Mail-Followup-To: ALT Devel discussion list , Igor Homyakov References: <20020923155752.GA21515@kadath.pm.ramax.spb.ru> <20020923162426.GA16046@basalt.office.altlinux.ru> <20020923161220.GA27239@kadath.pm.ramax.spb.ru> <20020923164607.GA16208@basalt.office.altlinux.ru> <20020923164831.GB27239@kadath.pm.ramax.spb.ru> <20020923171514.GA16526@basalt.office.altlinux.ru> <20020925084949.GA3517@kadath.pm.ramax.spb.ru> <20020925094553.GA30060@basalt.office.altlinux.ru> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="LZvS9be/3tNcYl/X" Content-Disposition: inline In-Reply-To: <20020925094553.GA30060@basalt.office.altlinux.ru> User-Agent: Mutt/1.4.1i Cc: Igor Homyakov X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Aug 2003 12:33:18 -0000 Archived-At: List-Archive: List-Post: --LZvS9be/3tNcYl/X Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit On Wed, Sep 25, 2002 at 01:45:53PM +0400, Dmitry V. Levin wrote: > > > > > > > > У меня странная картина, monit из Сизифа валиться на пустом месте > > > > > > > > с SIGSERV. А собранный локально нормально работает. > > > > > Если приложение многопоточное и при этом нити используют get{host,net}by*, > > > > > то 99% что #0001259; traceback при этом ведет в libnss_XXX. > > > В таком случае применимы те же workaround'ы, что и для mysqld. > glibc-nss-2.2.6-alt0.3 Так. А что делать, если локально собранный 3.2-alt1 имени Игоря валится, причем даже при /etc/monitrc вида --- set daemon 120 set logfile syslog set mailserver localhost set mail-format { from: root@inmetex.com.ua subject: [monit] -- $PROGRAM $EVENT on $HOST at $DATE message: } check syslogd with pidfile /var/run/syslogd.pid start program = "/etc/init.d/syslogd start" stop program = "/etc/init.d/syslogd stop" alert admin group system --- (разумеется, /var/run/syslogd.pid существует и содержит правильный PID) Конец strace -ff выглядит так: --- read(4, "127.0.0.1\t\tlocalhost.localdomain"..., 4096) = 43 read(4, "", 4096) = 0 close(4) = 0 munmap(0x123000, 4096) = 0 uname({sys="Linux", node="trickster.inmetex", ...}) = 0 read(3, "", 8192) = 0 ioctl(3, TCGETS or SNDCTL_TMR_TIMEBASE, 0xbffff270) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 munmap(0x122000, 4096) = 0 stat64("/var/run/syslogd.pid", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0 stat64("/var/run/syslogd.pid", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0 open("/var/run/syslogd.pid", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x122000 read(3, "1186\n", 4096) = 5 close(3) = 0 munmap(0x122000, 4096) = 0 getpgid(0x4a2) = 1186 getuid32() = 0 stat64("/var/run/monit.pid", 0xbffff770) = -1 ENOENT (No such file or directory) --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ --- touch /var/run/monit.pid или помещение туда несуществующего PID => --- stat64("/var/run/monit.pid", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0 stat64("/var/run/monit.pid", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0 open("/var/run/monit.pid", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x122000 read(3, "2325\n", 4096) = 5 close(3) = 0 munmap(0x122000, 4096) = 0 getpgid(0x915) = -1 ESRCH (No such process) --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ --- Помещение туда PID "левого" существующего процесса приводит к отправке ему SIGUSR1 и счастливому завершению monit: --- stat64("/var/run/monit.pid", {st_mode=S_IFREG|0644, st_size=6, ...}) = 0 stat64("/var/run/monit.pid", {st_mode=S_IFREG|0644, st_size=6, ...}) = 0 open("/var/run/monit.pid", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=6, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x122000 read(3, "31193\n", 4096) = 6 close(3) = 0 munmap(0x122000, 4096) = 0 getpgid(0x79d9) = 31193 kill(31193, SIGUSR1) = 0 write(2, "monit daemon at 31193 awakened\n", 31monit daemon at 31193 awakened ) = 31 _exit(0) = ? --- Для удобства: ftp://ftp.altlinux.org/pub/people/mike/misc/monit-3.2-alt1.src.rpm -- ---- WBR, Michael Shigorin ------ Linux.Kiev http://www.linux.kiev.ua/ --LZvS9be/3tNcYl/X Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE/RLwLbsPDprYMm3IRAtCIAJ9DrTYrXi6eEJLRBLLvBSwUcmovUwCfbQPw iRTqtYr1Q0OBmgF5XmXu8Qs= =VTtY -----END PGP SIGNATURE----- --LZvS9be/3tNcYl/X--