Aktualnie debuguję pozornie losowy błąd w naszych aplikacjach. Postaram się przedstawić jak najwięcej szczegółów. Zasadniczo po pewnym czasie przestaje działać jedna z pul aplikacji dla aplikacji na naszym serwerze. Muszę go uruchomić, lub czasami zrestartować Coldfusion lub, co gorsza, maszynę, aby wszystko znów działało.KOD: Błąd w getRealPathFromConn
Logi serwera wskazują, że pula została zatrzymana z powodu zdarzenia o szybkiej awarii w IIS. (Aplikacja przesyła X liczby błędów w krótkim czasie, więc IIS zatrzymuje aplikację)
Przechodzenie przez logi błędów ColdFusion Dostaję ten w momencie wystąpienia błędu IIS, który zatrzymuje moją pulę.
ciężkie: Błąd w getRealPathFromConn java.net.SocketException: reset połączenia Peer: błąd zapisu gniazda w java.net.SocketOutputStream.socketWrite0 (metoda podstawowa) w java.net.SocketOutputStream.socketWrite (SocketOutputStream .java: 92) na java.net.SocketOutputStream.write (SocketOutputStream.java:124) w org.apache.coyote.ajp.AjpProcessor.getRealPathFromServer (AjpProcessor.java:391) ... i tak dalej
Jeśli naprawdę potrzebujesz pełnego śladu, mogę go dostarczyć, ale jest długi. Nie jestem pewien, o co chodzi w getRealPathFromConn. Próbowałem Googling, ale jeszcze nie doszedłem do wniosku. W śladach prowadzą do różnych plików w różnych aplikacjach, ale wydaje się, że omawiane linie nie mają ze sobą nic wspólnego.
Wszelkie przemyślenia na temat tego, co może być przyczyną lub gdzie powinienem szukać, pomogłyby mi.
EDYCJA: Zapomniałem powiedzieć, że "wierzę", że zaczęło się w poniedziałek. Jedyną rzeczą, która zmieniła się przed poniedziałkiem była następująca.
Mamy struktury aplikacji:
root/app1/application.cfc
root/app2/application.cfc
root/app3/application.cfc
root/app3/website1
root/app3/website2
root/app3/website3
zmieniłem strukturę więc dwie strony mają swoje własne application.cfc bo powoli rozwijają się zmiany, jak działają strony internetowe. Testuję to na dwóch z nich na teraz. Odkąd wprowadziłem tę zmianę, aplikacja, która powoduje awarię puli aplikacji dla aplikacji1. Nie ma żadnej z witryn, ale mam wrażenie, że może być powiązana.
UPDATE Zaktualizowano Coldfusion do najnowszej wersji. (10,0, 27, 28, 3649) Systemy działały przez około tydzień i dziś rano rozbiłem się.
Coldfusion-error.log w tym czasie:
Jan 25, 2013 8:09:11 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\\ColdFusion10\\cfusion\lib;C:\\ColdFusion10\\cfusion\jintegra\bin;C:\\ColdFusion10\\cfus ion\jintegra\bin\international;C:\\ColdFusion10\\cfusion\lib\oosdk\classes\win
Jan 25, 2013 8:09:12 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8012"]
Jan 25, 2013 8:09:12 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 25, 2013 8:09:12 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
Jan 25, 2013 8:09:21 AM org.apache.catalina.core.ApplicationContext log
INFO: ColdFusionStartUpServlet: ColdFusion: Starting application services
Jan 25, 2013 8:09:21 AM org.apache.catalina.core.ApplicationContext log
INFO: ColdFusionStartUpServlet: ColdFusion: VM version = 20.4-b02
Jan 25, 2013 8:09:29 AM org.apache.catalina.core.ApplicationContext log
INFO: CFMxmlServlet: Macromedia Flex Build: 87315.134646
Jan 25, 2013 8:09:35 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8012"]
Jan 25, 2013 8:09:35 AM com.adobe.coldfusion.launcher.Launcher run
INFO: Server startup in 25362 ms
Jan 25, 2013 8:10:04 AM org.apache.coyote.ajp.AjpProcessor getRealPathFromServer
SEVERE: Error in getRealPathFromConn
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:319)
at org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:445)
at org.apache.coyote.ajp.AjpProcessor.readString(AjpProcessor.java:425)
at org.apache.coyote.ajp.AjpProcessor.getRealPathFromServer(AjpProcessor.java:407)
at org.apache.coyote.ajp.AbstractAjpProcessor.getRealPath(AbstractAjpProcessor.java:1154)
at org.apache.naming.resources.FileDirContext.doGetRealPath(FileDirContext.java:198)
at org.apache.naming.resources.BaseDirContext.getRealPath(BaseDirContext.java:412)
at org.apache.catalina.core.StandardContext.getRealPath(StandardContext.java:4475)
at org.apache.catalina.core.ApplicationContext.getRealPath(ApplicationContext.java:414)
at org.apache.catalina.core.ApplicationContextFacade.getRealPath(ApplicationContextFacade.java:335)
at coldfusion.runtime.ServletContextWrapper.doGetRealPath(ServletContextWrapper.java:179)
at coldfusion.runtime.ServletContextWrapper._doGetRealPath(ServletContextWrapper.java:116)
at coldfusion.runtime.ServletContextWrapper.getRealPath(ServletContextWrapper.java:98)
at coldfusion.runtime.TemplateProxyFactory.getFullName(TemplateProxyFactory.java:1092)
at coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:202)
at coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:159)
at coldfusion.runtime.TemplateProxyFactory.resolveFile(TemplateProxyFactory.java:120)
at coldfusion.cfc.CFCProxy.<init>(CFCProxy.java:138)
at coldfusion.cfc.CFCProxy.<init>(CFCProxy.java:84)
at coldfusion.runtime.AppEventInvoker.<init>(AppEventInvoker.java:64)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:226)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:204)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
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)
Wyjątkiem GetRealPathFromConn przedostaje się około 20 razy i tak jeden po drugim. w przeglądarce zdarzeń mam oczywiście 5 Ostrzeżenia tuż przed IIS zamknąć basen:
A process serving application pool 'domain.com' terminated unexpectedly. The process id was '3732'. The process exit code was '0xff'.
A process serving application pool 'domain.com' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3052'. The data field contains the error number.
A process serving application pool 'domain.com' terminated unexpectedly. The process id was '7972'. The process exit code was '0xff'.
A process serving application pool 'domain.com' suffered a fatal communication error with the Windows Process Activation Service. The process id was '4736'. The data field contains the error number.
A process serving application pool 'domain.com' terminated unexpectedly. The process id was '8016'. The process exit code was '0xff'.
Application pool 'domain.com' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
Sprawdź to dyskusja na forach Adobe [proszę o pomoc - Losowa HTTP 503 Internal server error] (http: //forums.adobe .com/message/4659435). Czy to pasuje do twojego problemu? Wystąpił błąd [https://bugbase.adobe.com/index.cfm?event=bug&id=3222748] i poprawka zastosowana w aktualizacji 4 wydanej w listopadzie 2012 r. Jakiej wersji używasz? –
Używamy CF10, ale od jakiegoś czasu. Problem ten pojawił się ostatnio, więc "zakładając", że to nie był problem, o którym mówili, chociaż pliki dziennika są podobne. Przeczytałem ten wątek i spojrzałem na naszą instancję CF, a my jeszcze nie zastosowaliśmy żadnej aktualizacji do CF. Również błąd (https://bugbase.adobe.com/index.cfm?event=bug&id=3222748) wskazuje, że jest to spowodowane otrzymaniem POST z typem XML. Nie sądzę, że to się tutaj dzieje, ale będę potrzebował zaktualizować naszą instancję CF, i sprawdzić ponownie. – Leeish
To moja. Po aktualizacji faktycznie zrestartowałem serwer, po prostu coldfusion. Po ostatniej awarii musiałem zrestartować serwer. Jak na razie dobrze. To było 5 dni. Jeśli minie dwa tygodnie, będziecie zdumieni. – Leeish