JuliaComputing / AMQPClient.jl

A Julia AMQP (Advanced Message Queuing Protocol) / RabbitMQ Client.
Other
39 stars 21 forks source link

Base.write_sub removed in Julia 1.7 #49

Closed nsslh closed 2 years ago

nsslh commented 2 years ago

Under certain network conditions that my ops team can produce under Kubernetes, but that I can't produce with local Docker, my AMQPClient-based server fails to start:

  2022-03-04T14:05:11.500 [×] Failed to connect: AMQPClient.AMQPClientException("Connection handshake failed")
  2022-03-04T14:05:11.500 [×] Retrying...
┌ Warning: ConnectionReceiver task exiting. Unhandled exception: UndefVarError(:write_sub)
│   exception =
│    UndefVarError: write_sub not defined
│    Stacktrace:
│     [1] getproperty
│       @ ./Base.jl:35 [inlined]
│     [2] fill_in(bio::AMQPClient.BufferedTLSSocket, atleast::Int64)
│       @ AMQPClient ~/.julia/packages/AMQPClient/Tjc8r/src/buffered_socket.jl:49
│     [3] read
│       @ ~/.julia/packages/AMQPClient/Tjc8r/src/buffered_socket.jl:24 [inlined]
│     [4] read(io::AMQPClient.BufferedTLSSocket, #unused#::Type{AMQPClient.TAMQPGenericFrame})
│       @ AMQPClient ~/.julia/packages/AMQPClient/Tjc8r/src/protocol.jl:101
│     [5] connection_receiver(c::AMQPClient.Connection)
│       @ AMQPClient ~/.julia/packages/AMQPClient/Tjc8r/src/protocol.jl:390
│     [6] connection_processor(c::AMQPClient.Connection, name::String, fn::typeof(AMQPClient.connection_receiver))
│       @ AMQPClient ~/.julia/packages/AMQPClient/Tjc8r/src/protocol.jl:325
│     [7] (::AMQPClient.var"#35#38"{AMQPClient.Connection})()
│       @ AMQPClient ./task.jl:423
└ @ AMQPClient ~/.julia/packages/AMQPClient/Tjc8r/src/protocol.jl:348

There is no Base.write_sub in Julia 1.7:

$ docker run --rm -it julia:1.6.5-alpine3.15 julia -e 'dump(Base.write_sub)'
write_sub (function of type typeof(Base.write_sub))
~$ docker run --rm -it julia:1.7.2-alpine3.15 julia -e 'dump(Base.write_sub)'
ERROR: UndefVarError: write_sub not defined

I'm a Julia newcomer so I'm not entirely sure how this should be fixed.

pfitzseb commented 2 years ago

Ref https://github.com/JuliaLang/julia/commit/e65e3f5b0d91c8c565189929fa41fc4134849911 for the base commit that removed that function.