FreeBSD Bugzilla – Attachment 50349 Details for
Bug 76736
syslogd(8) pipelines losing messages
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 1.09 KB, created by
Felix Hernandez Campos
on 2005-01-27 02:30:18 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Felix Hernandez Campos
Created:
2005-01-27 02:30:18 UTC
Size:
1.09 KB
patch
obsolete
>*** syslogd.c.1.59.2.28 Wed Jan 26 18:30:28 2005 >--- syslogd.c Wed Jan 26 18:51:21 2005 >*************** >*** 103,108 **** >--- 103,109 ---- > #include <libutil.h> > #include <limits.h> > #include <paths.h> >+ #include <sched.h> > #include <signal.h> > #include <stdio.h> > #include <stdlib.h> >*************** >*** 1153,1158 **** >--- 1154,1167 ---- > } > if (writev(f->f_file, iov, 7) < 0) { > int e = errno; >+ if (e == EWOULDBLOCK) { >+ /* Pipe may just be full, so give logging >+ * subprocess a chance to empty the pipe >+ * before assuming that the subprocess hung */ >+ sched_yield(); >+ if (writev(f->f_file, iov, 7) >= 0) >+ break; >+ } > (void)close(f->f_file); > if (f->f_un.f_pipe.f_pid > 0) > deadq_enter(f->f_un.f_pipe.f_pid,
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 76736
: 50349