locked
Timeouts after migration from vanillla MOSS 2007 to Service Pack 2 RRS feed

  • Question

  • Hey

    I am in the process of moving a site from an aging production server running Windows 2003 with SharePoint 2007 (RTM version, no service packs applied).

    The new server is setup using Windows Server 2008 R2 and as such we have to use SharePoint 2007 SP2 (since earlier versions are not compatible with 2008 R2).

    I have tried using "stsadm -o backup" (for a site collection) as well as backup of content databases, but the results is the same; The site shows up normally and looks fine, but whenever I try to create a new page, check in an existing page after editing or in general do "write" operations, the page just times out (even if I set the limit to 5+ minutes).

    The event log does not show any traces of this error, but the ULS log has a couple of errors once the page times out, listed here: http://pastebin.com/n6pTVNVE.

    I have checked that all accounts are setup correctly and that the server itself is working correctly (there is no error with a new site collection or other web applications and their site collections).

    There is one odd thing that I would point at as the possible problem source. The site on the current server makes use of Publishing Infrastructure-features (extended Site Actions menu, "Pages" dokument library, etc.), but the Site scope feature itself is not activated and neither is the Web scope feature on any webs. If disabled, hos is the site still making use of these features? And do I need to "clean this up" before I take a backup to make it properly?

    Any help is appreciated.

    Thursday, October 27, 2011 1:00 PM

