Oracle function tests don't work on CI
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
The tests work fine on Windows and Linux but not on Helix CI. Verified on test Helix images too with the same error:
```
2024-08-17 15:44:40.787441 ThreadID:61 (ERROR) OracleDatabaseCreator.ExistsAsync() : OracleException.Number: 50201
[xUnit.net 00:07:12.82] Aspire.Hosting.Oracle.Tests.OracleFunctionalTests.WithDataShouldPersistStateBetweenUsages(useVolume: True) [FAIL]
[xUnit.net 00:07:12.82] Oracle.ManagedDataAccess.Client.OracleException : ORA-50201: Oracle Communication: Failed to connect to server or failed to parse connect string
[xUnit.net 00:07:12.82] ---- OracleInternal.Network.NetworkException : ORA-50201: Oracle Communication: Failed to connect to server or failed to parse connect string
[xUnit.net 00:07:12.82] -------- OracleInternal.Network.NetworkException : ORA-12514: Cannot connect to database. Service freepdb1 is not registered with the listener at host localhost/127.0.0.1 port 40341. (CONNECTION_ID=zGrcjnIzPESmQxsiJU3NdQ==)
[xUnit.net 00:07:12.82] https://docs.oracle.com/error-help/db/ora-12514/
[xUnit.net 00:07:12.82] Stack Trace:
[xUnit.net 00:07:12.82] at OracleInternal.ConnectionPool.PoolManager`3.GetAsync(ConnectionString csWithDiffOrNewPassw, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch, Boolean bAsync)
[xUnit.net 00:07:12.82] at OracleInternal.ConnectionPool.OraclePoolManager.GetAsync(ConnectionString csWithNewPassw, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch, Boolean bAsync)
[xUnit.net 00:07:12.82] at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.GetAsync(ConnectionString cs, PM conPM, ConnectionString pmCS, OracleOpaqueString securedPassw, OracleOpaqueString securedProxyPassw, OracleConnection connRefForCriteria, Boolean bAsync)
[xUnit.net 00:07:12.82] at Oracle.ManagedDataAccess.Client.OracleConnectionInternal.OpenInternalAsync(Boolean bAsync)
[xUnit.net 00:07:12.82] at Oracle.ManagedDataAccess.Client.OracleConnectionInternal.OpenAsyncHelper(CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] at Oracle.ManagedDataAccess.Client.OracleConnectionInternal.OpenAsyncHelper(CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] at Oracle.ManagedDataAccess.Client.OracleConnectionInternal.OpenAsync(CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)
[xUnit.net 00:07:12.82] at Oracle.EntityFrameworkCore.Storage.Internal.OracleDatabaseCreator.ExistsAsync(CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreatedAsync(CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreatedAsync(CancellationToken cancellationToken)
[xUnit.net 00:07:12.82] /_/tests/Aspire.Hosting.Oracle.Tests/OracleFunctionalTests.cs(144,0): at Aspire.Hosting.Oracle.Tests.OracleFunctionalTests.WithDataShouldPersistStateBetweenUsages(Boolean useVolume)
[xUnit.net 00:07:12.82] /_/tests/Aspire.Hosting.Oracle.Tests/OracleFunctionalTests.cs(160,0): at Aspire.Hosting.Oracle.Tests.OracleFunctionalTests.WithDataShouldPersistStateBetweenUsages(Boolean useVolume)
[xUnit.net 00:07:12.82] --- End of stack trace from previous location ---
[xUnit.net 00:07:12.82] ----- Inner Stack Trace -----
[xUnit.net 00:07:12.82] at OracleInternal.Network.OracleCommunication.DoConnect(String tnsDescriptor, Boolean bAsync)
[xUnit.net 00:07:12.82] at OracleInternal.Network.OracleCommunication.Connect(String tnsDescriptor, Boolean doNAHandshake, String IName, ConnectionOption CO, Boolean bAsync)
[xUnit.net 00:07:12.82] at OracleInternal.ServiceObjects.OracleConnectionImpl.Connect(ConnectionString cs, Boolean bOpenEndUserSession, OracleConnection connRefForCriteria, String instanceName, Boolean bAsync)
[xUnit.net 00:07:12.82] ----- Inner Stack Trace -----
[xUnit.net 00:07:12.82] at OracleInternal.Network.OracleCommunication.SendConnectPacketAndProcessResponse(AddressResolution addrRes, Boolean bAsync)
[xUnit.net 00:07:12.82] at OracleInternal.Network.OracleCommunication.ConnectViaCO(ConnectionOption connOption, AddressResolution addrRes, Boolean bAsync)
```
Tested without the DCP proxy too (app connecting directly to 1521 port on Docker).
Verified that the DCP proxy and the Oracle service were reachable using a TELNET connection.
Verified the password in the connection string matches the one passed in `ORACLE_PWD`.
Contributor guide
Assessment
This issue has not been assessed yet.