bosko
I am using Ecto Tds to connect to MS SQL server and till today everything worked fine. I am developing on OS X and deploying application on EC2 instance with Ubuntu 20.04. I build release in Docker with following Dockerfile
FROM ubuntu:20.04 as production-environment
ENV LANG=en_US.UTF-8
ENV DEBIAN_FRONTEND noninteractive
RUN \
apt-get update -y && \
apt-get install -y git curl wget locales gnupg2 build-essential && \
locale-gen en_US.UTF-8 && \
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && \
dpkg -i erlang-solutions_2.0_all.deb && \
rm erlang-solutions_2.0_all.deb && \
apt-get update -y && \
apt-get install -y esl-erlang elixir
CMD ["/bin/bash"]
FROM production-environment as build
# ===========
# Application
# ===========
# prepare build dir
WORKDIR /app
# set build ENV
ENV MIX_ENV=prod
ENV SECRET_KEY_BASE=fake
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LC_ALL en_US.UTF-8
# install hex + rebar
RUN mix local.hex --force && \
mix local.rebar --force
# install mix dependencies
COPY mix.exs mix.lock ./
RUN mix deps.get --only $MIX_ENV
RUN mkdir config
# copy compile-time config files before we compile dependencies
# to ensure any relevant config change will trigger the dependencies
# to be re-compiled.
COPY config/config.exs config/${MIX_ENV}.exs config/
RUN mix deps.compile
COPY priv priv
COPY lib lib
COPY assets assets
# build assets
run mix assets.deploy
# compile and build release
RUN mix compile
# Changes to config/runtime.exs don't require recompiling the code
COPY config/runtime.exs config/
COPY rel rel
RUN mix release
FROM scratch AS app
WORKDIR /app
COPY --from=build /app/_build/prod/*.tar.gz ./
CMD ["/bin/bash"]
Today suddenly after deploying new version application stopped working with following error:
[error] GenServer #PID<0.697.0> terminating
** (ArgumentError) errors were found at the given arguments:
* 1st argument: not a port
:erlang.port_info(#PID<0.711.0>, :connected)
(elixir 1.13.0) lib/port.ex:273: Port.info/2
(tds 2.3.0) lib/tds/tls.ex:86: Tds.Tls.assert_connected!/1
(tds 2.3.0) lib/tds/tls.ex:41: Tds.Tls.send/2
(tds 2.3.0) lib/tds/tls.ex:209: Tds.Tls.handle_info/2
(stdlib 4.0) gen_server.erl:1120: :gen_server.try_dispatch/4
(stdlib 4.0) gen_server.erl:1197: :gen_server.handle_msg/6
(stdlib 4.0) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {:tcp_closed, #Port<0.46>}
State: %Tds.Tls{buffer: nil, handshake?: true, owner_pid: #PID<0.711.0>, socket: #Port<0.46>, ssl_opts: [active: false, cb_info: {Tds.Tls, :tcp, :tcp_closed, :tcp_error}]}
After short investigation I found out that build in Docker used OTP 25 while on my local machine I was still using OTP 24 and installing Elixir 1.13.4-otp-25 resulted in the same error.
I was not able to find any issue related to this reported on Tds so I wonder if anyone have noticed similar problem or has an idea what could cause this error?
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app?
Looking for hints regarding:
Addi...
New
Kia ora,
We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
Hi all, I wanted to ask how the community is dealing with post-release steps.
Today we have Ecto migrations, which make sure that the db...
New
Hello,
I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #phoenix_html
- #iex
- #graphql
- #ai
- #genstage
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex










First 4 of 4 Posts
moogle19
Hi @bosko
I just pushed a small fix for your problem to the
masterbranch.Could you try it? Just switch your dep in
mix.exsto{:tds, github: "elixir-ecto/tds"}.If you have problems in the future, just open up an issue on the GitHub repo. It will be more visible there.
bosko
Hi @moogle19,
Thanks for the quick reply. I was not sure if it was Tds or OTP 25 problem so I didin’t want to unnecessary pollute issues.
I’ve just tried version from Git but, unfortunately, it still does not work but now error is different:
moogle19
Hmm, it seems the TCP connection gets closed before the SSL handshake succeeds.
Could you share your config? Have you set some custom
ssl_optsin your config?I have created an issue for further discussion (so we don’t spam the forum
): TLS connection error with OTP 25 · Issue #136 · elixir-ecto/tds · GitHub
gregvaughn
We had to abort an upgrade to OTP 25 because of failures negotiating a TLS connection with a Windows server. That might be the same root cause here. Looks like a fix has been merged for OTP now
https://github.com/erlang/otp/pull/6037