All replies

  • Hi Christian,

     

    I am trying to involve someone familiar with this topic to further look at this issue. There might be some time delay. Appreciate your patience.

     

    Thank you for your understanding and support.


    Regards, Daniel
    Tuesday, November 1, 2011 9:25 AM
    Moderator
  • Hi,

    The error is:

    10-25-2011 13:25:43.67 w2wp.exe - Windows SharePoint Services - Database - 880i - High:

     

    System.Threading.ThreadAbortException: Thread was being aborted.   

     at SNIReadSync(SNI_Conn* , SNI_Packet** , Int32 )   

     at SNINativeMethodWrapper.SNIReadSync(SafeHandle pConn, IntPtr& packet, Int32 timeout)   

     at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)   

     at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()   

     at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()   

     at System.Data.SqlClient.TdsParserStateObject.ReadByte()   

     at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)   

     at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()   

     at System.Data.SqlClient.SqlDataReader.get_MetaData()   

     at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)   

     at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)   

     at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)   

     at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)   

     at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)    

     at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)   

     at Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command, CommandBehavior behavior)

     

    It is a little concerning that the highlighted shows up as w2wp instead of w3wp.

    Please review this blog here: http://weblogs.asp.net/andreaszenker/archive/2008/12/03/2003-2008-server-asp-net-slow-refresh-tcp-chimney-offload.aspx

    It seems like there was a large query passed to the SQL server and there was a time out.

    When you brought this over from the 2003 server, did you upgrade it first to SP2 and then run the STSADM –o backup command?  If you did not upgrade it, you could use the database attach method to bring the content over and this the content database will be auto updated to SP2.  Then you do not have to worry about turning on features and such.


    Regards, Savoeurn Va Microsoft Online Community Support
    Wednesday, November 2, 2011 12:08 AM
  • I apoligize, somehow I mistyped the w3wp part - it is not w2wp, just a typo.

    With regards to the backup, I have tried both using "stsadm -o backup" as well as backing up the content database. I checked the linked article and will try to check the network adapter to see if it makes any difference.

    If you have any more insight, it is much appreciated.

    Wednesday, November 2, 2011 7:47 AM
  • After increasing the timeout towards infinity I ended up with the following error instead of the timeout / thread aborted error:

    Query processor could not produce a query plan because of the hints defined in this query. Resubmit the query without specifying any hints and without using SET FORCEPLAN. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
    at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
    at System.Data.SqlClient.SqlDataReader.get_MetaData()
    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
    at Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command, CommandBehavior behavior)
    at Microsoft.SharePoint.SPSqlClient.ExecuteQuery(Boolean& bSucceed)
    at Microsoft.SharePoint.Library.SPRequestInternalClass.GetListItemDataWithCallback(String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pSchemaCallback)
    at Microsoft.SharePoint.Library.SPRequest.GetListItemDataWithCallback(String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pSchemaCallback)
    at Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData()
    at Microsoft.SharePoint.SPListItemCollection.get_Count()
    at Microsoft.SharePoint.Publishing.WebControls.DocumentLibraryFileExistValidator.EvaluateIsValid()
    at System.Web.UI.WebControls.BaseValidator.Validate()
    at System.Web.UI.Page.Validate()
    at Microsoft.SharePoint.Publishing.Internal.CodeBehind.CreatePagePage.Validate()
    at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    The ULS logs show the same error, but no further information. As said, this happens when I try to create a page.

    Wednesday, November 2, 2011 10:07 AM
  • Hi which version fo SQL are you running?

    I do see this message: Query processor could not produce a query plan because of the hints defined in this query. 

    From: http://support.microsoft.com/kb/921896

    926773 FIX: Error message when you run a query that uses a fast forward-only cursor in SQL Server 2005: "Query processor could not produce a query plan because of the hints defined in this query"

     


    Regards, Savoeurn Va Microsoft Online Community Support
    Monday, November 7, 2011 8:21 PM
  • We are using SQL Server 2008 Service Pack 1.

    Take note: If I create a new site using the same template, it works fine (albeit without much content, users and general configuration). However, if I migrate the site from the older installation, the error occurs.

    Wednesday, November 9, 2011 7:44 AM
  • It’s possible that there might be an issue with the site.  Try this, export the problem site out first then import that into a new database on its own, then upgrade that new database into new server.  Then check behavior.   It could be something else entirely too.

    Since this a full version of sql, have you brought over the databases to the new box using content database attach? This will auto update the content db’s to SP2.

    The other thing you need to watch out for is when you patch to MOSS SP2, you need to ensure that you have patched the WSS side as well. http://technet.microsoft.com/en-us/office/sharepointserver/bb735839.aspx

    The log to check is the upgrade.log file from each server.  It is cumulative, check to see if you are seeing any errors in that.  It is located in the default log file location.

     


    Regards, Savoeurn Va Microsoft Online Community Support
    Monday, November 14, 2011 1:02 AM
  • I have tried any and all combinations of attaching/detaching databases, using export/import and backup/restore, the error is the same regardless.

    Because the new installation is on a Windows 2008 R2-server, we have to use a slipstreamed SharePoint installation that already includes Service Pack 2. Just to check I also tried moving the site from the current server to an identical environment (Server 2003 R2, same language, same updates/service packs) but I get the same error.

    I am beginning to think it has to do with some of the content, but I cannot pinpoint it currently. At this point the only solution I can see is recreating the site from scratch (using the same templates from the wsp package) and then copy content over. That being said, I'd still love to know if you can figure out what the cause is.

    Best regards,

    Christian

    Wednesday, November 30, 2011 3:29 PM
  • Okay, after a lot of digging around I have narrowed the issue down to the activation of a specific custom feature that alters some fields on our site.

    In short, we have a (hidden) web where the Pages-folder contains all the pages we use as specific tabs on other pages. On this web we activate a feature to change some lookup fields used by specific layouts so they point to this Pages document library and can select documents from there.

    This feature would be activated on http://domain/secretsubsite/ and the feature receiver code is this:

     

            public override void FeatureActivated(SPFeatureReceiverProperties properties)
            {
                SPWeb web = properties.Feature.Parent as SPWeb;
                if (web != null
                 && PublishingWeb.IsPublishingWeb(web))
                {
                    PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);
                    SPList pagesList = pubWeb.PagesList;
                    using (SPSite site = web.Site)
                    {
                        using (SPWeb rootWeb = site.RootWeb)
                        {
                            List<SPField> fieldsToModify = new List<SPField>();
                            foreach (SPField field in rootWeb.Fields)
                            {
                                if (field.Group == "CompanySite"
                                 && field.TypeAsString == "Lookup"
                                 && (field.InternalName.StartsWith("TopTab")
                                  || field.InternalName.StartsWith("BottomTab")))
                                {
                                    fieldsToModify.Add(field);
                                }
                            }
                            for (int i = 0; i < fieldsToModify.Count; ++i)
                            {
                                SPFieldLookup fieldLookup = fieldsToModify[i] as SPFieldLookup;
                                fieldLookup.LookupWebId = web.ID;
                                fieldLookup.LookupList = pagesList.ID.ToString("b");
                                fieldLookup.Update(true);
    
                            }
                        }
                    }
                }
            }
    
    The above code is copied 1:1 with the exception of the field.Group which I have changed (since it identified the customer).

     


    • Edited by ChristianPN Thursday, December 15, 2011 3:37 PM
    Thursday, December 15, 2011 3:36 PM