Ran into an odd timeout issue today.  It was disguising itself as an nHibernate problem during the upgrade of an AbleCommerce 7.0.7 store to AbleCommerce Gold R6.

 

The initial error was complaining about nHibernate null Id issues with Catalog.Webpage.  Which made no sense since the upgrade is converting the data, not adding to it.

So I dug into the /install/upgrade.aspx page and saw that indeed new web pages were being added.  And the error was crashing when store.settings.Save() was being called.

I eventually noticed an “errorList” string array variable and exposed it via debug.   It showed me that the SQL upgrade scripts were causing a timeout.   This was silently crashing the upgrade.

After a quick Google search, I found the solution.  In the RunScript() routine within Upgrade.aspx.cs, you have to increase the command timeout value.   Apparently the database I was upgrading was enormous and my local SQL server isn’t really known for speed.  Combine the two factors and you can easily result in timeouts.

Note the addition of setting the CommandTimeout parameter below:

try

{

    SqlCommand command = new SqlCommand(sql, conn);

    command.CommandTimeout = 300;

    command.ExecuteNonQuery();

}