Google App Engine:closeFinally()上的FileServiceImpl.translateException

时间:2014-06-16 20:02:16

标签: google-app-engine google-cloud-storage

这可能与Google File Service closeFinally() timeout有关。

My Java GAE应用程序在SDK 1.8.2上运行,并且在FileWriteChannel上调用closeFinally()时遇到translateException。我将更新SDK并迁移到新的Cloud Storage API,但需要尽快为客户解决此异常,因此我想知道是否有人对此问题有一些了解以便快速解决问题。

以下是导致问题的代码的简化:

AppEngineFile writableFile = fileService.createNewGSFile(optionsBuilder.build());
String gcsWritePath = writableFile.getFullPath();
FileWriteChannel writeChannel = fileService.openWriteChannel(writableFile, true);

for(conditions) {
    Do stuff and write to gcsWritePath
    if(recordsWritten > threshold) {
        Kick off new task with a startAtparam to avoid OOM and timeouts
        break;
    }
}

if(all records written) {
    writeChannel.closeFinally(); // Exception happens here
}

和例外细节

java.io.IOException的     在com.google.appengine.api.files.FileServiceImpl.translateException(FileServiceImpl.java:621)     在com.google.appengine.api.files.FileServiceImpl.makeSyncCall(FileServiceImpl.java:594)     在com.google.appengine.api.files.FileServiceImpl.close(FileServiceImpl.java:565)     在com.google.appengine.api.files.FileServiceImpl.close(FileServiceImpl.java:457)     在com.google.appengine.api.files.FileWriteChannelImpl.closeFinally(FileWriteChannelImpl.java:97)

只有更长时间运行的任务(例如5分钟以上)才会出现异常,因此看起来这可能是超时。我试过调整门槛但没有太多运气。我还尝试查看FileServiceImpl.javaApiProxy.java的应用引擎sdk来源,但没有找到任何好的线索。

有没有人对可能导致这种情况的原因有任何想法?

0 个答案:

没有答案