RML Utilities: ReportViewer Bug Affects SQL Server Management Studio and Reporter Utility


Summary

An index out of bounds error can occur while rendering a report in Local Report Viewer Mode with more than one dataset.

Outer Exception: Object reference not set to an instance of an object, an error occurred during rendering of the report.
Inner Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.

image

This is thread safety issue and occurs more frequently on a multi-CPU computer but can happen on a single CPU computer as well.

Workaround

The issue is time sensitive you can attempt to open (render) the report again and it often resolves the issue.

Additional References

Reporting Services, Render, Report Viewer Control, Data Set
SQL Server 2005 CU Bug #  50003629

Bob Dorr
SQL Server Principal Escalation Engineer

Comments (3)

  1. Saggi Neumann says:

    In case you’re referring to the error that comes up *specifically* with the performance dashboard reports, then you should fix the issue with the following procedure, taken from Kimberly Tripp’s blog (http://www.sqlskills.com/blogs/kimberly/2008/06/11/TechEdHasCompleted.aspx):

    You need to tweak the C:Program FilesMicrosoft SQL Server90ToolsPerformanceDashboardsetup.sql file so that the stored procedures deal with the timeout correctly. The change is to line 276:

    From:

    sum(convert(bigint, datediff(ms, login_time, getdate()))) – sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

    To:

    sum(convert(bigint, CAST ( DATEDIFF ( minute, login_time, getdate()) AS BIGINT)*60000 + DATEDIFF ( millisecond, DATEADD ( minute, DATEDIFF ( minute, login_time, getdate() ), login_time ),getdate() ))) – sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

    Cheers,

    S. Neumann

  2. DWalker says:

    This bug has been here a year.  Are there any plans to fix the "thread safety issue" so we don’t get the exception?