Stack dumps like this can due to a bug in SQL Server itself, but the culprit can also be external code that executes in the SQL Server process space. This includes:
- Extended stored procedures.
- CLR assemlies.
- OLE DB providers and ODBC drivers for Linked servers that runs in-process.
- COM-objects invoked through sp_OAxxxx
In the stack dump, I see sqlncli11, which indeed is an OLE DB provider, but one that is very much tested and tried. I also see OLEAUT32. That could indicate that you are using sp_OAxxxx, but since it comes right after sqlncli, I think this is more part of OLE DB.
Then again, the culprit is necessarily not on the call stack, as the erroneous component may have scribbled memory that pulls the carpet for other processes.
Another possible reason is a bad memory stick, that is a hardware problem. Have you run memory diagnostics?
Have you gotten stack dumps like this more than once? In such case, is the stack trace always the same, or is it random? A random stack trace is more an indication of a bad memory stick or a scribbler. If the stack dump is always the same, it seems more like a bug in the product.
I would first investigate if you have any of the four items above, as well as the possibility of a bad memory stick. When it comes to linked servers, ignore linked servers from Microsoft. If you can rule out these issues, open a support case with Microsoft. That is really the only way to get it resolved. Not that SQL 2012 is out of mainstream support.
The reason you should make your own investigations is that the cost for opening a support ticket is not that cheap. If it is a bug in the product, you will be refunded, but certainly not if it is your home-brewed extended stored procedure that kills the server.