Skip to content

Uberjar failure with direct-linking=true #449

@tafenton

Description

@tafenton

Hi,

I get the following message while trying to compile a sente project using the aleph community adapter:

Execution error (ExceptionInfo) at taoensso.truss.impl/default-error-fn (impl.cljc:81).
Invariant failed at taoensso.sente|496: ((fn* [p1__11175#] (satisfies? interfaces/IServerChanAdapter p1__11175#)) #object[taoensso.sente.server_adapters.community.aleph.AlephAsyncNetworkChannelAdapter 0x7634fcb8 "taoensso.sente.server_adapters.community.aleph.AlephAsyncNetworkChannelAdapter@7634fcb8"])

This behaviour occurs consistently with:

  • aleph from 0.8.1 at least as far back as 0.6.0
  • sente from 1.19.2 at least as far back as 1.17.0
  • both Azul Zulu 22.0.2 and Eclipse Temurin 11.0.24
  • both the aleph and http-kit adapters (probably others)

However, the behaviour stops if I disable "-Dclojure.compiler.direct-linking=true" (set by default in the current lein new template) - and also if I move it into a non-aot namespace.

I've also cloned sente and played with direct-linking in the raw project; it appears the relevant have? statement is checked twice, passing the first time and failing the second. I've uploaded a (very) minimal reproduction here.

Unfortunately I don't know enough about direct linking to go any further, but hopefully this is a helpful pointer!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions