nus-oss-test / testrepo4

TEAMMATES system is online at
http://teammatesv4.appspot.com
0 stars 0 forks source link

handle cases where email API timeout #1764

Closed damithc closed 10 years ago

damithc commented 10 years ago

From dam...@gmail.com on March 19, 2014 07:29:23

Here's an example. May be we can make every email a Task in the TaskQueue?

Error Message: teammates.logic.automated.EmailAction sendEmails: Unexpected error com.google.apphosting.api.ApiProxy$ApiDeadlineExceededException: The API call mail.Send() took too long to respond and was cancelled. at com.google.apphosting.runtime.ApiProxyImpl.doSyncCall(ApiProxyImpl.java:240) at com.google.apphosting.runtime.ApiProxyImpl.access$000(ApiProxyImpl.java:64) at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:196) at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:193) at java.security.AccessController.doPrivileged(Native Method) at com.google.apphosting.runtime.ApiProxyImpl.makeSyncCall(ApiProxyImpl.java:193) at com.google.apphosting.runtime.ApiProxyImpl.makeSyncCall(ApiProxyImpl.java:64) at com.google.appengine.tools.appstats.Recorder.makeSyncCall(Recorder.java:329) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:107) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:56) at com.google.appengine.api.mail.MailServiceImpl.doSend(MailServiceImpl.java:101) at com.google.appengine.api.mail.MailServiceImpl.send(MailServiceImpl.java:34) at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:236) at javax.mail.Transport.send(Transport.java:95) at javax.mail.Transport.send(Transport.java:48) at teammates.logic.core.Emails.sendEmail(Emails.java:780) at teammates.logic.core.Emails.sendEmails(Emails.java:765) at teammates.logic.automated.EmailAction.sendEmails(EmailAction.java:59) at teammates.logic.automated.EmailWorkerServlet.doGet(EmailWorkerServlet.java:60) at teammates.logic.automated.EmailWorkerServlet.doPost(EmailWorkerServlet.java:23) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at teammates.storage.datastore.DatastoreFilter.doFilter(DatastoreFilter.java:28) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146) at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:188) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java:724)

Original issue: http://code.google.com/p/teammatespes/issues/detail?id=1730

damithc commented 10 years ago

From dam...@gmail.com on March 18, 2014 16:29:41

Owner: leeshaw...@gmail.com
Cc: -leeshaw...@gmail.com

damithc commented 10 years ago

From leeshaw...@gmail.com on March 22, 2014 05:49:41

Status: Started

damithc commented 10 years ago

From leeshaw...@gmail.com on March 23, 2014 09:21:00

Added a task queue for sending of individual emails.

Code ready for review at: https://codereview.appspot.com/77650044

Status: ReadyForReview

damithc commented 10 years ago

From dam...@gmail.com on March 23, 2014 16:38:07

Status: ReadyToMerge

damithc commented 10 years ago

From leeshaw...@gmail.com on March 24, 2014 03:18:13

This issue was updated by revision 490bfe87ee6b .

damithc commented 10 years ago

From leeshaw...@gmail.com on March 24, 2014 03:18:32

Status: Delivered

damithc commented 10 years ago

From dam...@gmail.com on March 29, 2014 03:03:27

Status: Deployed
Labels: Milestone-V4.94