Saturday, September 24, 2011

SharePoint 2007–Errors Creating Site And Approving Workflow

An user told me that she was getting the following error when she tried to create site or workspace.

Operation aborted (Exception from HRESULT: 0x80004004 (E_ABORT))

E_ABORT

When she tried to approve a workflow, she was getting the following error.

The workflow failed to start due to an internal error.

WorkflowInternalError

So I started to work on the first error (Operation aborted (Exception from HRESULT: 0x80004004 (E_ABORT))).  I searched the Internet and all results point to database issues.  Some of possible reasons for causing this error are:

  • The database or log file is hitting the limit and has no space to grow.
  • The xact abort option of the SQL Server was turned on.

We have set to let the database and log to auto grow and there is plenty of space for it to do so.  I checked the xact abort option and it was off.  I was totally clueless until I found the tool SPTraceView.  SPTraceView analyses in real time the ULS (Unified Logging Service) trace messages coming from all MOSS components and it can be a really handy tool for troubleshooting.  I downloaded the tool and ran it on the web front end servers.  I tried to create site and approve a workflow, got the error messages and went back to check the log created by SPTraceView.  Below are the error messages extracted out from the log which is related to the issues.

image

The first error message was triggered when approving a workflow and the second one was triggered by creating a new site.  Yes, both were database related error.  There was missing stored procedure and stored procedure expecting less parameters.  My first thought was can it be a database corruption?  So I decided to check on the proc_UpdateListSettings stored procedure in the content database.  I compared the values passed into the stored procedure with the number of parameters that the stored procedure is expecting and there is indeed a mismatch in number.  An additional value was passed to the stored procedure!

Values passed to the procedure

Parameters of the procedure

8951DBD6-F166-4A02-B9E8-44ED3C6972F9'

@SiteId uniqueidentifier

'2288D88D-F9D4-43D8-975C-BE6040F38AFF'

@WebId uniqueidentifier

N'{2E73B6F0-9E74-494F-B6D8-8C81508ED125}'

@ListId uniqueidentifier

1

@BaseType int

101

@ServerTemplate int

NULL

@Title nvarchar(255)

NULL

@ReadSecurity int

NULL

@WriteSecurity int

NULL

@NewDefaultView uniqueidentifier

NULL

@Description ntext

N'site/cool/test/Shared Documents/Forms'

@TemplateDirName nvarchar(256)

N'template.doc'

@TemplateLeafName nvarchar(128)

NULL

@Fields ntext

NULL

@Direction int

NULL

@EventSinkAssembly nvarchar(255)

NULL

@EventSinkClass nvarchar(255)

NULL

@EventSinkData nvarchar(255)

67112968

@Flags bigint

NULL

@ImageUrl nvarchar(255)

NULL

@ThumbnailSize int

NULL

@WebImageWidth int

NULL

@WebImageHeight int

0

@Version int

0

@ConvertToGlobalMtgDataList bit

NULL

@EmailInsertsFolder nvarchar(255)

NULL

@EmailInsertsLastSyncTime nvarchar(50)

NULL

@EmailAlias nvarchar(128)

NULL

@SendToLocation nvarchar(512)

1004

@NavBarEid int

NULL

@AddOrRemoveFromNavBar bit

0

@UseRootFolderForNav bit

NULL

@MajorVersionCount int

NULL

@MajorMinorVersionCount int

NULL

@WorkFlowId uniqueidentifier

0

@RemoveSystemAlerts bit

NULL

 

I went to check on other content databases and all are having the missing parameter.  So it is not isolated to just one database.  There must be some changes on the web front end which did not get updated on the backend databases.  I scanned through the Add/Remove programmes and found 4 security updates were installed over the weekend.  The 4 security updates are  KB2508964, KB2493987, KB2553003 and KB2553001.  The Microsoft Security Bulletin MS11-074 has more information regarding these updates.

MOSSUpdate

After some analysis, I found out that KB2493987 is the one that caused the changes.  The problem was all these security updates were installed automatically.  However after the installation, someone needs to manually run the SharePoint Products and Technologies Configuration Wizard to complete the upgrade.  In this case, the KB2493987 installation changed the web front end but because no one run the SharePoint Products and Technologies Configuration Wizard so the databases did not get updated.

After running the SharePoint Products and Technologies Configuration Wizard to complete the upgrade, I did a check on the proc_UpdateListSettings stored procedure and I saw the missing parameter @LastItemModifiedDate datetime being added.

I tried creating site and approving workflow after the upgrade and everything is working fine.

10 comments:

lmcglinchey said...

I haven't run the wizard yet but I'm sure it will fix my problem. I was only trying to rename a list title and got the same errors. The patch was applied on 9/22 which was the same day I made my first attempt at changing the title. Thanks so much!

Laura

Daniel said...

Great post! You saved me a ton of research. Spot on solution to what appeared to be a "corrupt SharePoint database" issue.

Ingo said...

Thank you for posting this clear explanation!

Bruno said...

Great post! You saved me a ton of research, but unfortunately I have not jet solved my problem in my Share Point Services 3.0.

I am not able to edit versioning properties of any "document library" since few days ago. My log confirms that I have your same problem ("Procedure or function proc_UpdateListSettings has too many arguments specified").
Yesterday I installed the SP3 and then I ran the wizard but the problem was not solved.

Note: Some year ago I installed the database in the default database engine (Microsoft SSEE) but one year ago I move the content database to SQL SERVER 2005. Everything worked good up to few days ago.

Any suggestions?

Thank you,

Bruno

Alex Siow said...

Hi Bruno, did the psconfig wizard complete without error? You might want to review the PSCDiagnostics_Datecode.log and Upgrade.log in the "Program Files\Common Files\Microsoft Shared\Web server extensions\12\LOGS" folder. Take a look at http://support.microsoft.com/kb/944267 on how to troubleshoot the upgrade.

You might need to do a force upgrade by running:
psconfig -cmd upgrade -inplace b2b -wait –force

or even:
stsadm -o upgrade -inplace -forceupgrade

Jens said...

Hi

I have this very problem and I solved awhile back on our test-environment consisting only of 1 server.

I solved it running the following two lines from Sharepoints bin folder:
psconfig -cmd secureresources
psconfig -cmd upgrade -inplace b2b

However, now I have to solve the same problem in our production environment having 3 servers. I'll call the one hosting the central administration the "backend server" in the following.

Since I don't have a similar farmset to practice on and I find it a little hard to come by relevant documentation I would like to know the following:

(first of all my plan is to run the SP Prod and Tech Conf wizard using the "GUI interface" to start with - I did'nt do this on the the test-environment and maybe thats good enough)

1. Should I start the SharePoint Products and Tech conf wizard on all three servers in some fashion or should it be enough to only run it on the backend server?

2. If I end up calling psconfig on a command prompt - should I do it on all three servers?

Alex Siow said...

Hi Jens,

I assumed that your “backend server” is a server with SharePoint installed and not referring to the SQL Server backend database. And all 3 servers are in the same farm.

You need to first make sure all your SharePoint servers have the same level of SharePoint patches applied.

Running SharePoint Products and Tech conf wizard on your backend server should be good enough. PSConfig is actually the same as SharePoint Products and Tech conf wizard.

Jens said...

Correct, I mean the server that has Sharepoint installed. All servers are in the same farm.
Yes, I know about psconfig.
Thanks for you answer :-)

Br.
Jens

Alex Siow said...

Hope that everything goes well for you :)

Jonathan C. Gillespie said...

Thanks so much for sharing this. Believe it or not, we only just now encountered this on one of our sharepoint servers. I appreciate the detail in your post.