Hi Flume Developers,
We are using flume 1.5.0 to upload files into flume, and encountered one
issue:
28 Jan 2015 15:19:52,803 ERROR [pool-5-thread-1]
(org.apache.flume.client.avro.ReliableSpoolingFileEventReader.openFile:504) -
Exception opening file: F:\GBFlumeClient\source\et11peed.128
(file:///F:/GBFlumeClient/source/et11peed.128)
java.io.IOException: Unable to delete existing meta file
F:\GBFlumeClient\source\.flumespool\.flumespool-main.meta
(file:///F:/GBFlumeClient/source/.flumespool/.flumespool-main.meta)
After searching, we find it matches with
https://issues.apache.org/jira/browse/FLUME-1993***A***) The Flume-1993.patch
for this url:if (!tracker.getTarget().equals(nextPath)) {
tracker.close(); deleteMetaFile();
+ tracker = DurablePositionTracker.getInstance(metaFile, nextPath)
}
- tracker = DurablePositionTracker.getInstance(metaFile, nextPath);The
statement "DurablePositionTracker.getInstance(metaFile, nextPath)" looka in
if{ } block , andit says it had been fixed in 1.4.0
***B***) In ReliableSpoolingFileEventReader.java for this same url: if
(!tracker.getTarget().equals(nextPath)) { tracker.close();
deleteMetaFile(); } else{ //Explicitly close the
tracker instance received so that //there is no sharing
violation on Windows. tracker.close(); } tracker =
DurablePositionTracker.getInstance(metaFile, nextPath);The statement is not in
if/else block
I am a bit new to flume, can any one help to answer which one is fix? We have
checked 1.4.0,15.0,1.5.2 codes, all codes say the statement in if {} block.
Regards,Gary Xu