Uploaded image for project: 'Metron'
  1. Metron
  2. METRON-1775

Transient exception could prevent expired profiles from being flushed

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Done
    • Priority: Minor
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 0.7.0
    • Labels:
      None

      Description

      In the Storm Profiler, the ProfileBuilderBolt uses a separate thread to flush expired profiles.  Expired profiles are those that have not received a message for an extended period of time.  That period of time is called the profile time-to-live (profiler.ttl).  This is done to avoid potential memory leaks.

      This separate thread is scheduled using java.util.concurrent.ScheduledExecutorService#scheduleAtFixedRate.  The documentation for scheduleAtFixedRate says that if an exception is thrown, subsequent executions will be suppressed.  We do not want this to happen.  If an exception occurs, we need to log it and continue, ensuring that expired profiles will continue to flush.

      I have no direct proof that this has caused a problem, but it certainly is a potential issue that should be addressed.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nickwallen Nick Allen
                Reporter:
                nickwallen Nick Allen
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: