-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16261/
-----------------------------------------------------------

(Updated Dec. 14, 2013, 3:44 a.m.)


Review request for Aurora, Kevin Sweeney, Maxim Khutornenko, Bill Farner, and 
Zameer Manji.


Changes
-------

Added a comment and a unit test as requested.


Repository: aurora


Description
-------

Now treating empty log file as new log file in test.


Diffs (updated)
-----

  src/main/java/com/twitter/aurora/scheduler/log/testing/FileLog.java 
cb5cc874de161a0b992594c83469acfcd61e78ee 
  src/test/java/com/twitter/aurora/scheduler/log/testing/FileLogTest.java 
PRE-CREATION 

Diff: https://reviews.apache.org/r/16261/diff/


Testing
-------

Gradle clean build.

Tested with the isolated scheduler and an empty log file.
?  git:(master) ? ls -lh /tmp/testing_log_file                                  
                                                                        
~/workspace/incubator-aurora
-rw-r--r--  1 skarumuri  wheel     0B Dec 13 14:56 /tmp/testing_log_file

Ran it on master:

Running on an empty file would result in an exception as follows:

E1213 22:58:26.660 THREAD1 
org.apache.zookeeper.server.NIOServerCnxn$Factory$1.uncaughtException: Thread 
Thread[main,5,main] died
java.lang.IllegalStateException: Failed to open the log, cannot continue
        at 
com.twitter.aurora.scheduler.storage.log.LogStorage.prepare(LogStorage.java:289)
        at 
com.twitter.aurora.scheduler.storage.CallOrderEnforcingStorage.prepare(CallOrderEnforcingStorage.java:80)
        at 
com.twitter.aurora.scheduler.SchedulerLifecycle.prepare(SchedulerLifecycle.java:144)
        at 
com.twitter.aurora.scheduler.app.SchedulerMain.run(SchedulerMain.java:255)
        at com.twitter.common.application.AppLauncher.run(AppLauncher.java:102)
        at 
com.twitter.common.application.AppLauncher.launch(AppLauncher.java:181)
        at 
com.twitter.common.application.AppLauncher.launch(AppLauncher.java:142)
        at 
com.twitter.aurora.scheduler.app.SchedulerMain.main(SchedulerMain.java:276)
Caused by: java.io.IOException: Failed to interpret log contents: 
com.twitter.aurora.codec.ThriftBinaryCodec$CodingException: Failed to 
deserialize thrift object.
        at 
com.twitter.aurora.scheduler.log.testing.FileLog.open(FileLog.java:80)
        at 
com.twitter.aurora.scheduler.storage.log.LogManager.open(LogManager.java:123)
        at 
com.twitter.aurora.scheduler.storage.log.LogStorage.prepare(LogStorage.java:287)
        ... 7 more
Caused by: com.twitter.aurora.codec.ThriftBinaryCodec$CodingException: Failed 
to deserialize thrift object.
        at 
com.twitter.aurora.codec.ThriftBinaryCodec.decodeNonNull(ThriftBinaryCodec.java:86)
        at 
com.twitter.aurora.codec.ThriftBinaryCodec.decode(ThriftBinaryCodec.java:59)
        at 
com.twitter.aurora.scheduler.log.testing.FileLog.open(FileLog.java:67)
        ... 9 more
Caused by: org.apache.thrift.transport.TTransportException: Cannot read. Remote 
side has closed. Tried to read 1 bytes, but only got 0 bytes. (This is often 
indicative of an internal error on the server side. Please check your server 
logs.)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:362)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readByte(TBinaryProtocol.java:251)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readFieldBegin(TBinaryProtocol.java:215)
        at 
com.twitter.aurora.gen.test.FileLogContents$FileLogContentsStandardScheme.read(FileLogContents.java:349)
        at 
com.twitter.aurora.gen.test.FileLogContents$FileLogContentsStandardScheme.read(FileLogContents.java:342)
        at 
com.twitter.aurora.gen.test.FileLogContents.read(FileLogContents.java:292)
        at org.apache.thrift.TDeserializer.deserialize(TDeserializer.java:69)
        at 
com.twitter.aurora.codec.ThriftBinaryCodec.decodeNonNull(ThriftBinaryCodec.java:79)
        ... 11 more

I1213 22:58:27.001 THREAD11 org.apache.zookeeper.server.SessionTrackerImpl.run: 
SessionTrackerImpl exited loop!
UnresettableLogManager is ignoring a reset() request.
I1213 22:58:27.002 THREAD14 
com.twitter.common.application.ShutdownRegistry$ShutdownRegistryImpl.execute: 
Action controller has already completed, subsequent calls ignored.

After the fix: No exception.


Thanks,

Suman Karumuri

Reply via email to