0. Error Type: ERROR
Error Message: teammates.storage.api.StudentsDb getStudentForRegistrationKey: Exception thrown trying to retrieve CourseStudent
java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "ag"
at teammates.common.util.StringHelper.decrypt(StringHelper.java:147)
at teammates.storage.api.StudentsDb.getStudentForRegistrationKey(StudentsDb.java:189)
at teammates.logic.core.StudentsLogic.getStudentForRegistrationKey(StudentsLogic.java:100)
at teammates.logic.api.Logic.getStudentForRegistrationKey(Logic.java:908)
at teammates.ui.controller.Action.authenticateNotLoggedInUser(Action.java:175)
at teammates.ui.controller.Action.authenticateAndGetActualUser(Action.java:119)
at teammates.ui.controller.Action.authenticateUser(Action.java:100)
at teammates.ui.controller.Action.init(Action.java:83)
at teammates.ui.controller.ActionFactory.getAction(ActionFactory.java:148)
at teammates.ui.controller.ControllerServlet.doPost(ControllerServlet.java:62)
at teammates.ui.controller.ControllerServlet.doGet(ControllerServlet.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
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:29)
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:37)
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:50)
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:260)
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:78)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:148)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:504)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:446)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:453)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:276)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:312)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:304)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:450)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NumberFormatException: For input string: "ag"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at teammates.common.util.StringHelper.hexStringToByteArray(StringHelper.java:326)
at teammates.common.util.StringHelper.decrypt(StringHelper.java:144)
... 46 more
Got a handful of these from the live server at V5.88
Getting more of these. @kanghj any idea?
Do we know what the full registration key look like? Is it something like the one mentioned in https://github.com/TEAMMATES/teammates/pull/6041#r77007568?
I don't think it's a new error though, just that this exception has always been silenced beforehand. We should get some clue about it is from what the registration key looks like (especially if "ag" is the starting 2 characters of the regkey, possibly indicating that this regkey was an old regkey sent out long ago before we started encrypting them).
I checked one case. yes, it stats with ag. It's something like ag1zfnRlYW1tYXRlc3Y0chQLEgdKdHVkZW50GICAgKbg5Z8KDA
So the good news is some of our very old users are still with us :-)
@damithc Is there any way to reproduce it in the dev server ?. I am interested in this.
@AnaghHegde @damithc This is related to https://github.com/TEAMMATES/teammates/issues/6562, which has been fixed in https://github.com/TEAMMATES/teammates/pull/6602
Thanks @Neurrone for the clarification.
@AnaghHegde @damithc This is related to #6562, which has been fixed in #6602
Most helpful comment
So the good news is some of our very old users are still with us :-)