Uploaded image for project: 'Apache Storm'
  1. Apache Storm
  2. STORM-841

Thread-safeness of OutputCollector has documented contrary to two official doc.

    XMLWordPrintableJSON

    Details

    • Type: Documentation
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 0.10.0, 0.9.6
    • Fix Version/s: 0.10.0, 0.9.6, 0.10.1
    • Component/s: documentation
    • Labels:
      None

      Description

      There're some issues with documentation.

      http://storm.apache.org/documentation/Concepts.html says

      Its perfectly fine to launch new threads in bolts that do processing asynchronously. OutputCollector is thread-safe and can be called at any time.

      and http://storm.apache.org/documentation/Troubleshooting.html says

      This is caused by having multiple threads issue methods on the OutputCollector. All emits, acks, and fails must happen on the same thread. One subtle way this can happen is if you make a IBasicBolt that emits on a separate thread. IBasicBolt's automatically ack after execute is called, so this would cause multiple threads to use the OutputCollector leading to this exception. When using a basic bolt, all emits must happen in the same thread that runs execute.

      It is a contradiction, and at least for now OutputCollector is not thread-safe.
      https://www.mail-archive.com/dev@storm.incubator.apache.org/msg00939.html

      Since newbie of Storm users may think Concepts page as "should read and keep it mind", it is some kind of critical that that such important documentation page has wrong content.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                kabhwan Jungtaek Lim
                Reporter:
                kabhwan Jungtaek Lim
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: