2012-03-08 37 views
3

我的應用程序的所有版本都突然停止工作。谷歌的App Engine(Java)的應用程序停止工作(所有版本)

類似於Unable to load several versions of AppEngine Project and Seeing HardDeadLineExceeded Exceptions

從日誌:

Failed startup of context [email protected]7881db{/,/base/data/home/apps/[MY_APP]/946.357282374521459350} 
com.google.apphosting.api.DeadlineExceededException: This request (d505d1e88148a047) started at 2012/03/08 04:17:00.300 UTC and was still executing at 2012/03/08 04:18:00.917 UTC. 
    at java.util.zip.ZipFile.read(Native Method) 
    at java.util.zip.ZipFile.access$1200(ZipFile.java:57) 
    at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:476) 
    at java.util.zip.ZipFile$1.fill(ZipFile.java:259) 
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158) 
    at java.io.DataInputStream.readFully(DataInputStream.java:195) 
    at java.util.jar.JarFile.hasClassPathAttribute(JarFile.java:482) 
    at java.util.jar.JavaUtilJarAccessImpl.jarFileHasClassPathAttribute(JavaUtilJarAccessImpl.java:33) 
    at sun.misc.URLClassPath$JarLoader.getClassPath(URLClassPath.java:1176) 
    at sun.misc.URLClassPath.getLoader(URLClassPath.java:374) 
    at sun.misc.URLClassPath.findResource(URLClassPath.java:201) 
    at java.net.URLClassLoader$2.run(URLClassLoader.java:379) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findResource(URLClassLoader.java:376) 
    at com.google.apphosting.runtime.security.UserClassLoader.findResource(UserClassLoader.java:723) 
    at java.lang.ClassLoader.getResource(ClassLoader.java:977) 
    at org.mortbay.resource.Resource.newSystemResource(Resource.java:203) 
    at org.mortbay.jetty.webapp.WebXmlConfiguration.configureDefaults(WebXmlConfiguration.java:159) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1230) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) 
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) 
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:422) 
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) 
    at java.lang.Thread.run(Thread.java:679) 
C 2012-03-07 23:18:01.030 
Uncaught exception from servlet 
javax.servlet.UnavailableException: Initialization failed. 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:211) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) 
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) 
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:422) 
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) 
    at java.lang.Thread.run(Thread.java:679) 


Also, seen in browser: 


Uncaught exception from servlet 
javax.servlet.UnavailableException: Initialization failed. 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:211) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) 
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) 
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:422) 
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) 
    at java.lang.Thread.run(Thread.java:679) 

在日誌中的另一種錯誤:

2012-03-08 12:28:26.248 com.google.inject.internal .util。$ FinalizableReferenceQueue $ SystemLoader loadFinalizer:不允許訪問系統類加載器。 我2012-03-08 12:28:27.143 com.google.inject.internal.util $ FinalizableReferenceQueue:無法啓動參考終結器線程。只有在創建新引用時纔會出現引用清除。 java.lang.reflect.InvocationTargetException 在com.google.appengine.runtime.Request.process-58eed86e9936f59f(Request.java) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:43) at com.google.inject.internal .util。$ FinalizableReferenceQueue。(FinalizableReferenceQueue.java:124) at com.google.inject.internal.util。$ MapMaker $ QueueHolder。(MapMaker.java:787) at com.google.inject.internal.util。$ MapMaker $ WeakEntry。(MapMaker.java:946) at com.google .inject.internal.util。$ $地圖製作實力$ 1.newEntry(MapMaker.java:312) 在com.google.inject.internal.util。$ $地圖製作StrategyImpl.newEntry(MapMaker.java:498) 在COM。 google.inject.internal.util。$ MapMaker $ StrategyImpl.newEntry(MapMaker.java:419) at com.google.inject.internal.util。$ CustomConcurrentHashMap $ ComputingImpl.get(CustomConcurrentHashMap.java:2029) at com。 google.inject.internal.Annotations $ AnnotationChecker.hasAnnotations(Annotations.java:116) at com.google.inject.internal.Annotations.isBindingAnnotation(Annotations.java:180) at com.google.inject.internal.Annotations。 findBindingAnnotation在com.google.inject.i(Annotations.java:161) 在com.google.inject.internal.ProviderMethodsModule.getKey(ProviderMethodsModule.java:129) nternal.ProviderMethodsModule.createProviderMethod(ProviderMethodsModule.java:116) 在com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:83) 在com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java: 73) at com.google.inject.spi.Elements $ RecordingBinder.install(Elements.java:223) at com.google.inject.spi.Elements $ RecordingBinder.install(Elements.java:232) at com。 google.inject.spi.Elements.getElements(Elements.java:101) at com.google.inject.internal.InjectorShell $ Builder.build(InjectorShell.java:133) at com.google.inject.internal.InternalInjectorCreator。通過com.google.inject.Guice.createInjector(Guice.java:95)構建(InternalInjectorCreator.java:103) at com.google.inject.Guice.createInjector(Guice.java:72) at com.google.inject.Guice.createInjector(Guice.java:62) at [MYAPP] .server.guice.GuiceInjectorFactory $ GuiceBerry。 getInjector(GuiceInjectorFactory.java:20) 在[MYAPP] .server.guice.GuiceInjectorFactory.getInjector(GuiceInjectorFactory.java:29) 在com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:45) 在org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler中。java:548) at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at org.mortbay。 jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java: 50) at com.google.tracing.TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:449) at com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run(TraceContext.java:455) at com.google.tracing .TraceContext.runInContext(TraceContext.java:695) at com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInI nheritedContextNoUnref(TraceContext.java:333) 在com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 在com.google.tracing.TraceContext $ TraceContextRunnable.run(TraceContext.java:453) 在java.lang.Thread.run(Thread.java:679) 導致:java.security.AccessControlException:訪問被拒絕(java.lang.RuntimePermission modifyThreadGroup) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355) 在java.security.AccessController.checkPermission(AccessController.java:567) 在java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 在java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) 在java.lang.Thread.in它(Thread.java:353) 在java.lang.Thread中。(Thread.java:479) 在com.google.inject.internal.util。$終結。(Finalizer.java:92) 在com.google .inject.internal.util。$ Finalizer.startFinalizer(Finalizer.java:81) ... 42更多 C 2012-03-08 12:28:59.290 未被捕獲的servlet異常 com.google.apphosting.runtime。 HardDeadlineExceededError:此請求(58eed86e9936f59f)始於2012/03/08 17:27:56.854 UTC,並且仍在2012/03/08 17:28:59.245 UTC執行。 at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:231) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io .BufferedInputStream.read1(BufferedInputStream.java:275) at java.io.BufferedInputStream.read(BufferedInputStream.java:334) at com.google.inject.internal.asm。$ ClassReader.a(Unknown Source) at com .google.inject.internal.asm。$ ClassReader。(來源不明) 在com.google.inject.internal.util。$ LineNumbers(LineNumbers.java:62) 在com.google.inject.internal.util。 $ StackTraceElements $ 1.apply(StackTraceElements.java:36) at com.google.inject.internal.util。$ StackTraceElements $ 1.apply(StackTrack ceElements.java:33) 在com.google.inject.internal.util。$ $地圖製作StrategyImpl.compute(MapMaker.java:549) 在com.google.inject.internal.util。$ $地圖製作StrategyImpl.compute( MapMaker.java:419) at com.google.inject.internal.util。$ CustomConcurrentHashMap $ ComputingImpl.get(CustomConcurrentHashMap.java:2041) at com.google.inject.internal.util。$ StackTraceElements.forMember(StackTraceElements。 java:53) at com.google.inject.internal.Errors.formatSource(Errors.java:690) at com.google.inject.internal.Errors.format(Errors.java:555) at com.google。 inject.ProvisionException.getMessage(ProvisionException.java:59) 在java.lang.Throwable.getLocalizedMessage(Throwable.java:284) 在java.lang.Throwable.toString(投擲able.java:360) 在java.lang.String.valueOf(String.java:2838) 在java.lang.StringBuffer.append(StringBuffer.java:236) 在org.mortbay.component.AbstractLifeCycle.setFailed( AbstractLifeCycle。java:183) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:56) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662) at org.mortbay.jetty。 servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java: 517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at com.google.apphosting.runtime。 jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) at com.google.apphosting.runtime.jetty.AppVersionHandlerM ap.getHandler(AppVersionHandlerMap.java:171) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) at com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run(JavaRuntime。 java:422) at com.google.tracing.TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:449) at com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run(TraceContext.java:455) at com.google .tracing.TraceContext.runInContext(TraceContext.java:695) at com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) at com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java :325) at com.google.t racing.TraceContext $ TraceContextRunnable.run(TraceContext.java:453) at com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java: 679) I 2012-03-08 12:28:59.323 此請求導致您的應用程序啓動一個新進程,從而導致您的應用程序代碼第一次加載。因此這個請求可能需要更長的時間,並且比使用應用程序的典型請求使用更多的CPU W 2012-03-08 12:28:59.323 處理此請求的進程遇到問題,導致它退出。這很可能會導致下一個請求應用程序使用新的進程。如果您經常看到此消息,則可能在應用程序初始化期間拋出異常。 (錯誤代碼104)

+2

我也看到這個,突然開始發生。 – 2012-03-08 11:35:50

+0

請填寫一個bug報告谷歌 – cometta 2012-03-08 14:30:16

+1

似乎已經被報告。 (幾個月前)http://code.google.com/p/googleappengine/issues/detail?id=6246#c2 – 2012-03-08 16:57:12

回答

0

這可能是由於您的應用程序啓動時間太長而引起的。雖然您的應用程序仍在初始化自己,但它超出了每個請求的時間限制(30秒,但實際上顯然更像是60秒)。

我也看到過這些,我認爲這是你的應用程序加載昂貴並且在AppEngine方面出錯的組合;加載類似乎需要更長的時間。因此,要麼嘗試減少應用程序,要麼等待Go​​ogle解決根本問題。

來自com.google.inject.internal.util.$FinalizableReferenceQueue$SystemLoader loadFinalizer的日誌消息是紅色的鯡魚,在AppEngine上使用Guice時它們是正常的,不應該受到傷害。

相關問題