Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

intermitternt Object reference error while generating script using SqlAzureDacpacDeployment@1 task. #559

Open
amar-89-personal opened this issue Feb 6, 2025 · 0 comments
Labels
bug Something isn't working sqldw Issues related to SQL DW and/or Synapse

Comments

@amar-89-personal
Copy link

amar-89-personal commented Feb 6, 2025

  • SqlPackage or DacFx Version: 162.5.57.1
  • .NET Framework (Windows-only) or .NET Core: .NET Framework 4.6.2
  • Environment (local platform and source/target platforms): generating Script using SqlAzureDacpacDeployment@1 in azure devops pipeline with windows-latest as a build agent. Target platform is Dedicated SQL pool
  • Here is the yaml build task
- task: SqlAzureDacpacDeployment@1
     displayName: 'Generate differential script'
     inputs:
       azureSubscription: [REDACTED]
       ServerName: [REDACTED]
       DatabaseName: [REDACTED]
       SqlUsername: [REDACTED]
       SqlPassword: [REDACTED]
       DeploymentAction: Script
       DacpacFile: '$(Pipeline.Workspace)\sqldwdb.dacpac'
       additionalArguments: '/p:ExcludeObjectTypes=Users;Logins;RoleMembership;Permissions /p:DropObjectsNotInSource=false /p:CommandTimeout=3600 /p:IgnoreColumnOrder=True /p:IgnoreWhitespace=True /p:IgnoreSemicolonBetweenStatements=True /TargetTimeout:920 /d:True /dl:Information /df:$(build.SourcesDirectory)\GeneratedOutputFiles\logs.txt'

Steps to Reproduce:

  1. Facing this issue intermittently

Did this occur in prior versions? If not - which version(s) did it work in?

(DacFx/SqlPackage/SSMS/Azure Data Studio)

here is the relevant part of log

Microsoft.Data.Tools.Diagnostics.Tracer Error: 0 : 2025-02-06T09:10:14 : Failed to run populator: Sql120StatisticPopulator System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.SqlStatisticColumnPopulator.InsertElementIntoParent(ISqlModelElement element, SqlStatistic parent, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.ChildModelElementPopulator`2.CreateChildElement(TParent parent, EventArgs e, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.ChildModelElementPopulator`2.PopulateAllChildrenFromCache(IDictionary`2 cache, SqlReverseEngineerRequest request, OrdinalSqlDataReader reader, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.TopLevelElementPopulator`1.Populate(SqlReverseEngineerRequest request, OrdinalSqlDataReader reader, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineerImpl.ExecutePopulators(Tuple`2 connectionTuple, IList`1 populators, Int32 totalPopulatorsCount, Int32 startIndex, Boolean progressAlreadyUpdated, ReverseEngineerOption option, SqlReverseEngineerRequest request)
Microsoft.Data.Tools.Diagnostics.Tracer Information: 24 : 2025-02-06T09:10:22 : 
Telemetry event: DacFxOperationEnd, 
common properties: name: [DacFxVersion, 162.5.57.1], value: 0,name: [ApplicationName, sqlpackage], value: 1,name: [ApplicationVersion, 162.5.57.1], value: 2,name: [CurrentCulture, en-US], value: 3,name: [DefaultEncoding, Windows-1252], value: 4,name: [DacFxSource, ADO], value: 5,name: [OSVersion, Microsoft Windows NT 6.2.9200.0], value: 6,name: [ProcessArchitecture, X64], value: 7,name: [DotNetPlatform, .NET Framework 4.6.2], value: 8
properties: name: [Action, Script], value: 0,name: [Options, [{'name':'AllowDropBlockingAssemblies','value':'False'},{'name':'AllowExternalLanguagePaths','value':'False'},{'name':'AllowExternalLibraryPaths','value':'False'},{'name':'AllowIncompatiblePlatform','value':'False'},{'name':'BackupDatabaseBeforeChanges','value':'False'},{'name':'BlockOnPossibleDataLoss','value':'True'},{'name':'BlockWhenDriftDetected','value':'True'},{'name':'CommandTimeout','value':'3600'},{'name':'LongRunningCommandTimeout','value':'0'},{'name':'DatabaseLockTimeout','value':'60'},{'name':'CommentOutSetVarDeclarations','value':'False'},{'name':'CompareUsingTargetCollation','value':'False'},{'name':'CreateNewDatabase','value':'False'},{'name':'DeployDatabaseInSingleUserMode','value':'False'},{'name':'IsAlwaysEncryptedParameterizationEnabled','value':'False'},{'name':'DisableAndReenableDdlTriggers','value':'True'},{'name':'DoNotAlterChangeDataCaptureObjects','value':'True'},{'name':'DoNotAlterReplicatedObjects','value':'True'},{'name':'DropConstraintsNotInSource','value':'True'},{'name':'DropDmlTriggersNotInSource','value':'True'},{'name':'IgnoreDatabaseWorkloadGroups','value':'False'},{'name':'IgnoreWorkloadClassifiers','value':'False'},{'name':'DropExtendedPropertiesNotInSource','value':'True'},{'name':'AllowTableRecreation','value':'True'},{'name':'DropIndexesNotInSource','value':'True'},{'name':'DropObjectsNotInSource','value':'False'},{'name':'DropPermissionsNotInSource','value':'False'},{'name':'DropRoleMembersNotInSource','value':'False'},{'name':'DropStatisticsNotInSource','value':'True'},{'name':'DoNotDropDatabaseWorkloadGroups','value':'False'},{'name':'DoNotDropWorkloadClassifiers','value':'False'},{'name':'GenerateSmartDefaults','value':'False'},{'name':'HashObjectNamesInLogs','value':'False'},{'name':'IgnoreAnsiNulls','value':'True'},{'name':'IgnoreAuthorizer','value':'False'},{'name':'IgnoreColumnCollation','value':'False'},{'name':'IgnoreColumnOrder','value':'True'},{'name':'IgnoreComments','value':'False'},{'name':'IgnoreCryptographicProviderFilePath','value':'True'},{'name':'IgnoreDdlTriggerOrder','value':'False'},{'name':'IgnoreDdlTriggerState','value':'False'},{'name':'IgnoreDefaultSchema','value':'False'},{'name':'IgnoreDmlTriggerOrder','value':'False'},{'name':'IgnoreDmlTriggerState','value':'False'},{'name':'IgnoreExtendedProperties','value':'False'},{'name':'IgnoreFileAndLogFilePath','value':'True'},{'name':'IgnoreFilegroupPlacement','value':'True'},{'name':'IgnoreFileSize','value':'True'},{'name':'IgnoreFillFactor','value':'True'},{'name':'IgnoreFullTextCatalogFilePath','value':'True'},{'name':'IgnoreIdentitySeed','value':'False'},{'name':'IgnoreIncrement','value':'False'},{'name':'IgnoreIndexOptions','value':'False'},{'name':'IgnoreIndexPadding','value':'True'},{'name':'IgnoreKeywordCasing','value':'True'},{'name':'IgnoreLockHintsOnIndexes','value':'False'},{'name':'IgnoreLoginSids','value':'True'},{'name':'IgnoreNotForReplication','value':'False'},{'name':'IgnoreObjectPlacementOnPartitionScheme','value':'True'},{'name':'DoNotEvaluateSqlCmdVariables','value':'True'},{'name':'IgnorePartitionSchemes','value':'False'},{'name':'IgnoreTablePartitionOptions','value':'False'},{'name':'IgnorePermissions','value':'True'},{'name':'IgnoreQuotedIdentifiers','value':'True'},{'name':'IgnoreRoleMembership','value':'True'},{'name':'IgnoreRouteLifetime','value':'True'},{'name':'IgnoreSemicolonBetweenStatements','value':'True'},{'name':'IgnoreSensitivityClassifications','value':'False'},{'name':'IgnoreTableOptions','value':'False'},{'name':'IgnoreUserSettingsObjects','value':'False'},{'name':'IgnoreWhitespace','value':'True'},{'name':'IgnoreWithNocheckOnCheckConstraints','value':'False'},{'name':'IgnoreWithNocheckOnForeignKeys','value':'False'},{'name':'AllowUnsafeRowLevelSecurityDataMovement','value':'False'},{'name':'IncludeCompositeObjects','value':'False'},{'name':'IncludeTransactionalScripts','value':'False'},{'name':'NoAlterStatementsToChangeClrTypes','value':'False'},{'name':'PopulateFilesOnFileGroups','value':'True'},{'name':'PreserveIdentityLastValues','value':'False'},{'name':'PerformIndexOperationsOnline','value':'False'},{'name':'RegisterDataTierApplication','value':'False'},{'name':'RunDeploymentPlanExecutors','value':'False'},{'name':'ScriptDatabaseCollation','value':'False'},{'name':'ScriptDatabaseCompatibility','value':'False'},{'name':'ScriptDatabaseOptions','value':'True'},{'name':'ScriptDeployStateChecks','value':'False'},{'name':'ScriptFileSize','value':'False'},{'name':'ScriptNewConstraintValidation','value':'True'},{'name':'ScriptRefreshModule','value':'True'},{'name':'TreatVerificationErrorsAsWarnings','value':'False'},{'name':'RebuildIndexesOfflineForDataPhase','value':'False'},{'name':'RestoreSequenceCurrentValue','value':'True'},{'name':'DisableIndexesForDataPhase','value':'True'},{'name':'DisableParallelismForEnablingIndexes','value':'False'},{'name':'UnmodifiableObjectWarnings','value':'True'},{'name':'VerifyCollationCompatibility','value':'True'},{'name':'VerifyDeployment','value':'True'},]], value: 1,name: [ApplicationProperty, ADO], value: 2
measurements: name: [ReverseEngineerDurationMs, 42915], value: 0,name: [MemoryUsageMB, 213], value: 1,name: [DurationMs, 56612], value: 2
common measurements: 
Microsoft.Data.Tools.Diagnostics.Tracer Information: 18 : 2025-02-06T09:10:22 : Time elapsed: 0:00:57.85.
Microsoft.Data.Tools.Diagnostics.Tracer Error: 0 : 2025-02-06T09:10:22 : SqlPackage failed unexpectedly
 Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.SqlStatisticColumnPopulator.InsertElementIntoParent(ISqlModelElement element, SqlStatistic parent, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.ChildModelElementPopulator`2.CreateChildElement(TParent parent, EventArgs e, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.ChildModelElementPopulator`2.PopulateAllChildrenFromCache(IDictionary`2 cache, SqlReverseEngineerRequest request, OrdinalSqlDataReader reader, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.ReverseEngineerPopulators.TopLevelElementPopulator`1.Populate(SqlReverseEngineerRequest request, OrdinalSqlDataReader reader, ReverseEngineerOption option)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineerImpl.ExecutePopulators(Tuple`2 connectionTuple, IList`1 populators, Int32 totalPopulatorsCount, Int32 startIndex, Boolean progressAlreadyUpdated, ReverseEngineerOption option, SqlReverseEngineerRequest request)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineerImpl.ExecutePopulatorsInPass(SqlReverseEngineerConnectionContext context, ReverseEngineerOption option, SqlReverseEngineerRequest request, Int32 totalCount, Tuple`2[] populatorsArray)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineerImpl.PopulateBatch(SqlReverseEngineerConnectionContext context, SqlSchemaModel model, ReverseEngineerOption option, ErrorManager errorManager, SqlReverseEngineerRequest request, SqlImportScope importScope)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineer.PopulateAll(SqlReverseEngineerConnectionContext context, ReverseEngineerOption option, ErrorManager errorManager, Boolean filterManagementScopedElements, SqlImportScope importScope, Boolean optimizeForQuery, ModelStorageType modelType)
   at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.ImportDatabase(SqlReverseEngineerConstructor constructor, DeploymentEngineContext context, ErrorManager errorManager)
   at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.OnLoad(ErrorManager errors, DeploymentEngineContext context)
   at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.PrepareModels()
   at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.InitializePlanGeneratator()
   at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.CreateController(Action`1 msgHandler)
   at Microsoft.SqlServer.Dac.DacServices.CreateController(SqlDeployment deploymentEngine, ErrorManager errorManager)
   at Microsoft.SqlServer.Dac.DacServices.<>c__DisplayClass55_0.<CreateDeploymentArtifactGenerationOperation>b__0(Object operation, CancellationToken token)
   at Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)
   at Microsoft.SqlServer.Dac.ReportMessageOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)
   at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancellationToken)
   at Microsoft.SqlServer.Dac.DacServices.GenerateDeployScript(DacPackage package, String targetDatabaseName, DacDeployOptions options, Nullable`1 cancellationToken)
   at Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.<>c__DisplayClass13_2.<DoDeployAction>b__4(DacServices service)
   at Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.ExecuteDeployOperation(CommandLineArguments cmdlineArgs, String connectionString, String filePath, String modelFilePath, MessageWrapper messageWrapper, Boolean sourceIsPackage, Boolean targetIsPackage, Boolean authType, String tenantId, String customAuthArgs, String accessToken, String[] referencePaths, IStackLogSettingsContext logSettings, Func`1 generateScriptFromPackage, Func`2 generateScriptFromDatabase)
   at Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.DoDeployAction(DeployArguments deployArgs, Action`1 writeError, Action`2 writeMessage, Action`1 writeWarning, CancellationToken cancellationToken, CommandLineArguments cmdlineArgs, IStackLogSettingsContext logSettings)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.DoDeployActions(CommandLineArguments parsedArgs, IStackLogSettingsContext logSettings)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.PerformAction(CommandLineArguments parsedArgs, IStackLogSettingsContext logSettings)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.Run(String[] args, IStackLogSettingsContext logSettings)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.Main(String[] args)

The following error comes every time the script is generated, but I can see these errors if the script generation is successful. this error occurs right before the object reference error shared above.

Microsoft.Data.Tools.Diagnostics.Tracer Error: 19 : 2025-02-06T09:09:31 : Retry requested: Retry count = 1. Delay = 00:00:00, SQL Error Code = -2146232060, SQL Error Number = 104385, Can retry error = False, Will retry = False Microsoft.Data.SqlClient.SqlException (0x80131904): Catalog view 'configurations' is not supported in this version.
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData()
   at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.<>c__DisplayClass60_0`1.<ExecuteWithRetry>b__0(RetryState state)
   at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction[R](Func`2 func, Nullable`1 token)
ClientConnectionId:[REDACTED]
Error Number:104385,State:1,Class:16
ClientConnectionId before routing:[REDACTED]
Routing Destination:[REDACTED]
Microsoft.Data.Tools.Diagnostics.Tracer Error: 0 : 2025-02-06T09:09:31 : Microsoft.Data.SqlClient.SqlException (0x80131904): Catalog view 'configurations' is not supported in this version.
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData()
   at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.<>c__DisplayClass60_0`1.<ExecuteWithRetry>b__0(RetryState state)
   at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction[R](Func`2 func, Nullable`1 token)
   at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.ExecuteWithRetry[T](IDbCommand command, Func`1 func)
   at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.ExecuteReader(IDbConnection conn, String commandText, Action`1 readResult, Action`1 initializeCommand, Predicate`1 catchException)
   at Microsoft.Data.Tools.Schema.Sql.Deployment.TargetDatabaseConfiguration.ExecuteReader(SqlConnectionFactory connectionFactory, Boolean useMaster, String command, SqlEngineEdition sqlEngineEdition, Action`1 readResult, Action`1 initializeCommand)
ClientConnectionId:[REDACTED]
Error Number:104385,State:1,Class:16
ClientConnectionId before routing:[REDACTED]
Routing Destination:[REDACTED],11008
Microsoft.Data.Tools.Diagnostics.Tracer Error: 1 : 2025-02-06T09:09:32 : Could not connect to server to retrieve default data paths
Microsoft.Data.Tools.Diagnostics.Tracer Error: 1 : 2025-02-06T09:09:32 : Could not connect to server to retrieve default log paths
Microsoft.Data.Tools.Diagnostics.Tracer Information: 0 : 2025-02-06T09:09:37 : Searching for file master.dacpac using relative path D:\a\1
Microsoft.Data.Tools.Diagnostics.Tracer Information: 0 : 2025-02-06T09:09:37 : Searching for file master.dacpac in directory D:\a\1
Microsoft.Data.Tools.Diagnostics.Tracer Information: 0 : 2025-02-06T09:09:37 : Resolved file master.dacpac using path D:\a\1\master.dacpac

I think it is related to target db but not sure how to dig deeper. I have also tried directly using sqlpackage /a:Script using Bash@3 task but getting the same error.

@amar-89-personal amar-89-personal added the bug Something isn't working label Feb 6, 2025
@dzsquared dzsquared added the sqldw Issues related to SQL DW and/or Synapse label Feb 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working sqldw Issues related to SQL DW and/or Synapse
Projects
None yet
Development

No branches or pull requests

2 participants