[syslog-ng] destination program is killed due to broken pipe

midnight codder midnight.codder at gmail.com
Wed Aug 27 21:54:43 CEST 2008


On Thu, Aug 21, 2008 at 7:25 AM, Balazs Scheidler <bazsi at balabit.hu> wrote:

> On Wed, 2008-08-20 at 09:10 -0500, midnight codder wrote:
> > Thanks for all of those alternatives.
> > Allow me to rephrase my question (any idea): Does anyone have any idea
> > as to why I am getting the broken pipe?
> > The script I am using now is for the sake of simplifying things so I
> > can pin point where troubles begin.
> > We are not going to use such a script in production.
> > The original java program that was supposed to be the destination is
> > much more complicated, although in a sense it still reads the log
> > messages off of std in, just like the script. (it is the handling of
> > the logs afterwards that is complex).
> > I shall investigate into using one of the alternatives, however - I
> > will still be happy to know what might have went wrong.
>
> >
> >         <priC> <date 08-08-19T15:13:56.198-05:00> <host=oracle-test>
> >         <msg=syslog-ng[27971]: I/O error occurred while writing;
> >         fd='11', error='Broken pipe (32)'>
> >         <priF> <date 08-08-19T15:13:56.198-05:00> <host=oracle-test>
> >         <msg=syslog-ng[27971]: Sending child a TERM signal;
> >         child_pid='27972'>
>
> Your script terminates for some reason, it's not syslog-ng that kills
> your process, it is your script that dies.
>
> please run syslog-ng under strace -f (to follow forks) and see why your
> shell script exits.
>
> --
> Bazsi
>
>
> ______________________________________________________________________________
> Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Documentation:
> http://www.balabit.com/support/documentation/?product=syslog-ng
> FAQ: http://www.campin.net/syslog-ng/faq.html
>
>
Balazs,
I can't seem to find the command line option that you've mentioned. there is
-F (running int he foreground) and -f <config file name>.
I don't see any command line option that refers to following forks.
I am running syslog-ng with -v and -d to get as many as messages as
possible.

The good news, however, are that the script now is running successfully. (I
had a typo, as usually, the mistake is so obvious it cannot be noticed)
But my java program still fails to intercept any message. For any of you
java driven syslog-ng users out there, please review this bit of code,
perhaps you can point out where I went wrong. Here is the java code, it is a
small main method:


 static public void main(String[] args) throws IOException {
      int counter = 0;
      Scanner scanner = new Scanner(System.in);
      while (scanner.hasNextLine()) {
         counter++;
         String syslog = scanner.nextLine();
         FileWriter writer =
            new FileWriter(
               new File(
                  System.getProperty("user.home") + "/" +
                  SyslogProgramDestination.class.getSimpleName() + "_" +
                  counter + ".log"));
         try {
            writer.write(syslog + "\n");
         } catch (Exception e) {
            e.printStackTrace();
         } finally {
            writer.close();
         }
      }
   }
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.balabit.hu/pipermail/syslog-ng/attachments/20080827/880c079d/attachment.htm 


More information about the syslog-ng mailing list