Wednesday, October 24, 2007

Reporting Services: An internal error occurred on the report server. See the error log for more details.

We recently migrated reporting services from one machine to another. After performing a fairly textbook migration (we migrated the databases, encryption keys, applying service packs etc...), everything SEEMED to be working. But we were getting plagued with one intermittent error that was extremely weird to troubleshoot.

When opening up a report (or drilling in, paging etc...) we would intermittently get a:

An internal error occurred on the report server. See the error log for more details.

Nothing would show up in the Event Log.

If you dig into the reporting services log files (C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\LogFiles...) you eventually find some text that looks like this:

w3wp!processing!1!10/24/2007-15:17:56:: a ASSERT: Assertion failed! Call stack: Microsoft.ReportingServices.ReportProcessing.ReportProcessing.UpdateTimingInformation(RunningJobContext jobContext, Int64 totalDurationMs, Int64 reportDataRetrievalDurationMs, Int64 reportRenderingDurationMs) Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderSnapshot(IRenderingExtension renderer, CreateReportChunk createChunkCallback, RenderingContext rc, GetResource getResourceCallback) Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderSnapshot(CreateReportChunk createChunkCallback, RenderingContext rc, GetResource getResourceCallback) Microsoft.ReportingServices.Library.RenderSnapshotAction.Render()

So what happend? The old machine was running on Intel hardware the new one was running on AMD. Specifically an AMD x64 proc that boasts AMD's Cool'n Quiet technology. Essentially this messes with software like Reporting Services that try to get at the system time through the QueryPerformanceCounter() function.

Thanks to this KB article http://support.microsoft.com/?id=895980 and this post we got it resolved (read 3 hours later)!

God bless the internet.