This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-09-07
Channels
- # 100-days-of-code (1)
- # announcements (10)
- # aws (2)
- # beginners (134)
- # calva (25)
- # cider (29)
- # cljs-dev (43)
- # clojure (130)
- # clojure-dusseldorf (3)
- # clojure-italy (27)
- # clojure-nl (48)
- # clojure-spec (32)
- # clojure-uk (63)
- # clojurescript (75)
- # core-logic (5)
- # cursive (18)
- # datascript (2)
- # datomic (37)
- # emacs (5)
- # figwheel (13)
- # figwheel-main (55)
- # graphql (1)
- # java (7)
- # jobs (11)
- # jobs-discuss (19)
- # juxt (1)
- # leiningen (16)
- # luminus (10)
- # mount (3)
- # off-topic (40)
- # om (1)
- # onyx (1)
- # pedestal (7)
- # re-frame (40)
- # reagent (81)
- # ring (2)
- # shadow-cljs (32)
- # spacemacs (5)
- # testing (1)
- # tools-deps (48)
i.e. if your app is deployed remotely, the :ion
:server-type
would connect as a client, and if your app is deployed as an ion, it would use the in-memory client.
@kenny that understanding is correct. The only reason :ion
is even a separate thing is the (very) unusual case where you might have one Datomic app be a client to others
@U4YGF4NGM connect roundtrips with a server when remote, but that isn't right or wrong without context
I think I asked the wrong question. I’m trying to work around an issue I’m having where if my REPL loads a ns at startup that calls datomic.client.api/client
, the REPL hangs
I copied the get-client
and ensure-dataset
functions from the starter repo and was running those in a top-level (def client (get-client))
, but I’m moving them into the functions that need them now to avoid hanging my REPL
also I can see it connect successfully in my socks proxy terminal, though it also doesn’t error out if it can’t connect
I have a development k8s cluster deployed in an existing VPC. Because VPC endpoints are only supported in a production tolopology, is my only option for running tests on my k8s cluster that use Datomic to have a production topology system deployed? Seems like an expensive way to run tests when I don't have any HA requirements for tests.
@kenny can you test through the socks proxy & bastion to a solo node?
Some of our tests work that way.
some of our test suites launch the socks proxy from the CLI
That is a blocking script - you'd have to run it in the background somehow. You'd also want to ensure that the socks proxy script connects prior to your tests running.
Barring a local option, which could be run as a test jig or containerized, VPC peering to the solo topology would be very helpful.
@kenny both points true, we have craptaculous CLI automation for that stuff
@U072WS7PE Those tools are expensive to develop, especially on a small team. We need to focus on product development, not tools to work with our database. If a database requires a craptaculous amount of CLI automation to use it in common use cases, it should provide that automation to its users.
We’ve discovered that any call to a user function in a not-join will cause something to be recompiled every time we invoke the query. We know because criterium doesn’t converge. Is this expected?
@kenny: I think the proxy-port should only be there if you connect through the socks proxy. we don't have that parameter in our solo deployments either, only for local dev
I have :proxy-port
set in my config and I'm getting Connection refused, not the SOCKS4 tunnel failed message.
Deploying an ion is failing at the ValidateService step. The Log Trail in CodeDeploy has a bunch of [stdout]Received 503
.
Turns out my datomic config was not correct causing the those misleading alerts. It'd be much more obvious if the regular anomaly was thrown saying it cannot connect.
If my Ion returns a 500 and there are no Exceptions in the log, where else should I look?
If I run my Ion via the API Gateway, I receive this in the logs:
Fri Sep 07 23:08:30 UTC 2018 : Endpoint response body before transformations: {"headers":{"Content-Type":"application\/transit+json","Set-Cookie":["ring-session=a8d0bf20-fe5b-4a3a-9d4d-9299003ce1dd;Path=\/;HttpOnly"]},"statusCode":200,"body":"WyJeICJd","isBase64Encoded":true}
Fri Sep 07 23:08:30 UTC 2018 : Endpoint response headers: {Date=Fri, 07 Sep 2018 23:08:30 GMT, Content-Type=application/json, Content-Length=198, Connection=keep-alive, x-amzn-RequestId=ef88cd93-b2f2-11e8-8a46-7fe9b475b814, x-amzn-Remapped-Content-Length=0, X-Amz-Executed-Version=$LATEST, X-Amzn-Trace-Id=root=1-5b9304ee-cb4b86778c5717156acdceed;sampled=0}
Fri Sep 07 23:08:30 UTC 2018 : Execution failed due to configuration error: Malformed Lambda proxy response
Fri Sep 07 23:08:30 UTC 2018 : Method completed with status: 502
That must be it. The web docs say :headers
is a map string->string https://docs.datomic.com/cloud/ions/ions-reference.html#web-code which does not adhere to the Ring Spec for responses https://github.com/ring-clojure/ring/blob/master/SPEC#L117-L122 😞
Looks like others have ran into this too: https://github.com/ring-clojure/ring/issues/338