Fork me on GitHub
#datomic
<
2022-04-04
>
Benjamin08:04:26

Jo I have an issue when pushing an ion with a git dep

org.sg.reply-bot/reply-bot {:git/url ":singularitygroup/reply-bot.git"
                                    :sha "6f8320909eef5ea05d0d21045a7cfa75c3dc6345"}
Cloning: :singularitygroup/reply-bot.git
{:command-failed
 "{:op :push, :creds-profile \"supportbot-test\", :region \"us-east-1\"}\n",
 :causes
 ({:message
   "Destination path \"reply-bot\" already exists and is not an empty directory",
   :class JGitInternalException})}
it tries to git clone I recognize the error. It correctly recognizes that the dep needs to be updated (I bumped the sha)

1
Alex Miller (Clojure team)13:04:14

This sometimes happens due to concurrency issues during parallel download. What version of Clojure CLI are you using?

Benjamin13:04:52

Clojure CLI version 1.10.3.1075

Benjamin13:04:03

I'll upgrade

Alex Miller (Clojure team)14:04:23

I don't think there's any relevant changes since that version

Alex Miller (Clojure team)14:04:59

if you push again, does it work?

Benjamin14:04:09

seems to be consistent - tried 3 times

Alex Miller (Clojure team)14:04:50

you might try cleaning all or some of ~/.gitlibs - you might have a dir there that is empty that's blocking a download. it's possible that was creating during an earlier version due to this issue too

Benjamin14:04:29

hehe looks promising but now I have this issue:

{:command-failed
 "{:op :push, :creds-profile \"supportbot-test\", :region \"us-east-1\"}\n",
 :causes
 ({:message "Invalid remote: origin", :class InvalidRemoteException}
  {:message
   "[email protected]:benjamin-asdf/org.sg.discord-lib.git: ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.\nPlease see  for more information.\n\n",
   :class NoRemoteRepositoryException})}
not sure if I need to fix my git / ssh config. I'll try to pull manually

Alex Miller (Clojure team)14:04:25

yeah, it shouldn't be doing anything different than what you get outside the CLI

Alex Miller (Clojure team)14:04:19

you can dump more info by setting export GITLIBS_DEBUG=true - that will dump every git command being run

Benjamin14:04:36

Cloning: [email protected]:benjamin-asdf/org.sg.discord-lib.git
org.eclipse.jgit.api.errors.InvalidRemoteException: Invalid remote: origin
	at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:244)
	at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:306)
	at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:200)
	at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:89)
	at clojure.tools.gitlibs.impl$call_with_auth.invokeStatic(impl.clj:49)
	at clojure.tools.gitlibs.impl$call_with_auth.invoke(impl.clj:41)
	at clojure.tools.gitlibs.impl$git_clone_bare.invokeStatic(impl.clj:71)
	at clojure.tools.gitlibs.impl$git_clone_bare.invoke(impl.clj:68)
	at clojure.tools.gitlibs.impl$ensure_git_dir.invokeStatic(impl.clj:110)
	at clojure.tools.gitlibs.impl$ensure_git_dir.invoke(impl.clj:100)
	at clojure.tools.gitlibs$resolve.invokeStatic(gitlibs.clj:33)
	at clojure.tools.gitlibs$resolve.invoke(gitlibs.clj:29)
	at clojure.tools.gitlibs$procure.invokeStatic(gitlibs.clj:47)
	at clojure.tools.gitlibs$procure.invoke(gitlibs.clj:41)
	at clojure.tools.deps.alpha.extensions.git$eval664$fn__666.invoke(git.clj:41)
	at clojure.lang.MultiFn.invoke(MultiFn.java:239)
	at clojure.tools.deps.alpha$expand_deps.invokeStatic(alpha.clj:182)
	at clojure.tools.deps.alpha$expand_deps.invoke(alpha.clj:165)
	at clojure.tools.deps.alpha$resolve_deps.invokeStatic(alpha.clj:232)
	at clojure.tools.deps.alpha$resolve_deps.invoke(alpha.clj:214)
	at clojure.tools.deps.alpha.script.make_classpath$create_classpath.invokeStatic(make_classpath.clj:63)
	at clojure.tools.deps.alpha.script.make_classpath$create_classpath.invoke(make_classpath.clj:55)
	at datomic.ion.dev.classpath$get_tools_deps_maps.invokeStatic(classpath.clj:77)
	at datomic.ion.dev.classpath$get_tools_deps_maps.invoke(classpath.clj:69)
	at datomic.ion.dev.bundle$create_plan.invokeStatic(bundle.clj:96)
	at datomic.ion.dev.bundle$create_plan.invoke(bundle.clj:89)
	at datomic.ion.dev.bundle$create.invokeStatic(bundle.clj:119)
	at datomic.ion.dev.bundle$create.invoke(bundle.clj:116)
	at datomic.ion.dev$push.invokeStatic(dev.clj:143)
	at datomic.ion.dev$push.invoke(dev.clj:137)
	at datomic.ion.dev$push_STAR_.invokeStatic(dev.clj:262)
	at datomic.ion.dev$push_STAR_.invoke(dev.clj:259)
	at datomic.ion.dev$_main.invokeStatic(dev.clj:278)
	at datomic.ion.dev$_main.doInvoke(dev.clj:271)
	at clojure.lang.RestFn.applyTo(RestFn.java:139)
	at clojure.lang.Var.applyTo(Var.java:705)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at clojure.main$main_opt.invokeStatic(main.clj:514)
	at clojure.main$main_opt.invoke(main.clj:510)
	at clojure.main$main.invokeStatic(main.clj:664)
	at clojure.main$main.doInvoke(main.clj:616)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.lang.Var.applyTo(Var.java:705)
	at clojure.main.main(main.java:40)
