26

After a recent SSRS upgrade from SQL 2008 to SQL 2008R2 Gold ( no patches) , we began to get complaints from users that reports were running slow and Internet Explorer was hanging up when certain reports were executed.

We ran some of our standard SSRS reports, and there were no unusual report failures. We looked at the SSRS logs and there was nothing which could explain the problem either.

We could reproduce the problem by running one of our SSRS reports – it seemed to run forever, when normally it would run in less than 10 seconds.

It seemed that every time we touched the report – things would hang up.  While the report was running, sometimes your laptop would go unresponsive as well. If you managed to click on any other tab in IE, the title bar for IE would include (Internet Explorer Unresponsive), and the entire  IE window would grey out.

Running the same report, with the same data, in Report Builder 3 was fine.

We ran Fiddler to see what we might learn by following the network traffic.  The times between send and receives were pretty fast. Summing up the times accounted for only a small portion of the 1:40 that it took to run the report.  However we did notice a pattern – there was a large wait on the client side. Fiddler looked like:

                Send -> receive

                Send -> receive

                Send -> receive

                <Long Wait>

                Send -> receive

 The sends come from the IE client, and the receive is the response from SSRS Reportserver.The client would send a request, get a quick response, then sometimes just wait.  Since the unexplained time was after a receive, and before a send, we know that the client is the problem. If the client would simply do the next send – all would be good.

 Running Task Manager on the client during the report run , we would see one or two processors using nearly 100% during the wait, then returning to normal. Below is task manager during the unresponsive period.

 Task Manager Pre CU7

After a while we realized that the problem occurs when the parameters refresh. It took 1:40 to refresh the parameter list. There were several parameters, and simply choosing a different item from the parameter list would send us into this 1:40 wait.

 I pulled out the query which generates the parameter lists, and ran it in Management Studio – and it is fast, fast, fast.

 Running the report in the development environment also did not exhibit the same behavior, even though it was on the same version of SSRS as the problem prod environment.  There were lots of reports in prod that did not have this problem. We typically run 25,000 to 35,000 reports per day in production. Most were fine, but several reports, only in production, exhibited this behavior.

 Continuing to work, we discovered that the number of values in the parameter lists in the trouble prod reports were between 8K and 11k. The same report which did not exhibit this problem in dev, had  a much shorter list of values in its parameter lists. Changing the data source on the report in dev, to point to the production database – the dev report took forever to refresh, just like prod.  Now we know the problem is related to having a large number of values in the parameter list.  Checking other reports with the same problem, they all had a large parameter lists.

Microsoft has a KB article about this problem (http://support.microsoft.com/kb/2522708) and http://support.microsoft.com/kb/2506799/LN.  it is fixed in CU7 for SQL Server 2008 R2. This CU is not included in SP1, which is in beta right now. However, I assume it will be included in SP2 and later, when they come out.

 The KB article describes the problem to apply to “The report contains a large multi-select drop-down parameter list.”   Our reports with single select drop-downs also showed this problem, so it does not apply ONLY to multi-select.

Another thing to note is that the initial load of the parameters when the report first comes up in IE is fine. However when you change one of the parameter values, and the parameters refresh – you wait, wait, wait.

 Choose a Parameter Value

How do I know if I have this problem?

·         Report was created in an earlier version of SSRS than SQL 2008 R2

·         Initial report load, and execution time same as pre-upgrade.

·         Parameter refresh takes a long time, during which CPU utilization goes near 100%

·         You are running SQL Server 2008 R2 pre-CU7

 

We installed CU 7 and the 1:40 refresh time dropped to about 10 seconds, and processor utilization dropped – problem fixed. CU7 can be found at http://support.microsoft.com/kb/2489376.

 
Task Manager After CU7
Warning
: I believe that installing SQL 2008 R2 CU7 breaks intellisense in Visual Studio 10. If so, there is a patch which fixes this also.

26

We recently upgraded SQL Server Reporting Services for a large SSRS user from SQL 2008 to SQL 2008R2 Gold  (no SQL 2008R2 patches).

Immediately some reports began to fail with a System.OverflowException.  Sometimes the report would run correctly. Other times the report would fail.  The implementation was 4 load balanced servers on the front end.  Failures were happening on all of the servers, so the problem wasn’t specific to a particular server.

The error that customers would see in SSRS is in the screen shot below:

 

SystemOverflowException

Looking at the SSRS Error Logs, we found errors like these:

processing!WindowsService_0!165c!05/24/2011-06:00:18:: e ERROR: An exception has occurred in data set 'OutageDataSet'. Details: System.OverflowException: Value was either too large or too small for an Int32.

processing!WindowsService_0!165c!05/24/2011-06:00:18:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: , Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: An error has occurred during report processing. ---> System.OverflowException: Value was either too large or too small for an Int32.

It was always System.OverflowException: Value was either too large or too small for an int32.

As it turns out, this is a known bug, documented in the KB article (http://support.microsoft.com/kb/2359606).

 There is a work around in the article which tells us to convert a grouping field from int to Cdbl or CLong. However, if you do this – you’ll have to figure out which item needs to be changed. The error message will give you the dataset, but not the column, nor the item within the report that exhibits the problem.

This is fixed in Cumulative Update 4(http://support.microsoft.com/kb/2345451) , which you can download and install immediately. This fix is also included in SQL 2008 R2 SP1, which at the time of this writing, is still in beta.

picture of Wayne Snyder

Wayne Snyder

Our Blog Friends Minimize

  Minimize
After SSRS 2008 R2 Upgrade: Some Reports Hang
You just upgraded to SSRS 2008 R2 and some reports are hanging up, while others seem to work fine. How do you debug for this, and what is the fix?
SSRS SystemOverflowexception: Value was either too large or too small for an Int32
You install or upgrade to SSRS 2008R2 Gold, and get the following error "SSRS SystemOverflowexception: Value was either too large or too small for an Int32". Here is what is going on....
Slow SSRS in Sharepoint Integrated Mode
Good Times at the PASS Conference!
SQL Server More Secure Than Oracle!
BIDS SQL2008, BIDS SQL2008R2, and BIDS SQL2005
Good at BI and Looking for a Great Company?

Advertisement Minimize

Copyright 2004-2012 MSBICentral.com Terms Of Use Privacy Statement