Comparison Failure, Index out of range
james.healy
Posts: 7
Hello-
We're encountering an error when running MySQL compare (v. 1.0.0.425 xxx-xxx-xxxxxx-B204) on a pair of databases. We've used the tool dozens of times successfully in the past, but when we ran compare this morning we found it would execute the "Reading Dependency, Registering Data 1, Registering Database 2, and Compare" stages, but then the results of the comparison do not display.
I enabled Verbose logging. Results below:
12:02:12.818|Info |Logging |1 |Current Logging levels enabled: Verbose,Warning,Fatal,Debug,Information,Trace,Error
12:02:14.234|Debug |Event Aggregator |1 |:Registered #Eimb.#euJ as listener for #Limb.#RbD
12:02:14.608|Debug |Event Aggregator |1 |:Registered #Mimb.#MbD as listener for #Limb.#RbD
12:02:14.608|Debug |Event Aggregator |1 |:Registered #Mimb.#MbD as listener for #Limb.#obD
12:02:14.685|Debug |Event Aggregator |1 |:Registered #fjmb.#DtJ as listener for #Limb.#RbD
12:02:14.685|Debug |Event Aggregator |1 |:Registered #fjmb.#DtJ as listener for #Limb.#pbD
12:02:14.801|Debug |Event Aggregator |1 |:Registered #Uimb.#lxc as listener for #Limb.#RbD
12:02:15.306|Info |Serializer |1 |:Deserializing object from stream
12:02:15.313|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.MySQLSchemaProject
12:02:15.314|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.MySQL.DataSources.LiveMySQLTcpIpDataSource
12:02:15.324|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.MySQL.DataSources.LiveMySQLTcpIpDataSource
12:02:15.325|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.Options
12:02:15.326|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.DifferenceFilter
12:02:15.332|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.SelectedRows
12:02:19.920|Debug |PopulationLogger |11 |ProgressTask:Populating DB email_od_config
12:02:19.926|Debug |PopulationLogger |11 |ProgressTask:Populating Dependencies
12:02:20.005|Debug |PopulationLogger |11 |ProgressTask:Populating Tables
12:02:20.084|Debug |PopulationLogger |11 |ProgressTask:Populating Columns
12:02:20.238|Debug |PopulationLogger |11 |ProgressTask:Populating Indexes
12:02:20.308|Debug |PopulationLogger |11 |ProgressTask:Populating Constraints
12:02:20.308|Debug |PopulationLogger |11 |ProgressTask:Populating Index Constraints
12:02:20.490|Debug |PopulationLogger |11 |ProgressTask:Populating FK Constraints
12:02:20.797|Debug |PopulationLogger |11 |ProgressTask:Populating Views
12:02:20.848|Debug |PopulationLogger |11 |ProgressTask:Populating Routines
12:02:22.031|Debug |PopulationLogger |11 |ProgressTask:Populating Triggers
12:02:22.663|Debug |PopulationLogger |11 |ProgressTask:Populating Events
12:02:22.873|Debug |PopulationLogger |11 |ProgressTask:Populating DB email_od_config
12:02:22.873|Debug |PopulationLogger |11 |ProgressTask:Populating Dependencies
12:02:22.916|Debug |PopulationLogger |11 |ProgressTask:Populating Tables
12:02:22.958|Debug |PopulationLogger |11 |ProgressTask:Populating Columns
12:02:23.111|Debug |PopulationLogger |11 |ProgressTask:Populating Indexes
12:02:23.148|Debug |PopulationLogger |11 |ProgressTask:Populating Constraints
12:02:23.149|Debug |PopulationLogger |11 |ProgressTask:Populating Index Constraints
12:02:23.432|Debug |PopulationLogger |11 |ProgressTask:Populating FK Constraints
12:02:23.854|Debug |PopulationLogger |11 |ProgressTask:Populating Views
12:02:23.930|Debug |PopulationLogger |11 |ProgressTask:Populating Routines
12:02:24.977|Debug |PopulationLogger |11 |ProgressTask:Populating Triggers
12:02:25.525|Debug |PopulationLogger |11 |ProgressTask:Populating Events
12:02:26.587|Debug |Event Aggregator |1 |:Sending message #Limb.#paD
12:02:26.750|Debug |Event Aggregator |1 |:Sending message #Limb.#pbD
12:02:26.890|Fatal |Program |1 |:Exception in main thread
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1.get_Item(Int32 index)
at #zumb.#FvX.#JvX(Boolean leftSide, Boolean isSource, List`1 comparisonStrings, IDictionary`2 ownerMapping, Boolean ignoreComments, Boolean ignoreWhiteSpace, Boolean ignoreBackTicks, Boolean ignoreCase)
at #oomb.#pomb.#JvX(Boolean leftSide, Boolean isSource, List`1 comparisonStrings, IDictionary`2 ownerMapping, Boolean ignoreComments, Boolean ignoreWhiteSpace, Boolean ignoreDoubleQuotes, Boolean ignoreCase)
at #fjmb.#kxc.#97(#B9C textualDifferences)
at #fjmb.#DtJ.#HgD(#B9C diff)
at #fjmb.#DtJ.#1lw(#pbD e)
at #Qimb.#sMc.#t.#tMc.#Jq(#NrPb message)
at #Qimb.#sMc.#Jq[#NrPb](#NrPb message)
at #7imb.#DcD.#pjD(#Z8C differenceRow, String columnName)
at #Eimb.#duJ.#xUc(Object sender, SelectionChangedEventArgs e)
at DevExpress.XtraGrid.Views.Base.ColumnView.RaiseSelectionChanged(SelectionChangedEventArgs e)
at DevExpress.Data.Selection.SelectionController.OnSelectionChanged(SelectionChangedEventArgs e)
at DevExpress.Data.Selection.BaseSelectionCollection.SetRowSelected(Int32 controllerRow, Boolean selected, Object selectionObject)
at DevExpress.Data.Selection.SelectionController.SetSelected(Int32 controllerRow, Boolean selected)
at DevExpress.XtraGrid.Views.Base.ColumnView.SelectRow(Int32 rowHandle)
at DevExpress.XtraGrid.Views.Grid.GridView.OnDataController_DataSourceChanged(Object sender, EventArgs e)
at DevExpress.Data.DataControllerBase.RaiseListSourceChanged()
at DevExpress.Data.DataControllerBase.OnListSourceChanged()
at DevExpress.Data.DataControllerBase.SetListSourceCore(IList value)
at DevExpress.Data.CurrencyDataController.OnDataSourceChanged()
at DevExpress.Data.CurrencyDataController.SetDataSource(BindingContext context, Object dataSource, String dataMember)
at DevExpress.XtraGrid.Views.Base.BaseView.SetDataSource(BindingContext context, Object dataSource, String dataMember)
at DevExpress.XtraGrid.GridControl.ActivateDataSource()
at DevExpress.XtraGrid.GridControl.set_DataSource(Object value)
at #Eimb.#euJ.#5Tc(IEnumerable`1 viewModel)
at #Eimb.#duJ.#vl(IEnumerable`1 differenceRows)
at #jjmb.#RcD.#vl(IEnumerable`1 differenceList)
at #7imb.#DcD.#HoD(IEnumerable`1 differenceList)
at #oomb.#nomb.#HoD()
at #oomb.#nomb.#jIPb(#kGr currentProject, Object c)
at #oomb.#Homb.#ZjD(Object sender, CancelEventArgs e, Predicate`1 updateProject, MySQLSchemaProject project, Boolean isDifferentProject)
at #oomb.#Homb.#t.#izb.#ryD(Object s, CancelEventArgs e)
at System.Windows.Forms.Form.OnClosing(CancelEventArgs e)
at System.Windows.Forms.Form.CheckCloseDialog(Boolean closingOnly)
Any suggestions appreciated. Thanks!
We're encountering an error when running MySQL compare (v. 1.0.0.425 xxx-xxx-xxxxxx-B204) on a pair of databases. We've used the tool dozens of times successfully in the past, but when we ran compare this morning we found it would execute the "Reading Dependency, Registering Data 1, Registering Database 2, and Compare" stages, but then the results of the comparison do not display.
I enabled Verbose logging. Results below:
12:02:12.818|Info |Logging |1 |Current Logging levels enabled: Verbose,Warning,Fatal,Debug,Information,Trace,Error
12:02:14.234|Debug |Event Aggregator |1 |:Registered #Eimb.#euJ as listener for #Limb.#RbD
12:02:14.608|Debug |Event Aggregator |1 |:Registered #Mimb.#MbD as listener for #Limb.#RbD
12:02:14.608|Debug |Event Aggregator |1 |:Registered #Mimb.#MbD as listener for #Limb.#obD
12:02:14.685|Debug |Event Aggregator |1 |:Registered #fjmb.#DtJ as listener for #Limb.#RbD
12:02:14.685|Debug |Event Aggregator |1 |:Registered #fjmb.#DtJ as listener for #Limb.#pbD
12:02:14.801|Debug |Event Aggregator |1 |:Registered #Uimb.#lxc as listener for #Limb.#RbD
12:02:15.306|Info |Serializer |1 |:Deserializing object from stream
12:02:15.313|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.MySQLSchemaProject
12:02:15.314|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.MySQL.DataSources.LiveMySQLTcpIpDataSource
12:02:15.324|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.MySQL.DataSources.LiveMySQLTcpIpDataSource
12:02:15.325|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.Options
12:02:15.326|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.DifferenceFilter
12:02:15.332|Debug |Serializer |1 |:Reading serialization info for type RedGate.Compare.EngineController.Schema.MySQL.SelectedRows
12:02:19.920|Debug |PopulationLogger |11 |ProgressTask:Populating DB email_od_config
12:02:19.926|Debug |PopulationLogger |11 |ProgressTask:Populating Dependencies
12:02:20.005|Debug |PopulationLogger |11 |ProgressTask:Populating Tables
12:02:20.084|Debug |PopulationLogger |11 |ProgressTask:Populating Columns
12:02:20.238|Debug |PopulationLogger |11 |ProgressTask:Populating Indexes
12:02:20.308|Debug |PopulationLogger |11 |ProgressTask:Populating Constraints
12:02:20.308|Debug |PopulationLogger |11 |ProgressTask:Populating Index Constraints
12:02:20.490|Debug |PopulationLogger |11 |ProgressTask:Populating FK Constraints
12:02:20.797|Debug |PopulationLogger |11 |ProgressTask:Populating Views
12:02:20.848|Debug |PopulationLogger |11 |ProgressTask:Populating Routines
12:02:22.031|Debug |PopulationLogger |11 |ProgressTask:Populating Triggers
12:02:22.663|Debug |PopulationLogger |11 |ProgressTask:Populating Events
12:02:22.873|Debug |PopulationLogger |11 |ProgressTask:Populating DB email_od_config
12:02:22.873|Debug |PopulationLogger |11 |ProgressTask:Populating Dependencies
12:02:22.916|Debug |PopulationLogger |11 |ProgressTask:Populating Tables
12:02:22.958|Debug |PopulationLogger |11 |ProgressTask:Populating Columns
12:02:23.111|Debug |PopulationLogger |11 |ProgressTask:Populating Indexes
12:02:23.148|Debug |PopulationLogger |11 |ProgressTask:Populating Constraints
12:02:23.149|Debug |PopulationLogger |11 |ProgressTask:Populating Index Constraints
12:02:23.432|Debug |PopulationLogger |11 |ProgressTask:Populating FK Constraints
12:02:23.854|Debug |PopulationLogger |11 |ProgressTask:Populating Views
12:02:23.930|Debug |PopulationLogger |11 |ProgressTask:Populating Routines
12:02:24.977|Debug |PopulationLogger |11 |ProgressTask:Populating Triggers
12:02:25.525|Debug |PopulationLogger |11 |ProgressTask:Populating Events
12:02:26.587|Debug |Event Aggregator |1 |:Sending message #Limb.#paD
12:02:26.750|Debug |Event Aggregator |1 |:Sending message #Limb.#pbD
12:02:26.890|Fatal |Program |1 |:Exception in main thread
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1.get_Item(Int32 index)
at #zumb.#FvX.#JvX(Boolean leftSide, Boolean isSource, List`1 comparisonStrings, IDictionary`2 ownerMapping, Boolean ignoreComments, Boolean ignoreWhiteSpace, Boolean ignoreBackTicks, Boolean ignoreCase)
at #oomb.#pomb.#JvX(Boolean leftSide, Boolean isSource, List`1 comparisonStrings, IDictionary`2 ownerMapping, Boolean ignoreComments, Boolean ignoreWhiteSpace, Boolean ignoreDoubleQuotes, Boolean ignoreCase)
at #fjmb.#kxc.#97(#B9C textualDifferences)
at #fjmb.#DtJ.#HgD(#B9C diff)
at #fjmb.#DtJ.#1lw(#pbD e)
at #Qimb.#sMc.#t.#tMc.#Jq(#NrPb message)
at #Qimb.#sMc.#Jq[#NrPb](#NrPb message)
at #7imb.#DcD.#pjD(#Z8C differenceRow, String columnName)
at #Eimb.#duJ.#xUc(Object sender, SelectionChangedEventArgs e)
at DevExpress.XtraGrid.Views.Base.ColumnView.RaiseSelectionChanged(SelectionChangedEventArgs e)
at DevExpress.Data.Selection.SelectionController.OnSelectionChanged(SelectionChangedEventArgs e)
at DevExpress.Data.Selection.BaseSelectionCollection.SetRowSelected(Int32 controllerRow, Boolean selected, Object selectionObject)
at DevExpress.Data.Selection.SelectionController.SetSelected(Int32 controllerRow, Boolean selected)
at DevExpress.XtraGrid.Views.Base.ColumnView.SelectRow(Int32 rowHandle)
at DevExpress.XtraGrid.Views.Grid.GridView.OnDataController_DataSourceChanged(Object sender, EventArgs e)
at DevExpress.Data.DataControllerBase.RaiseListSourceChanged()
at DevExpress.Data.DataControllerBase.OnListSourceChanged()
at DevExpress.Data.DataControllerBase.SetListSourceCore(IList value)
at DevExpress.Data.CurrencyDataController.OnDataSourceChanged()
at DevExpress.Data.CurrencyDataController.SetDataSource(BindingContext context, Object dataSource, String dataMember)
at DevExpress.XtraGrid.Views.Base.BaseView.SetDataSource(BindingContext context, Object dataSource, String dataMember)
at DevExpress.XtraGrid.GridControl.ActivateDataSource()
at DevExpress.XtraGrid.GridControl.set_DataSource(Object value)
at #Eimb.#euJ.#5Tc(IEnumerable`1 viewModel)
at #Eimb.#duJ.#vl(IEnumerable`1 differenceRows)
at #jjmb.#RcD.#vl(IEnumerable`1 differenceList)
at #7imb.#DcD.#HoD(IEnumerable`1 differenceList)
at #oomb.#nomb.#HoD()
at #oomb.#nomb.#jIPb(#kGr currentProject, Object c)
at #oomb.#Homb.#ZjD(Object sender, CancelEventArgs e, Predicate`1 updateProject, MySQLSchemaProject project, Boolean isDifferentProject)
at #oomb.#Homb.#t.#izb.#ryD(Object s, CancelEventArgs e)
at System.Windows.Forms.Form.OnClosing(CancelEventArgs e)
at System.Windows.Forms.Form.CheckCloseDialog(Boolean closingOnly)
Any suggestions appreciated. Thanks!
Comments
Apologies for the delayed response. It seems to me you've hit a bug, thank you for the verbose logs.
If it would be possible to send us the schemas of the two databases in question, please do so to mysql@red-gate.com , this would hopefully help us recreate the issue.
Out of interest are you expecting these two database schemas to be identical, mostly the same, or to have lots (1000s) of differences?
Also, are you launching the comparison form a Project, or starting the comparison from scratch?
Any additional information like MySQL/Windows versions would be much appreciated.
Best regards,
Michael
Unfortunately I can't send out the database schemas. These DB's should be quite similar - probably only on the order of a dozen differences between the two.
Am launching the comparison from scratch (a fresh New Project).
MySQL version is 5.5 (at Amazon RDS), and we've tried on both Windows7 and Windows8 machines.
I'm going to try to manually roll back some changes and see if I can isolate the problematic schema objects that are causing the crash. Will update if I can anything significant.
I wasn't able to get anywhere on this error - but we continued to work with the DB and some subsequent change to the schema allowed MySQL Compare to function correctly now! Not sure what it was unfortunately. If we encounter again I'll post more details.
Thanks,
James