Open SXRWahrheit opened 9 years ago
For some reason your particular instance isn't finding the Tinder classes when it boots up. Just curious are you using Windows and/or a machine with 2 cores?
Windows, i7 3960x
Yea for some reason a lot of the Windows users are running into classic Java errors. I'm trying to figure out if its bugs in compiling, a problem with the SBT version, or config. A potential root-cause fix could be to compile the app into a JAR and run it from there. Unfortunately, it's just been too long since I worked in Windows to have an immediate fix.
Personally for me, compilation was a bit of a nightmare, so a standalone version of this would be quite nice. Configs would probably be necessary for the messages and such (as mentioned in another thread), but I don't imagine that would be too hard. :)
This crops up as well:
[ERROR] [02/12/2015 19:57:22.802] [application-akka.actor.default-dispatcher-6]
[akka://application/user/UpdatesTask] Futures timed out after [40 seconds]
java.util.concurrent.TimeoutException: Futures timed out after [40 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223
)
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:107)
at akka.dispatch.MonitorableThreadFactory$AkkaForkJoinWorkerThread$$anon
$3.block(ThreadPoolBuilder.scala:169)
at scala.concurrent.forkjoin.ForkJoinPool.managedBlock(ForkJoinPool.java
:3640)
at akka.dispatch.MonitorableThreadFactory$AkkaForkJoinWorkerThread.block
On(ThreadPoolBuilder.scala:167)
at scala.concurrent.Await$.result(package.scala:107)
at services.UpdatesService$.services$UpdatesService$$syncUpdates(Updates
Service.scala:94)
at services.UpdatesService$UpdatesTask$$anonfun$receive$1$$anonfun$apply
OrElse$1.apply(UpdatesService.scala:49)
at services.UpdatesService$UpdatesTask$$anonfun$receive$1$$anonfun$apply
OrElse$1.apply(UpdatesService.scala:49)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at services.UpdatesService$UpdatesTask$$anonfun$receive$1.applyOrElse(Up
datesService.scala:49)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
at akka.actor.ActorCell.invoke(ActorCell.scala:456)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(Abst
ractDispatcher.scala:386)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool
.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:19
79)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThre
ad.java:107)
[debug] application - [mapdb] Database committer has persisted data to disk.
The futures timeout is actually a timeout on the Tinder API. That wouldn't be related to the app itself, but either rate limiting, Tinder API troubles, or a network error.
Seems to stall the bot irrecoverably though, should I be leaving it running or?
I've had that problem intermittently. What's happening is message retrieval is failing. I've noticed it happens when the inbox screen gets refreshed non-stop, since that actually forces a pull from the Tinder API. It could be rate limiting...do you have a lot of matches in your inbox?
In the past it took around 20min to return. Another option is to shut down and re-auth with a different session.
Not very many at all, no. I recently cleared all my matches.
So relaunching the bot is the accepted workaround atm then?
Yea forcing it to use a new session token might be the best way to proceed. That's assuming rate limiting is based on session key and not a user ID or IP address. I'd be interested to see if this fixes it for you.
Will update next time this happens.
It looks like a new session does the trick. Is there a way to automate this?
Unfortunately not. You have to manually fetch your session token each time you log in. It's a workaround for the OAuth security measures.
Similar error OSX 10.10.1
! @6l76ma3a6 - Internal server error, for (GET) [/t/7ae4809d-320f-44df-b054-4ea44210b3cb/messages/summaries] ->
play.api.Application$$anon$1: Execution exception[[TimeoutException: Futures timed out after [30 seconds]]]
at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10-2.2.2.jar:2.2.2]
at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10-2.2.2.jar:2.2.2]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:165) [play_2.10-2.2.2.jar:2.2.2]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:162) [play_2.10-2.2.2.jar:2.2.2]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) [scala-library-2.10.4.jar:na]
at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:185) [scala-library-2.10.4.jar:na]
Caused by: java.util.concurrent.TimeoutException: Futures timed out after [30 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219) [scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223) [scala-library-2.10.4.jar:na]
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:107) ~[scala-library-2.10.4.jar:na]
at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$2$$anon$5.block(ExecutionContextImpl.scala:48) ~[scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.managedBlock(ForkJoinPool.java:3640) [scala-library-2.10.4.jar:na]
at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$2.blockOn(ExecutionContextImpl.scala:45) ~[scala-library-2.10.4.jar:na]
Followed immediately by:
java.util.concurrent.TimeoutException: Futures timed out after [40 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:107)
at akka.dispatch.MonitorableThreadFactory$AkkaForkJoinWorkerThread$$anon$3.block(ThreadPoolBuilder.scala:169)
at scala.concurrent.forkjoin.ForkJoinPool.managedBlock(ForkJoinPool.java:3640)
at akka.dispatch.MonitorableThreadFactory$AkkaForkJoinWorkerThread.blockOn(ThreadPoolBuilder.scala:167)
at scala.concurrent.Await$.result(package.scala:107)
at services.UpdatesService$.services$UpdatesService$$syncUpdates(UpdatesService.scala:94)
at services.UpdatesService$UpdatesTask$$anonfun$receive$1$$anonfun$applyOrElse$1.apply(UpdatesService.scala:49)
at services.UpdatesService$UpdatesTask$$anonfun$receive$1$$anonfun$applyOrElse$1.apply(UpdatesService.scala:49)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at services.UpdatesService$UpdatesTask$$anonfun$receive$1.applyOrElse(UpdatesService.scala:49)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
at akka.actor.ActorCell.invoke(ActorCell.scala:456)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
@dylancaponi can you try the same suggestions I gave previously? Do they work?
This is Tinder-side and likely not caused by the app itself. Not much I can do here except offer workarounds. Thanks.
Thanks. Reauth seems to work initially. I have "a lot" of matches ~100.
@dylancaponi yea I've found that more than 100 matches tends to slow down requests to the history endpoint. Either severe rate limiting or a bug in history retrieval.
Upping the memory to 4GB in the sbt config seems to have done a lot of good - no crashes overnight.
This is new:
[debug] application - [tinderbot] Starting new message analysis task. com.fasterxml.jackson.databind.JsonMappingException: Invalid JSON. Needed [match es, blocks, deleted_lists, last_activity_date, lists], but found [status, error] . java.lang.Exception: Data was not wrapped in a results class. Could not parse. at utils.tinder.TinderApi$$anonfun$tinderPost$1.apply(TinderApi.scala:10 9) at utils.tinder.TinderApi$$anonfun$tinderPost$1.apply(TinderApi.scala:99 ) at scala.util.Success$$anonfun$map$1.apply(Try.scala:206) at scala.util.Try$.apply(Try.scala:161) at scala.util.Success.map(Try.scala:206) at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(Ba tchingExecutor.scala:67) at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(Batc hingExecutor.scala:82) at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExe cutor.scala:59) at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExe cutor.scala:59) at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72 ) at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58) at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(Abst ractDispatcher.scala:386) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool .java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:19 79) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThre ad.java:107)
New :
[error] application -
! @6l7ih6dd0 - Internal server error, for (GET) [/t/e1593de5-6a94-4bcd-ad72-e46e47dcaa51/facial/average/no] ->
play.api.Application$$anon$1: Execution exception[[FileNotFoundException: data/54e0a99989e250a2795cd1c0_mean_no_model.gif (Нет такого файла или каталога)]]
at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10-2.2.2.jar:2.2.2]
at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10-2.2.2.jar:2.2.2]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:165) [play_2.10-2.2.2.jar:2.2.2]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:162) [play_2.10-2.2.2.jar:2.2.2]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) [scala-library-2.10.4.jar:na]
at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:185) [scala-library-2.10.4.jar:na]
Caused by: java.io.FileNotFoundException: data/54e0a99989e250a2795cd1c0_mean_no_model.gif (Нет такого файла или каталога)
at java.io.FileInputStream.open(Native Method) ~[na:1.7.0_75]
at java.io.FileInputStream.
Not sure if this is Tinder's fault or the bot's, but it shows up every so often. My inbox is blank every so often as well, and this seems to correspond with the error showing up.
2015-02-10 22:18:16,850 - [ERROR] - from application in ForkJoinPool-4-worker-9
! @6l6cjjbn8 - Internal server error, for (GET) [/t/e3bc741e-a749-4cbc-8c10-59e8783ef9e5/messages/summaries] ->
play.api.Application$$anon$1: Execution exception[[ClassNotFoundException: utils.tinder.model.TinderError]] at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10-2.2.2.jar:2.2.2] at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10-2.2.2.jar:2.2.2] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:165) [play_2.10-2.2.2.jar:2.2.2] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:162) [play_2.10-2.2.2.jar:2.2.2] at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) [scala-library-2.10.4.jar:na] at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:185) [scala-library-2.10.4.jar:na] at scala.util.Try$.apply(Try.scala:161) [scala-library-2.10.4.jar:na] at scala.util.Failure.recover(Try.scala:185) [scala-library-2.10.4.jar:na] at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [scala-library-2.10.4.jar:na] at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [scala-library-2.10.4.jar:na] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [scala-library-2.10.4.jar:na] at play.api.libs.iteratee.Execution$$anon$1.execute(Execution.scala:43) [play-iteratees_2.10-2.2.2.jar:2.2.2] at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) [scala-library-2.10.4.jar:na] at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [scala-library-2.10.4.jar:na] at scala.concurrent.Promise$class.complete(Promise.scala:55) [scala-library-2.10.4.jar:na] at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [scala-library-2.10.4.jar:na] at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) [scala-library-2.10.4.jar:na] at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) [scala-library-2.10.4.jar:na] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [scala-library-2.10.4.jar:na] at scala.concurrent.impl.ExecutionContextImpl$$anon$3.exec(ExecutionContextImpl.scala:107) [scala-library-2.10.4.jar:na] at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [scala-library-2.10.4.jar:na] at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.pollAndExecAll(ForkJoinPool.java:1253) [scala-library-2.10.4.jar:na] at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1346) [scala-library-2.10.4.jar:na] at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.10.4.jar:na] at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.10.4.jar:na] Caused by: java.lang.ClassNotFoundException: utils.tinder.model.TinderError at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.8.0_25] at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.8.0_25] at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_25] at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_25] at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_25] at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_25] at com.codahale.jerkson.util.CaseClassSigParser$.loadClass(CaseClassSigParser.scala:153) ~[jerkson_2.10-0.6.3.jar:0.6.3] at com.codahale.jerkson.util.CaseClassSigParser$.findRootClass(CaseClassSigParser.scala:49) ~[jerkson_2.10-0.6.3.jar:0.6.3] at com.codahale.jerkson.util.CaseClassSigParser$.parseScalaSig(CaseClassSigParser.scala:42) ~[jerkson_2.10-0.6.3.jar:0.6.3] at com.codahale.jerkson.util.CaseClassSigParser$.findSym(CaseClassSigParser.scala:56) ~[jerkson_2.10-0.6.3.jar:0.6.3] at com.codahale.jerkson.util.CaseClassSigParser$.parse(CaseClassSigParser.scala:83) ~[jerkson_2.10-0.6.3.jar:0.6.3] at com.codahale.jerkson.deser.CaseClassDeserializer.(CaseClassDeserializer.scala:17) ~[jerkson_2.10-0.6.3.jar:0.6.3]
at com.codahale.jerkson.deser.ScalaDeserializers.findBeanDeserializer(ScalaDeserializers.scala:92) ~[jerkson_2.10-0.6.3.jar:0.6.3]
at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory._findCustomBeanDeserializer(BeanDeserializerFactory.java:104) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:130) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:399) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:348) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:261) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:241) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:394) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3169) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3033) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1681) ~[jackson-databind-2.4.4.jar:2.4.4]
at com.codahale.jerkson.Parser$class.parse(Parser.scala:93) ~[jerkson_2.10-0.6.3.jar:0.6.3]
at utils.tinder.TinderApi$$anon$1.parse(TinderApi.scala:22) ~[na:na]
at com.codahale.jerkson.Parser$class.parse(Parser.scala:15) ~[jerkson_2.10-0.6.3.jar:0.6.3]
at utils.tinder.TinderApi$$anon$1.parse(TinderApi.scala:22) ~[na:na]
at utils.tinder.TinderApi$$anonfun$tinderPost$1.apply(TinderApi.scala:115) ~[na:na]
at utils.tinder.TinderApi$$anonfun$tinderPost$1.apply(TinderApi.scala:99) ~[na:na]
at scala.util.Success$$anonfun$map$1.apply(Try.scala:206) ~[scala-library-2.10.4.jar:na]
at scala.util.Try$.apply(Try.scala:161) [scala-library-2.10.4.jar:na]
at scala.util.Success.map(Try.scala:206) ~[scala-library-2.10.4.jar:na]
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) [scala-library-2.10.4.jar:na]
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) [scala-library-2.10.4.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [scala-library-2.10.4.jar:na]
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67) ~[akka-actor_2.10-2.2.3.jar:2.2.3]
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82) ~[akka-actor_2.10-2.2.3.jar:2.2.3]
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) ~[akka-actor_2.10-2.2.3.jar:2.2.3]
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) ~[akka-actor_2.10-2.2.3.jar:2.2.3]
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) ~[scala-library-2.10.4.jar:na]
at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58) ~[akka-actor_2.10-2.2.3.jar:2.2.3]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42) ~[akka-actor_2.10-2.2.3.jar:2.2.3]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386) ~[akka-actor_2.10-2.2.3.jar:2.2.3]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [scala-library-2.10.4.jar:na]
... 2 common frames omitted