Search

All TFS E-mail notifications stop because of any exception regarding a user alert or user identity by Alex Vezenkov

Closed
as Fixed Help for as Fixed

4
0
Sign in
to vote
Type: Bug
ID: 779506
Opened: 2/19/2013 5:52:19 AM
Access Restriction: Public
2
Workaround(s)
2
User(s) can reproduce this bug
Hi TFS gurus,

I am a DevOp at Infragistics and have fun with TFS every day :) One issue that worries me is that when there is a wrong alert of any user the whole e-mail alert system stops. I've been able to identify a few exceptions by querying the [Tfs_Configuration].[tbl_JobHistory] ResultMessage for the notifications job guid:

TF400797: Job extension had an unhandled error: System.ArgumentException: parsing ".*INFRAGISTICS\User.*" - Malformed \p{X} character escape.     at System.Text.RegularExpressions.RegexParser.ParseProperty()     at System.Text.RegularExpressions.RegexParser.ScanBackslash()     at System.Text.RegularExpressions.RegexParser.ScanRegex()     at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)     at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, TimeSpan matchTimeout, Boolean useCache)     at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern, RegexOptions options, TimeSpan matchTimeout)     at Microsoft.TeamFoundation.Framework.Server.Alm.StringFieldCondition.EvaluateOneValue(Object fieldValue)     at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.Matches(TeamFoundationRequestContext requestContext, Subscription subscription, TeamFoundationEvent teamFoundationEvent, TeamFoundationIdentity subscriber)     at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.ExpandEvents(TeamFoundationRequestContext requestContext)     at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime jobQueueTime, String& resultMessage)     at Microsoft.TeamFoundation.Framework.Server.JobRunner.ExecuteJob()

TF400797: Job extension had an unhandled error: Microsoft.TeamFoundation.Framework.Server.IdentityNotFoundException: TF14045: The identity with TeamFoundationId c93ecfd0-4a43-424a-xxxx-3d7154da5a45 could not be found.     at Microsoft.TeamFoundation.Framework.Server.Subscription.AfterReadSubscription(TeamFoundationRequestContext requestContext)     at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.ExpandEvents(TeamFoundationRequestContext requestContext)     at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime jobQueueTime, String& resultMessage)     at Microsoft.TeamFoundation.Framework.Server.JobRunner.ExecuteJob()

I've fixed both. The first by going to the User's alerts and removing the "Contain" filters. The second by removing the ex-employee subsciptions (it was a deleted domain user) by running:
bissubscribe.exe /unsubscribe /id 1234 /collection http://localhost:8080/tfs/collection

However this is a very blocking issue and is annoying.

Thanks,
Alex
Details (expand)

Visual Studio/Team Foundation Server/.NET Framework Tooling Version

Team Foundation Server 2012

Steps to reproduce

Break an alert or remove an existing domain user that has TFS identity with alerts.

Product Language

English

Operating System

Windows Server 2008 R2 SP1

Operating System Language

English

Actual results

All notifications stop.

Expected results

Notifications for the other users continue. There is an exception logged for the failure for this specific user/alert.
File Attachments
0 attachments
Sign in to post a comment.
Posted by Microsoft on 2/20/2013 at 1:42 AM
Thanks for your feedback.

We are rerouting this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.
Posted by Microsoft on 2/19/2013 at 6:50 AM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Sign in to post a workaround.
Posted by Alex Vezenkov on 2/22/2013 at 6:06 AM
I did the same, but this is a workaround, I have it explained in the bug description actually :
" I've been able to identify a few exceptions by querying the [Tfs_Configuration].[tbl_JobHistory] ResultMessage "
" I've fixed both. The first by going to the User's alerts and removing the "Contain" filters. The second by removing the ex-employee subsciptions (it was a deleted domain user) by running: bissubscribe.exe /unsubscribe /id 1234 /collection http://localhost:8080/tfs/collection "
Posted by RobCannon on 2/20/2013 at 8:23 AM
I had to find the TFS Id (a Guid) as part of the ResultMessage column with this query:

SELECT TOP 1000 *
FROM [Tfs_2012_Configuration].[dbo].[tbl_JobHistory]
where StartTime > '02/18/2013'
and Result <> 0

I was then able to find the subscription ids with this query from our collection database:

SELECT *
FROM [Tfs_SalesSolutions].[dbo].[tbl_EventSubscription]
where subscriberid = 'dab143c8-5673-4262-bfe6-6f01e8318d77'

Finally, this command was used to delete the subscriptions

BisSubscribe.exe /unsubscribe /id 224 /collection http://foundation-tfs.turner.com:8080/tfs/SalesSolutions: