A. Schulze: > > wietse: > > > A. Schulze: > >> postqueue: panic: vbuf_print: output for '%s' exceeds space 0
OK, now please (install and) use ltrace. This provides more details what happens in postqueue itself (strace gives insight into system calls, i.e. the postqueue-kernel interface). Wietse > > this is pfqgrep: > > $mailq = "/usr/sbin/postqueue -p |"; # added 'strace -f' here > open(MAILQ, $mailq) or die; > while (<MAILQ>) { > # read from STDIN > } > > execve("/usr/sbin/postqueue", ["/usr/sbin/postqueue", "-p"], [/* 52 > vars */]) = 0 > ... > chdir("/var/spool/postfix") = 0 > rt_sigaction(SIGPIPE, {0x1, [PIPE], SA_RESTORER|SA_RESTART, > 0x7f4c8e917910}, {SIG_DFL, [], 0}, 8) = 0 > getuid() = 0 > socket(PF_FILE, SOCK_STREAM, 0) = 4 > fcntl(4, F_GETFL) = 0x2 (flags O_RDWR) > fcntl(4, F_SETFL, O_RDWR) = 0 > connect(4, {sa_family=AF_FILE, path="public/showq"}, 110) = 0 > poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}]) > read(4, "queue_name\0active\0queue_id\0003xdsD"..., 4096) = 149 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > write(1, "----Queue ID----- --Size-- ---Ar"..., 218) = 218 > poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}]) > read(4, "queue_name\0active\0queue_id\0003xgg0"..., 4096) = 1453 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > write(1, "\n3xgg0L0F7Lz4FLj* 30013 Mon "..., 257) = 257 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > Quantifier follows nothing in regex; marked by <-- HERE in m/+ <-- > HERE 1234567890123/ at /usr/sbin/pfqgrep line 158, <MAILQ> chunk 1. > write(1, "\n3xgfY21WScz4FLZ* 32602 Mon "..., 241) = 241 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > write(1, "\n3xgWSk0qGbz4FKf* 42628 Mon "..., 257) = 257 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > write(1, "\n3xgh1z1cT1z4FLr* 76609 Mon "..., 184) = -1 EPIPE (Broken pipe) > --- SIGPIPE (Broken pipe) @ 0 (0) --- > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}]) > read(4, "queue_name\0active\0queue_id\0003xgKR"..., 4096) = 4096 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}]) > read(4, "3xdqXK4q4lz4FLK\0time\0001503639089\0"..., 4096) = 4096 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0 > write(2, "postqueue: panic: vbuf_print: ou"..., 62postqueue: panic: > vbuf_print: output for '%s' exceeds space 0 > ) = 62 > sendto(3, "<18>Aug 28 08:09:02 postfix/post"..., 95, MSG_NOSIGNAL, > NULL, 0) = 95 > rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 > rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 > rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 > nanosleep({1, 0}, {1, 0}) = 0 > rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 > tgkill(1753, 1753, SIGABRT) = 0 > --- SIGABRT (Aborted) @ 0 (0) --- > +++ killed by SIGABRT +++ > > > Maybe perl open not only read from th process but write also > I've an older version of perl (5.10.0) > maybe perl open is already changed in newer versions. > > > Unfortunately, there is no way that I can reproduce this in > > postfix-3.2.0, given the preconditions in this code. Does this > > machine have ECC memory? Does it have a history of programs crashing? > no ecc issue. no other crashes. panic starts with reading qshape, take > row #1 as argv to pfqgrep. > > unrelated by interesting: why does strace show so many > 'stat("/etc/localtime" ...' calls? > > Andreas > >