So, I upgraded to Java 11, and now everything works. So I guess this was a 
version conflict. 

Just curious, but is there a way for Factual to make durable-queue to tell 
Leiningen that Java 11 is necessary? 



On Wednesday, January 16, 2019 at 3:17:49 PM UTC-5, lawrence...@gmail.com 
wrote:
>
> On the new EC2 instance, running Ubuntu:
>
> java -version
> openjdk version "1.8.0_191"
> OpenJDK Runtime Environment (build 
> 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12)
> OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
>
> Is it possible this version does not have the checksum signature that 
> durable-queue is looking for? 
>
> I'm thinking this is some kind of version problem. 
>
>
>
>
>
>
> On Wednesday, January 16, 2019 at 2:50:14 PM UTC-5, lawrence...@gmail.com 
> wrote:
>>
>> Sorry, I'm an idiot. The real error was when I called put!
>>
>> I don't understand this error:
>>
>> INFO: java.lang.NoSuchMethodError: java.util.zip.Checksum.update([B)V 
>>   java.lang.NoSuchMethodError: java.util.zip.Checksum.update([B)V
>>  at durable_queue$checksum.invokeStatic (durable_queue.clj:64)
>>     durable_queue$checksum.invokePrim (durable_queue.clj:-1)
>>     durable_queue.TaskSlab.append_to_slab_BANG_ (durable_queue.clj:314)
>>     durable_queue$queues$reify__6549$slab_BANG___6570.invoke 
>> (durable_queue.clj:702)
>>     durable_queue$queues$reify__6549$fn__6575.invoke 
>> (durable_queue.clj:719)
>>     durable_queue$queues$reify__6549.put_BANG_ (durable_queue.clj:717)
>>     durable_queue$queues$reify__6549.put_BANG_ (durable_queue.clj:732)
>>     humongorous_nlp.core$cycle_to_database$fn__13673$fn__13693.invoke 
>> (core.clj:665)
>>     humongorous_nlp.core$cycle_to_database$fn__13673.invoke (core.clj:663)
>>     clojure.lang.AFn.run (AFn.java:22)
>>     java.util.concurrent.Executors$RunnableAdapter.call 
>> (Executors.java:511)
>>     java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308)
>>     
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301
>>  
>> (ScheduledThreadPoolExecutor.java:180)
>>     
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run 
>> (ScheduledThreadPoolExecutor.java:294)
>>     java.util.concurrent.ThreadPoolExecutor.runWorker 
>> (ThreadPoolExecutor.java:1149)
>>     java.util.concurrent.ThreadPoolExecutor$Worker.run 
>> (ThreadPoolExecutor.java:624)
>>     java.lang.Thread.run (Thread.java:748)
>>
>>
>>
>>
>> On Wednesday, January 16, 2019 at 1:47:21 PM UTC-5, lawrence...@gmail.com 
>> wrote:
>>>
>>> I was away from Clojure for a year and I missed it. I am pleased to be 
>>> back. But I've forgotten certain common errors. I feel like this is 
>>> something I used to know but now I've lost the knowledge. 
>>>
>>> I'm using Factual's durable-queue to put a step inbetween the import of 
>>> large JSON files, and their writes to the database. This works fine on my 
>>> local MacBook Pro, but when I move to an EC2 instance, I'm instead getting 
>>> time-outs when durable-queue tries to read from the queue. 
>>>
>>> At start up the app creates a few of these workers, which run for as 
>>> long as the app is running:
>>>
>>> (defn worker
>>>   [from-topics-to-persistence-queue current-database-connection]
>>>   (slingshot/try+
>>>    (loop [message (durable/take! from-topics-to-persistence-queue 
>>> :message 60000 :timed-out!)]
>>>      (slingshot/try+
>>>       (log-seq " the message in the work function " message)
>>>       (when (= (type message) durable_queue.Task)
>>>         (advance message current-database-connection))
>>>       (catch Object o
>>>         (log-seq "error in worker function")
>>>         (durable/retry! message)
>>>         (log-seq o)))
>>>      (recur (durable/take! from-topics-to-persistence-queue :message 
>>> 60000 :timed-out!)))   
>>>    (catch Object o
>>>      (error o)
>>>      (slingshot/throw+ {
>>>                         :type worker
>>>                         :error o
>>>                         :from-topics-to-persistence-queue 
>>> from-topics-to-persistence-queue
>>>                         :current-database-connection 
>>> current-database-connection
>>>                         }
>>>                        ))))
>>>
>>> On the EC2 instance, I see in the output: 
>>>
>>> Jan 16, 2019 6:43:23 PM humongorous-nlp.core invoke
>>> INFO:  the message in the work function  
>>>   
>>> Jan 16, 2019 6:43:23 PM humongorous-nlp.core invoke
>>> INFO: 
>>>
>>> Jan 16, 2019 6:43:23 PM humongorous-nlp.core invoke
>>> INFO: :timed-out! 
>>>   
>>> I'm using an environment var to set the path to the queue:
>>>
>>> PATH_TO_DURABLE_QUEUE_S3_TO_DATABASE=/tmp/s3_to_database_queue
>>>
>>> I feel like I ran into this problem 2 years ago, but I can't recall the 
>>> solution. Is the problem specific to AWS? 
>>>
>>> An important clue, I think, is that I'm not getting an error on the 
>>> put!, only on the take! Why would that be? 
>>>
>>>
>>> --- lawrence
>>>
>>>
>>>
>>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to