Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.4.0
-
None
Description
I am using a script to generate files and then copy them one by one to the spooling directory. I got 'File has changed size' exception, but I am pretty sure the file wasn't changed.
23 Aug 2013 10:37:02,704 ERROR [pool-5-thread-1] (org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryRunnable.run:173) - Uncaught exception in Runnable java.lang.IllegalStateException: File has changed size since being read: /log/flume-ng/agent1/spooldir/spd1/log.00000029.20130822-121450171+0900.8729556570223344.seq at org.apache.flume.client.avro.ReliableSpoolingFileEventReader.retireCurrentFile(ReliableSpoolingFileEventReader.java:286) at org.apache.flume.client.avro.ReliableSpoolingFileEventReader.readEvents(ReliableSpoolingFileEventReader.java:226) at org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryRunnable.run(SpoolDirectorySource.java:160) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
My configuration:
agent1.sources = spd1 agent1.sources.spd1.type = spooldir agent1.sources.spd1.spoolDir = /log/flume-ng/agent1/spooldir/spd1 agent1.sources.spd1.deserializer.maxLineLength = 8192 agent1.sources.spd1.channels = file1 agent1.channels = file1 agent1.channels.file1.type = file agent1.channels.file1.checkpointDir = /log/flume-ng/agent1/checkpoint agent1.channels.file1.dataDirs = /log/flume-ng/agent1/data agent1.channels.file1.capacity = 2000000 agent1.channels.file1.transactionCapacity = 100 agent1.sinks = avro1 agent1.sinks.avro1.type = avro agent1.sinks.avro1.channel = file1 agent1.sinks.avro1.hostname = remote_host agent1.sinks.avro1.port = 33333