System.NullReferenceException when using Oracle
See original GitHub issueDescribe the bug Hi guys, I am using oracle with devart provider and my string connection is:
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.21.25.186)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)));User Id=SAJDDL; Direct=True;
When I try to get data from database, elastic apm throws a exception:
System.NullReferenceException: Object reference not set to an instance of an object. at Elastic.Apm.Model.DbSpanCommon.GetDestination(String dbConnectionString, Boolean isEmbeddedDb, Nullable
1 defaultPort) at Elastic.Apm.Model.DbSpanCommon.EndSpan(Span span, IDbCommand dbCommand, Nullable
1 duration) at Elastic.Apm.EntityFrameworkCore.EfCoreDiagnosticListener.OnNext(KeyValuePair`2 kv) at System.Diagnostics.DiagnosticListener.Write(String name, Object value)
The problem happen in this method:
internal Destination GetDestination(
string dbConnectionString,
bool isEmbeddedDb,
int? defaultPort)
{
if (isEmbeddedDb || dbConnectionString == null)
return (Destination) null;
Destination destination = this._dbConnectionStringParser.ExtractDestination(dbConnectionString);
if (!destination.Port.HasValue) <----- HERE
destination.Port = defaultPort;
return destination;
}
Below I try explain why this happened:
Debuging:
In DbSpanCommon.cs:
internal Destination GetDestination
My string connection:
DbConnectionStringParser.cs:
When try to extract destination, I noticed that the value of “key/value” pair is null:
The key is found but destination is null, and when he try to access destination.Port.HasValue
:
The exception is thrown.
To Reproduce Steps to reproduce the behavior:
-
Configure oracle string connection like this: Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.21.25.186)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)));User Id=SAJDDL; Direct=True;
-
Try to retrieve value from database
Expected behavior
Find database destination and don´t throw NullPointReference exception
Thank you in advance, elastic apm is awesome!
Issue Analytics
- State:
- Created 3 years ago
- Comments:7 (4 by maintainers)
Top GitHub Comments
@fernandolamp Could you please double check if indeed 1.4.0 resolves your issue? While we did include a fix (#749) for another issue (#746) in DB connection string parser I am not sure that fix could have done anything to resolve your issue.
After update to version 1.4.0 the problem was solved