Caused by: org.eclipse.jgit.errors.NoRemoteRepositoryException: [email protected]:benjamin-asdf/org.sg.discord-lib.git: ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.
Please see  for more information.


	at org.eclipse.jgit.transport.TransportGitSsh.cleanNotFound(TransportGitSsh.java:218)
	at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:306)
	at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:170)
	at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:137)
	at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:123)
	at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1269)
	at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:237)
	... 43 more
{:command-failed
 "{:op :push, :creds-profile \"supportbot-test\", :region \"us-east-1\"}\n",
 :causes
 ({:message "Invalid remote: origin", :class InvalidRemoteException}
  {:message
   "[email protected]:benjamin-asdf/org.sg.discord-lib.git: ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.\nPlease see  for more information.\n\n",
   :class NoRemoteRepositoryException})}
Error while executing task: ion-push
for what it's worth. I'll try change to http because this is a public repo anyway

Alex Miller (Clojure team)14:04:02

hmm, this looks like you are now encountering an issue due to much older version of tools.deps used by ion dev tooling

Alex Miller (Clojure team)14:04:34

make sure you use https !

Alex Miller (Clojure team)14:04:50

http not supported by either tools.deps or github anymore

Benjamin14:04:19

I mean https yea

Benjamin14:04:48

so the github one works but I have a gitlab one

org.eclipse.jgit.api.errors.TransportException: :singularitygroup/reply-bot.git: UnknownHostKey: . RSA key fingerprint is 
😛

Benjamin14:04:11

I can clone that one manually

Benjamin14:04:38

ok this unkown host key issue is fixed with the ssh-keyscan command

Benjamin14:04:05

alright pushing works, thanks a lot

jaret14:04:37

Howdy all! We released a fix to the issue with pushing ions on Clojure 1.11 https://forum.datomic.com/t/ion-dev-1-0-304/2063

catjam 2
icemanmelting14:04:06

Guys, i am kinda new here, but I have been testing/using datomic recently, and I have noticed something, whenever I start the console, to get the ui to be able to query stuff in browser, the transactor just quits on me after some time. Has this ever happened to you? What am I doing wrong? Version I am using currently is 1.0.6344

Twan14:04:15

I’m getting connection errors from 1 (and only one) machine in a cluster of 3 machines without any (as far as we can tell) relevant firewall/connection differences with regard to how they’re setup. Does the error below ring a bell for anybody? 🧵

Twan14:04:21

user=> (first (datomic.api/q '[:find ?e :where [?e :entity/id _]] (datomic.api/db (datomic.api/connect "datomic:sql://<mydb>?jdbc:postgresql://<myhost>:5432/<mypsqldb>?user=<mypsqluser>&password=<mypsqlpass>&sslmode=require"))))
Execution error (NullPointerException) at datomic.kv-cluster/kv-cluster (kv_cluster.clj:355).
Cannot invoke "clojure.lang.IFn.invoke()" because the return value of "clojure.lang.IFn.invoke(Object)" is null

Twan14:04:33

On other machines, the result is just [entity-id]

Twan14:04:19

We granted 5432 and 5334 (our transactor port)

Twan14:04:34

Our assumption is that discovery fails, however, when entering the wrong postgres password on purpose, we get:

2022-04-04 14:49:02.215+0000 WARN  [nREPL-session-1e30a172-3410-4769-b4d8-2a90469391ce] [datomic.kv-sql-ext:54] - {:event :sql/validation-query-failed, :query "select 1", :pid 1, :tid 78}
                nrepl.middleware.interruptible-eval/evaluate/fn      interruptible_eval.clj:   91
                                              clojure.core/eval                    core.clj: 3202
                                                            ...
                                          user$eval77425.invoke              NO_SOURCE_FILE:    1
                                    user$eval77425.invokeStatic              NO_SOURCE_FILE:    1
                                            datomic.api/connect                     api.clj:   15
                                           datomic.Peer.connect                   Peer.java:  106
                                                            ...
                                       datomic.peer/connect-uri                    peer.clj:  748
                                    datomic.peer/get-connection                    peer.clj:  666
                                 datomic.peer/get-connection/fn                    peer.clj:  669
                                 datomic.connector/resolve-name               connector.clj:   71
                                                            ...
                         datomic.cache/lookup-cache/reify/valAt                   cache.clj:  280
                         datomic.cache/lookup-cache/reify/valAt                   cache.clj:  287
                                                            ...
                                   datomic.cache/fn/reify/valAt                   cache.clj:  342
               datomic.coordination/cluster-conf->resolved-conf            coordination.clj:  157
                     datomic.coordination/create-system-cluster            coordination.clj:   89
                                                            ...
                                    datomic.coordination-ext/fn        coordination_ext.clj:   82
                                             clojure.core/swap!                    core.clj: 2356
                                                            ...
                                 datomic.coordination-ext/fn/fn        coordination_ext.clj:   86
                                                            ...
                                datomic.require/require-and-run                 require.clj:   17
                                datomic.require/require-and-run                 require.clj:   22
                                             clojure.core/apply                    core.clj:  667
                                                            ...
                                      datomic.kv-sql-ext/kv-sql              kv_sql_ext.clj:   91
                          datomic.kv-sql-ext/cluster-conf->spec              kv_sql_ext.clj:   82
                                                            ...
                                        clojure.core/memoize/fn                    core.clj: 6342
                                             clojure.core/apply                    core.clj:  667
                                                            ...
                                          datomic.kv-sql-ext/fn              kv_sql_ext.clj:   76
                        datomic.kv-sql-ext/try-validation-query              kv_sql_ext.clj:   47
                                            datomic.sql/connect                     sql.clj:   16
      org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection        DataSourceProxy.java:  125
         org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool        DataSourceProxy.java:  101
        org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool        DataSourceProxy.java:  114
              org.apache.tomcat.jdbc.pool.ConnectionPool.<init>         ConnectionPool.java:  135
                org.apache.tomcat.jdbc.pool.ConnectionPool.init         ConnectionPool.java:  479
    org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection         ConnectionPool.java:  616
    org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection         ConnectionPool.java:  684
           org.apache.tomcat.jdbc.pool.PooledConnection.connect       PooledConnection.java:  175
org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver       PooledConnection.java:  266
                                  org.postgresql.Driver.connect                 Driver.java:  260
                           org.postgresql.Driver.makeConnection                 Driver.java:  458
                        org.postgresql.jdbc.PgConnection.<init>           PgConnection.java:  217
           org.postgresql.core.ConnectionFactory.openConnection      ConnectionFactory.java:   49
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl  ConnectionFactoryImpl.java:  197
        org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect  ConnectionFactoryImpl.java:  146
  org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication  ConnectionFactoryImpl.java:  525
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "<mypsqluser>"

Twan14:04:08

From the transactor’s POV, nothing is reported (no errors, no info)

Twan17:04:37

We ran both Datomic free and Datomic pro in this project. As a result, it would sometimes pick free and sometimes pro when resolving Datomic api queries, depending on loading order. On free they'd fail.