crate / crate-qa

CrateDB Quality Assurance
4 stars 1 forks source link

Update to Npgsql 8.0.1 and .NET 8 #289

Closed amotl closed 10 months ago

amotl commented 11 months ago

About

Maintenance update to use the most recent version of the .NET data provider for PostgreSQL. It is version 8.0.0, which has been released last week.

amotl commented 11 months ago

Didn't exactly read their release notes, but actually expected that most recent Npgsql 8 will not support .NET 6 any longer.

error NU1202: Package Microsoft.EntityFrameworkCore 8.0.0 is not compatible with net6.0 (.NETCoreApp,Version=v6.0). Package Microsoft.EntityFrameworkCore 8.0.0 supports: net8.0 (.NETCoreApp,Version=v8.0)

-- https://jenkins.crate.io/blue/organizations/jenkins/CrateDB%2Fqa%2Fcrate_qa_on_pr/detail/crate_qa_on_pr/300/pipeline/44#step-175-log-70

amotl commented 11 months ago

After upgrading to .NET 8, we see a real error here on Npgsql 8.0.0. It says:

A PostgreSQL type with the name 'unknown' was not found in the current database info
Unhandled exception. System.ArgumentException: A PostgreSQL type with the name 'unknown' was not found in the current database info
   at Npgsql.Internal.NpgsqlDatabaseInfo.GetPostgresType(String pgName)
   at Npgsql.Internal.PgSerializerOptions..ctor(NpgsqlDatabaseInfo databaseInfo, Func`1 timeZoneProvider)
   at Npgsql.NpgsqlDataSource.Bootstrap(NpgsqlConnector connector, NpgsqlTimeout timeout, Boolean forceReload, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.<Get>g__RentAsync|34_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnection.Open()
   at stock_npgsql.Program.Main(String[] args) in /var/lib/jenkins/workspace/CrateDB/qa/crate_qa_on_pr@2/tests/client_tests/stock_npgsql/Program.cs:line 81
   at stock_npgsql.Program.<Main>(String[] args)
Failure running: /var/lib/jenkins/workspace/CrateDB/qa/crate_qa_on_pr@2/tests/client_tests/stock_npgsql/bin/Debug/net8.0/stock_npgsql 127.0.0.1 5432
script returned exit code 1

-- https://jenkins.crate.io/blue/organizations/jenkins/CrateDB%2Fqa%2Fcrate_qa_on_pr/detail/crate_qa_on_pr/307/pipeline/44#step-282-log-95

amotl commented 10 months ago

Thanks to a corresponding patch for CrateDB, the update to Npgsql 8.0.1 succeeds now. Thank you very much for quick fix, @mfussenegger.