Github user revans2 commented on a diff in the pull request:

    https://github.com/apache/storm/pull/2315#discussion_r138088942
  
    --- Diff: 
external/storm-hdfs/src/main/java/org/apache/storm/hdfs/bolt/AbstractHdfsBolt.java
 ---
    @@ -317,7 +319,18 @@ public WritersMap(long maxWriters) {
     
             @Override
             protected boolean removeEldestEntry(Map.Entry<String, Writer> 
eldest) {
    -            return this.size() > this.maxWriters;
    +            if (this.size() > this.maxWriters) {
    +                //The writer must be closed before removed from the map.
    +                //If it failed, we might lose some data.
    +                try {
    +                    eldest.getValue().close();
    +                } catch (IOException e) {
    +                    LOG.error("Failed to close the eldest Writer");
    --- End diff --
    
    Would it be possible to report the error here like we do in other places in 
the code?
    
    ```
    this.collector.reportError(e);
    ```
    
    It would also be create if you could add it to 
`doRotationAndRemoveAllWriters` too just so it is consistent everywhere.


---

Reply via email to