IndexOutOfRangeException: Result set index too big

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for MySQL
Post Reply
birchfld
Posts: 9
Joined: Tue 13 Mar 2007 12:10

IndexOutOfRangeException: Result set index too big

Post by birchfld » Tue 05 Jun 2007 20:34

I have seen :
IndexOutOfRangeException: Result set index too big
at CoreLab.MySql.MySqlDataReader.a(Int32 A_0,String A_1)

this is while the code being executed is:
mySqlDump1.Backup(x);

Please advise.

tia

Alexey
Posts: 2756
Joined: Mon 13 Mar 2006 07:43

Post by Alexey » Wed 06 Jun 2007 10:55

Please send me a small test project to reproduce the problem. It is
desirable to use 'test' schema objects, otherwise include definition of your own database objects.
Use e-mail address provided in the Readme file.
Do not use third party components.

birchfld
Posts: 9
Joined: Tue 13 Mar 2007 12:10

Post by birchfld » Thu 07 Jun 2007 13:02

Alexey wrote:Please send me a small test project to reproduce the problem.
Thanks, but I have not been able to repeat the problem since it originally occurred. I had hoped it was a known issue that you could advise on.

birchfld
Posts: 9
Joined: Tue 13 Mar 2007 12:10

Post by birchfld » Fri 08 Jun 2007 12:11

The problem continues, but only very rarely ...

Out of about 100 runs, I got it again:

Error during Backup: System.IndexOutOfRangeException: Result set index too big.

at CoreLab.MySql.MySqlDataReader.a(Int32 A_0, String A_1)

at CoreLab.MySql.MySqlDataReader.GetString(Int32 i)

at CoreLab.MySql.MySqlDump.c(TextWriter A_0)

at CoreLab.MySql.MySqlDump.Backup(TextWriter writer)

at CoreLab.MySql.MySqlDump.Backup(String fileName)

Alexey
Posts: 2756
Joined: Mon 13 Mar 2006 07:43

Post by Alexey » Mon 11 Jun 2007 08:21

What is the version of your MySQL Server?
Create a test project, which make as many backups as needed to see the error and send it to me.

birchfld
Posts: 9
Joined: Tue 13 Mar 2007 12:10

Post by birchfld » Mon 11 Jun 2007 12:18

Alexey,

I don't think making a test project is going to make any difference. I think the key is the environment (read: local load) and table data.

I'm running against a 5.0.42-enterprise

The server is local to the run time, and is actually a live replication slave with many other functions running ... sometimes leading to heavy cpu and ram load.

the database contains:
99 tables, 6,921,660 rows, 2.5GB data
with each table ranging from 0 to 689,174 rows and 16kb to 203mb

This database will soon be doubling in size.

anyways,
here is a simplified version of the code being used:

Code: Select all

                databaseConnection.Host = edHost.Text;
                databaseConnection.UserId = edUser.Text;
                databaseConnection.Password = edPassword.Text;
                databaseConnection.Port = (int)edPort.Value;
                databaseConnection.Database = cbDatabase.Text;
                databaseConnection.Open();
                mySqlDump1.Connection = databaseConnection;
                mySqlDump1.ExportAll = false;
                mySqlDump1.GenerateHeader = true;
                LogThis("Backup in progress " + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString());
                this.Update();


                        DataTable dataTable = databaseConnection.GetSchema("Tables", new String[] { databaseConnection.Database });
                            foreach (DataRow dataRow in dataTable.Rows)
                            {
                                string thissqlname = thishour + "." + dataRow["Name"].ToString() + ".sql";
                                
                                mySqlDump1.Tables = dataRow["Name"].ToString();

                                try
                                {
                                    LogThis("Backup  of " + thissqlname + " in progress");
                                    this.Update();
                                    mySqlDump1.Backup(thisOutputFolderHour + thissqlname);
                                    LogThis("Backup of " + thissqlname + " complete");
                                    this.Update();
                                }
                                catch (Exception Ex)
                                {
                                        LogThis("Error during table backup: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
                                        this.Update();
                                        MessageBox.Show("Error during Backup: " + Ex);
                                        return;
                                }    
                            }

Alexey
Posts: 2756
Joined: Mon 13 Mar 2006 07:43

Post by Alexey » Mon 11 Jun 2007 14:40

OK, we will try to investigate this more detailed...

birchfld
Posts: 9
Joined: Tue 13 Mar 2007 12:10

Post by birchfld » Tue 19 Jun 2007 20:51

Have you had any luck identifying a potential cause?

I'm still getting the same errors ... about once every 75 to 150 runs.

But I'm also seeing:

only a couple of times:

Code: Select all

Commands out of sync;  You can't run this command now
and this also (only a couple of times)

Code: Select all

System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt64(String value, NumberStyles options, NumberFormatInfo numfmt)
   at System.String.System.IConvertible.ToInt64(IFormatProvider provider)
   at System.Convert.ToInt64(Object value)
   at CoreLab.MySql.MySqlDump.c(TextWriter A_0)
   at CoreLab.MySql.MySqlDump.Backup(TextWriter writer)
   at CoreLab.MySql.MySqlDump.Backup(String fileName)

Alexey
Posts: 2756
Joined: Mon 13 Mar 2006 07:43

Post by Alexey » Wed 20 Jun 2007 08:14

We have scrutinized this and didn't find any problem.
Make sure that you do not use the connection in other threads during backup.

Post Reply