Uploaded image for project: 'Commons Daemon'
  1. Commons Daemon
  2. DAEMON-186

jsvc consumes 100% CPU when redirecting errfile (and not outfile) to syslog

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.0.1, 1.0.2, 1.0.4, 1.0.5
    • 1.0.6
    • Jsvc
    • None
    • Ubuntu

    Description

      When you run jsvc redirecting -errfile to syslog but not -outfile to syslog the jsvc process in charge of the redirection to syslog daemon consumes 100% CPU.
      The problem dissapears when redirecting both (-errfile and -outfile) to syslog.
      The problem appears when only one is redirected to syslog and the other parameter is not specified or redirected to a file.

      The problem in the process appears to be the following:

      • jsvc tries to open 2 file descriptors, one for the standard output and one for the error output, and listen to both file descriptors
      • when it receives a message from one of both descriptors it sends the message to syslog daemon.
      • In the case that only -errfile is specified (and not -outfile), when jsvc tries to open the stardard output file descriptor it fails and the file descriptor points to "0" (default value, /dev/null).
      • The jsvc listen to both descriptors, the error output (that was correctly opened) and the 0 file descriptor, and jsvc is receiving data continously from this "broken" file descriptor. So it enters in a loop that consumes 100% of CPU.

      Attachments

        Issue Links

          Activity

            People

              mturk@apache.org Mladen Turk
              ana.solano.ros Ana Solano Ros
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: