cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Inventories going under bad log invalid format

Hello Folks,

Looking at hte attached logs , please let us know how to get on the root cause 'why inventories are going under bad log invalid format' -

[ERROR 2024-07-25 21:08:25,244 101252168ms rter.InventoryImporter] Exception processing inventory 'alexandrealves on sazqfqvq05d at 20240725T150136 (Full).ndi.gz'
System.Xml.XmlException: Root element is missing.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at ManageSoft.Inventory.Importer.InventoryImporter.Import(String importType, Stream inputStream, Boolean isGzipped, String sourceIdentifier, String targetFilename, MGSLicenseTermCheckResult licenseCheckResult, ImportProcessingStats& stats, IDispatcherPreferences preferences)
[INFO 2024-07-25 21:10:04,334 199ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t vdiAccess
[INFO 2024-07-25 21:10:04,376 198ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t usagedata
[INFO 2024-07-25 21:10:04,569 199ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t ActionStatus
[INFO 2024-07-25 21:10:04,957 202ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t ClientAccess
[INFO 2024-07-25 21:10:04,952 202ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t securityevent
[INFO 2024-07-25 21:10:04,982 206ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t activedirectory
[INFO 2024-07-25 21:10:05,003 217ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t logs
[INFO 2024-07-25 21:10:05,134 252ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t systemstatus
[INFO 2024-07-25 21:10:05,261 288ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t discovery
[INFO 2024-07-25 21:10:05,840 212ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t beaconstatus
[INFO 2024-07-25 21:10:05,891 192ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t inventories
[INFO 2024-07-25 21:10:06,047 172ms geSoft.Import.Importer] Starting mgsimport with parameters: -o CREATE_NO_WINDOW=True -- -t activitystatus
[INFO 2024-07-25 21:10:09,525 3826ms LicenseReader ] Enter ReadLicense
[INFO 2024-07-25 21:10:10,405 4706ms LicenseReader ] Enter ProcessLicenseFile FNE LicenseBuilder
[INFO 2024-07-25 21:10:10,430 4731ms LicenseReader ] Exit ProcessLicenseFile FNE LicenseBuilder
[INFO 2024-07-25 21:10:10,451 4752ms LicenseReader ] Exit ReadLicense
[ERROR 2024-07-25 21:10:22,106 101369030ms Soft.Import.Dispatcher] Failed to run importer
System.Data.SqlClient.SqlException (0x80131904): The INSERT statement conflicted with the FOREIGN KEY constraint "FK_SoftwareUsagePerWeek_Computer". The conflict occurred in database "IM", table "dbo.Computer_MT", column 'ComputerID'.
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_ComputerUsage_Computer". The conflict occurred in database "IM", table "dbo.Computer_MT", column 'ComputerID'.
The statement has been terminated.
The statement has been terminated.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
at System.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 System.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 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at ManageSoft.Database.DatabaseCommand.ExecuteNonQuery()
at ManageSoft.Database.Impl.DatabaseLayerBaseSql.Execute(CommandType p_CommandType, String p_CommandText, DatabaseParameter[] p_Parameters)
at ManageSoft.Usage.Importer.Machine.ProcessUsages()
at ManageSoft.Usage.Importer.UsageImporter.Import(String importType, Stream inputStream, Boolean isGzipped, String sourceIdentifier, String targetFilename, MGSLicenseTermCheckResult licenseTermCheckResult, ImportProcessingStats& stats, IDispatcherPreferences preferences)
at ManageSoft.Import.Dispatcher.runImporter_ActualExecution_invokeImporter(ItemProcessingTask processingTask)
ClientConnectionId:fbd34639-35c3-4b7e-8e6a-123f96470ea8
Error Number:547,State:0,Class:16

Thanks,

Awadh

(1) Solution
ChrisG
By Community Manager Community Manager
Community Manager

These types of errors related to inventory NDI files are normally transient in nature, and so are rarely a material concern as even if one NDI uploaded from a computer has a problem then the next NDI with fresh data will be uploaded soon enough. However if you see inventory NDI files from a particular individual computer consistently (always) ending up in BadLogs and never successfully being processed then there may be something more going on that is not transient.

Some examples of reasons for the transient type issues shown in your log file are:

  • "Root element is missing" and other errors related to content being truncated: This can happen if file content is not uploaded completely for some reason. For example, if a client computer disconnects from a network in the middle of an upload.
  • "INSERT statement conflicted [...]" type errors: I think there may be some problems if multiple files (such as inventory NDI and usage MMI files) are received and processed from a single computer simultaneously, especially if the computer has not previously uploaded data. This shouldn't happen (it is probably a bug), but does happen randomly from time to time when there are enough devices being managed.
(Did my reply solve the question? Click "ACCEPT AS SOLUTION" to help others find answers faster. Liked something? Click "KUDO". Anything expressed here is my own view and not necessarily that of my employer, Flexera.)

View solution in original post

(1) Reply
ChrisG
By Community Manager Community Manager
Community Manager

These types of errors related to inventory NDI files are normally transient in nature, and so are rarely a material concern as even if one NDI uploaded from a computer has a problem then the next NDI with fresh data will be uploaded soon enough. However if you see inventory NDI files from a particular individual computer consistently (always) ending up in BadLogs and never successfully being processed then there may be something more going on that is not transient.

Some examples of reasons for the transient type issues shown in your log file are:

  • "Root element is missing" and other errors related to content being truncated: This can happen if file content is not uploaded completely for some reason. For example, if a client computer disconnects from a network in the middle of an upload.
  • "INSERT statement conflicted [...]" type errors: I think there may be some problems if multiple files (such as inventory NDI and usage MMI files) are received and processed from a single computer simultaneously, especially if the computer has not previously uploaded data. This shouldn't happen (it is probably a bug), but does happen randomly from time to time when there are enough devices being managed.
(Did my reply solve the question? Click "ACCEPT AS SOLUTION" to help others find answers faster. Liked something? Click "KUDO". Anything expressed here is my own view and not necessarily that of my employer, Flexera.)