Page 1 of 1

Gold crashes array bounds error. IIS restart fixes.

Posted: Tue Nov 19, 2013 12:16 pm
by zeek21
We are having a problem that is crashing our Ablecommerce Gold website.
Ablecommerce Gold 7.0.85
Windows Server 2008R2
SQL Server 2012

With version 7, we the had occasional errors that didn't affect anything.
Now, we have high error rates prior to page load and checkout problems.
Sometimes, images show incorrectly.
Sometimes, the final payment page fails.
Other times, the site totally crashes with no pages responding.

Restarting IIS clears the problems.

Using the IIS Dynamic IP Restrictor to reduce the number of hits reduces the frequency of fatal errors.

From the Ablecommerce error log, the relevant problems are similar to:

An error has occured at http://domain.com/Errors/GeneralError.aspx?aspxerrorpath=/Fiber-ST-Cables-
C10731.aspx
Exception: Index was outside the bounds of the array. Stack Trace: at
System.Collections.Generic.Dictionary`2.Resize(Int32 newSize, Boolean forceNewHashCodes) at
System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at
CommerceBuilder.Utility.LRUCache`2.IndexedLinkedList`1.Add(T value) at
CommerceBuilder.Utility.LRUCache`2.set_Item(TKey key, TValue value) at
CommerceBuilder.Utility.LRUCache`2.AddOrUpdate(TKey key, TValue value) at
CommerceBuilder.Catalog.UrlCache.GetCustomUrl(String requestPath) at
CommerceBuilder.Catalog.DefaultUrlRewriter.a(String A_0) at
CommerceBuilder.Catalog.DefaultUrlRewriter.RewriteUrl(String sourceUrl, String appPath, String host) at
CommerceBuilder.Catalog.DefaultUrlRewriter.RewriteUrl(String sourceUrl) at
CommerceBuilder.Services.HttpModule.b(Object A_0, EventArgs A_1) at
System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously
[more complete listings are available if needed. Similar]
Are these errors due to problems with the Custom URL functions?

Fix
AC8-1951 Normal Url Cache and Redirect Service cache are not thread safe

We started Gold development with 7.0.85. This should include the AC8-1951 patch.

I find nothing on the web listing which files of entries are involved with the AC8-1951 fix.

What do we check to confirm that the AC8-1951 patch is active. Was it a change to Web.config?

We have not purchased the Ablecommerce code - yet. We do not know what array bounds are exceeded - or

why.

IIS max concurrent requests is set to default 4294967295. What other IIS, ASP... settings might cause the

problem ?

Thanks

Re: Gold crashes array bounds error. IIS restart fixes.

Posted: Tue Nov 19, 2013 4:25 pm
by Katie
AC8-1951 was part of a hot patch for Gold R5. Please see this page -

http://help.ablecommerce.com/index.htm# ... old_r5.htm

Hope this helps!
Katie

Re: Gold crashes array bounds error. IIS restart fixes.

Posted: Tue Nov 26, 2013 10:43 am
by zeek21
We are still having server IIS failures occasionally which shows a system error on page payment.aspx.
The order is not saved.
It happens less frequently after applying the R5 patch to paymentwidget.ascx.cs.
Not zero. Restarting IIS is the only fix.
We set an hourly IIS reset scheduled task on the server.
That's a temporary fix. It doesn't prevent errors. It only allows future orders.

Is there a method to find out what is failing within "this.Order.Save(true,true)" ?
That's what was changed in the R5 patch to paymentwidget.ascx.
It was (true,false) before.

We need to solve this problem. Losing orders.

Thanks

Re: Gold crashes array bounds error. IIS restart fixes.

Posted: Tue Nov 26, 2013 7:50 pm
by Katie
The order is not saved.
Do you have customizations on the payment page? I haven't heard of anyone with this problem. Do you have a payment error message for a developer to examine? What payment processor are you using?

Trying to help, but we need more info because this seems like an isolated case.

Re: Gold crashes array bounds error. IIS restart fixes.

Posted: Wed Nov 27, 2013 10:01 am
by AbleMods
Zeek, some things to try from my own experiences and purely for testing purposes:

1) Change the search provider setting to SQL Server Full Text in the search settings. Don't use Lucene.

2) Turn off your hourly IIS reset. Wait for the site to crash. Once it has stopped responding, check the server CPU utilization and the memory usage on the app pool for your site. Is either value unusually high? Server CPU (assuming it's the only thing on the server) should be 10%-50% depending on traffic. The Able site's app pool process should be using 150mb-400mb of memory (again depending on traffic)

3) How many custom URLs do you have set? 10? 50? 1,000? Bumping up the custom URL cache from 1,000 to larger (say 5,000) might help. Change it in Configure/SEO/Settings in the admin.

4) Are any outside apps or third-party apps altering Able data directly in the SQL database. This is a no-no, all Able data should be modified from within the Able application context using the Able classes. Reading the data from outside apps is fine, but changing it is bad.

5) What about SQL server? Is it running on the same box as the website? If so, make sure SQL is not hogging a ton of RAM on the server, by default it will.

6) Get on Gold R6. It's worth the effort from a stability standpoint.