Open andyundso opened 1 year ago
Ahh, good point about OpenSSL v3, I hadn’t even thought of it.
I don’t know that I personally know a lot either way. I can say anecdotally that I’ve used OpenSSL v3 in a few things, and while it’s great in most cases, occasionally it has its own bugs. But, that may not ever affect FreeTDS implementation.
But also that I researched this, most of projects that ran into this issue with FreeTDS simply handled it by switching on gnutls. None mentioned trying OpenSSL 3. Unfortunately I’m not a FreeTDS expert myself.
It may be helpful to ask this in the FreeTDS repo.
I think https://github.com/FreeTDS/freetds/pull/474 could fix the issue - the stack trace posted in the PR mentiones OpenSSL v3. would require us to bump FreeTDS to at least v1.3.16.
I dived into the reported issues with Ruby 3.1 that @bryanwieg describes at #523 and I'm mostly sure it is because of OpenSSL v3 and not Ruby 3.1.
First, I replicated the commands from the CI on my machine with Docker, but using Ruby 3.1.
First, I compiled OpenSSL as on the CI.
Then installed FreeTDS, which seems to link against OpenSSL v3 instead of 1.1.1:
Confirmation of the version:
Continuing building and running the tests then ends up in the situation described in the PR that all tests fail.
However, if I first compile the ports that
tiny_tds
specifies and then run the tests, all works fine.The tests using toxiproxy on my Mac fail as Docker on Mac does not support
network_mode: host
, but everything else looks good.I also looked a bit through the issues over at
freetds
and it seems that most people where their distribution ships OpenSSL v3 now switch to GnuTLS.I'm wondering what should be the approach that
tiny_tds
recommends? Compile and install OpenSSL v1? Generally switch to GnuTLS?