Skip to content

Oracle function tests don't work on CI #5362

@sebastienros

Description

@sebastienros

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-integrationsIssues pertaining to Aspire Integrations packagesoracleIssues related to oracle integrationstesting ☑️

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions