Skip to content

rethinkdb.net/deliver-result tries to conj to ex-info, which fails #199

@jwr

Description

@jwr

It would seem that I am the only user of clj-rethinkdb — if so, this issue is not really a bug report, but rather a request for comments.

I've spent some time today trying to debug why I wasn't able to process changefeed exceptions.

I had this in the logs:

Jul 09, 2020 3:28:23 PM clojure.tools.logging$eval138$fn__143 invoke                                                                                                                                    
SEVERE: #error {                                                                                                                                                                                        
 :cause RethinkDB server: Changefeed aborted (unavailable).            
 :data {:type :op-failed, :response {:t 18, :e 4100000, :r [Changefeed aborted (unavailable).], :b []}}
 :via                                                                                               
 [{:type clojure.lang.ExceptionInfo                                                                 
   :message RethinkDB server: Changefeed aborted (unavailable).            
   :data {:type :op-failed, :response {:t 18, :e 4100000, :r [Changefeed aborted (unavailable).], :b []}}                                                                                               
   :at [rethinkdb.net$make_rethink_exception invokeStatic net.clj 29]}]                                                                                                                                 
 :trace                                                                                                                                                                                                 
 [[rethinkdb.net$make_rethink_exception invokeStatic net.clj 29]                                                                                                                                        
  [rethinkdb.net$make_rethink_exception invoke net.clj 28]                                    
  [rethinkdb.net$handle_response invokeStatic net.clj 119]                                                                                                                                              
  [rethinkdb.net$handle_response invoke net.clj 93]                                         
  [rethinkdb.net$setup_consumer$fn__23980 invoke net.clj 135]                                                                                                                                           

closely followed by:

Jul 09, 2020 3:28:23 PM clojure.tools.logging$eval138$fn__143 invoke    
SEVERE: error in stream handler                                                                     
java.lang.ClassCastException: clojure.lang.ExceptionInfo cannot be cast to clojure.lang.IPersistentCollection                                                                                           
        at clojure.core$conj__5390.invokeStatic(core.clj:82)                                                                                                                                            
        at clojure.core$conj__5390.invoke(core.clj:82)                                                                                                                                                  
        at rethinkdb.net$deliver_result.invokeStatic(net.clj:79)                                                                                                                                        
        at rethinkdb.net$deliver_result.invoke(net.clj:75)                                    
        at rethinkdb.net$handle_response.invokeStatic(net.clj:118)                                                                                                                                      
        at rethinkdb.net$handle_response.invoke(net.clj:93)                     
        at rethinkdb.net$setup_consumer$fn__23980.invoke(net.clj:135)                     

I stared and the code on GitHub and line numbers didn't match, and the whole thing didn't make sense. Until I realized that the code I'm running is different from GH master. It seems that 0.15.26 was released way back in 2016, and all the changes since then have never been released, including a fix for the conj above.

Before I do anything else, I thought I'd ask — @apa512, are there reasons for not releasing anything after 0.15.26? Is the code considered risky or experimental?

As it is, 0.15.26 is unable to deliver any exception created in handle-response, because the conj in deliver-result will fail.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions