Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeUsing DNN Platf...Using DNN Platf...Administration ...Administration ...Reproducible bug in Newsletter module, verified by MicrosoftReproducible bug in Newsletter module, verified by Microsoft
Previous
 
Next
New Post
6/21/2010 4:15 PM
 

I have been experiencing an issue with my DNN site where the IIS worker process would peg out the CPU and get stuck there, causing the site to stop responding until I did an IISReset. I absolutely could not figure out what was going on so I had to use a support instance with Microsoft for them to analysis the File Dumps I was taking on the worker process while it was failing. This is what they found.

 

Here are the exact call stacks from each dump…

0:020> !clrstack

OS Thread Id: 0xc1c (20)

Child-SP         RetAddr          Call Site

00000000227ddaf0 000007fef4d8e3e4 DynamicClass.Go7(System.Text.RegularExpressions.RegexRunner)

00000000227ddb90 000007fef4d8e112 System.Text.RegularExpressions.RegexRunner.Scan(System.Text.RegularExpressions.Regex, System.String, Int32, Int32, Int32, Int32, Boolean)

00000000227ddbe0 000007fef4d5b174 System.Text.RegularExpressions.Regex.Run(Boolean, Int32, System.String, Int32, Int32, Int32)

00000000227ddc80 000007ff0130c495 System.Text.RegularExpressions.Regex.IsMatch(System.String)

00000000227ddce0 000007ff0130c0d9 DotNetNuke.Common.Utilities.HtmlUtils.IsHtml(System.String)

00000000227ddd10 000007ff0130bc6f DotNetNuke.Services.Mail.Mail.SendEmail(System.String, System.String, System.String, System.String, System.String)

00000000227dddc0 000007ff0130a9d7 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendConfirmationMail(Int32, Int32, Int32, System.String, System.String, System.String, System.String)

00000000227dde60 000007ff01309fbc DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendMails()

00000000227de040 000007fef625c978 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.Send()

00000000227de070 000007fef7fe1552 System.Threading.ExecutionContext.runTryCode(System.Object)

00000000227de920 000007fef62d95fd System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

00000000227de970 000007fef7fe1552 System.Threading.ThreadHelper.ThreadStart()

 

0:020> !clrstack

OS Thread Id: 0xcf0 (20)

Child-SP         RetAddr          Call Site

00000000224ddb30 000007fef4d8e85b System.Text.RegularExpressions.RegexCharClass.CharInClassInternal(Char, System.String, Int32, Int32, Int32)

00000000224ddb80 000007ff009a6894 System.Text.RegularExpressions.RegexCharClass.CharInClassRecursive(Char, System.String, Int32)

00000000224ddbf0 000007fef4d8e3e4 DynamicClass.Go20(System.Text.RegularExpressions.RegexRunner)

00000000224ddc90 000007fef4d8e112 System.Text.RegularExpressions.RegexRunner.Scan(System.Text.RegularExpressions.Regex, System.String, Int32, Int32, Int32, Int32, Boolean)

00000000224ddce0 000007fef4d5b174 System.Text.RegularExpressions.Regex.Run(Boolean, Int32, System.String, Int32, Int32, Int32)

00000000224ddd80 000007ff00f855a5 System.Text.RegularExpressions.Regex.IsMatch(System.String)

00000000224ddde0 000007ff00f851e9 DotNetNuke.Common.Utilities.HtmlUtils.IsHtml(System.String)

00000000224dde10 000007ff013a5aaf DotNetNuke.Services.Mail.Mail.SendEmail(System.String, System.String, System.String, System.String, System.String)

00000000224ddec0 000007ff013a4897 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendConfirmationMail(Int32, Int32, Int32, System.String, System.String, System.String, System.String)

00000000224ddf60 000007ff013a3e7c DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendMails()

00000000224de140 000007fef625c978 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.Send()

00000000224de170 000007fef7fe1552 System.Threading.ExecutionContext.runTryCode(System.Object)

00000000224dea20 000007fef62d95fd System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

00000000224dea70 000007fef7fe1552 System.Threading.ThreadHelper.ThreadStart()

 

0:020> !clrstack

OS Thread Id: 0x2c0 (20)

Child-SP         RetAddr          Call Site

000000002224d9a0 000007fef4d8e3e4 DynamicClass.Go20(System.Text.RegularExpressions.RegexRunner)

000000002224da40 000007fef4d8e112 System.Text.RegularExpressions.RegexRunner.Scan(System.Text.RegularExpressions.Regex, System.String, Int32, Int32, Int32, Int32, Boolean)

000000002224da90 000007fef4d5b174 System.Text.RegularExpressions.Regex.Run(Boolean, Int32, System.String, Int32, Int32, Int32)

000000002224db30 000007ff010a98f5 System.Text.RegularExpressions.Regex.IsMatch(System.String)

000000002224db90 000007ff010a9539 DotNetNuke.Common.Utilities.HtmlUtils.IsHtml(System.String)

000000002224dbc0 000007ff010a90cf DotNetNuke.Services.Mail.Mail.SendEmail(System.String, System.String, System.String, System.String, System.String)

000000002224dc70 000007ff010a7c77 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendConfirmationMail(Int32, Int32, Int32, System.String, System.String, System.String, System.String)

000000002224dd10 000007ff010a725c DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendMails()

000000002224def0 000007fef625c978 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.Send()

000000002224df20 000007fef7fe1552 System.Threading.ExecutionContext.runTryCode(System.Object)

000000002224e7d0 000007fef62d95fd System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

000000002224e820 000007fef7fe1552 System.Threading.ThreadHelper.ThreadStart()

 

0:020> !clrstack

OS Thread Id: 0x2c0 (20)

Child-SP         RetAddr          Call Site

000000002224d958 000007fef6262afe System.Globalization.CultureInfo.get_TextInfo()

000000002224d960 000007ff00a00be3 System.Char.ToLower(Char, System.Globalization.CultureInfo)

000000002224d9a0 000007fef4d8e3e4 DynamicClass.Go20(System.Text.RegularExpressions.RegexRunner)

000000002224da40 000007fef4d8e112 System.Text.RegularExpressions.RegexRunner.Scan(System.Text.RegularExpressions.Regex, System.String, Int32, Int32, Int32, Int32, Boolean)

000000002224da90 000007fef4d5b174 System.Text.RegularExpressions.Regex.Run(Boolean, Int32, System.String, Int32, Int32, Int32)

000000002224db30 000007ff010a98f5 System.Text.RegularExpressions.Regex.IsMatch(System.String)

000000002224db90 000007ff010a9539 DotNetNuke.Common.Utilities.HtmlUtils.IsHtml(System.String)

000000002224dbc0 000007ff010a90cf DotNetNuke.Services.Mail.Mail.SendEmail(System.String, System.String, System.String, System.String, System.String)

000000002224dc70 000007ff010a7c77 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendConfirmationMail(Int32, Int32, Int32, System.String, System.String, System.String, System.String)

000000002224dd10 000007ff010a725c DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendMails()

000000002224def0 000007fef625c978 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.Send()

000000002224df20 000007fef7fe1552 System.Threading.ExecutionContext.runTryCode(System.Object)

000000002224e7d0 000007fef62d95fd System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

000000002224e820 000007fef7fe1552 System.Threading.ThreadHelper.ThreadStart()

 

0:019> !clrstack

OS Thread Id: 0x2c0 (19)

Child-SP         RetAddr          Call Site

000000002224d880 000007fef4d8e9b9 System.Char.GetUnicodeCategory(Char)

000000002224d8c0 000007fef4d8e85b System.Text.RegularExpressions.RegexCharClass.CharInCategory(Char, System.String, Int32, Int32, Int32)

000000002224d930 000007ff00a00a94 System.Text.RegularExpressions.RegexCharClass.CharInClassRecursive(Char, System.String, Int32)

000000002224d9a0 000007fef4d8e3e4 DynamicClass.Go20(System.Text.RegularExpressions.RegexRunner)

000000002224da40 000007fef4d8e112 System.Text.RegularExpressions.RegexRunner.Scan(System.Text.RegularExpressions.Regex, System.String, Int32, Int32, Int32, Int32, Boolean)

000000002224da90 000007fef4d5b174 System.Text.RegularExpressions.Regex.Run(Boolean, Int32, System.String, Int32, Int32, Int32)

000000002224db30 000007ff010a98f5 System.Text.RegularExpressions.Regex.IsMatch(System.String)

000000002224db90 000007ff010a9539 DotNetNuke.Common.Utilities.HtmlUtils.IsHtml(System.String)

000000002224dbc0 000007ff010a90cf DotNetNuke.Services.Mail.Mail.SendEmail(System.String, System.String, System.String, System.String, System.String)

000000002224dc70 000007ff010a7c77 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendConfirmationMail(Int32, Int32, Int32, System.String, System.String, System.String, System.String)

000000002224dd10 000007ff010a725c DotNetNuke.Services.Mail.SendTokenizedBulkEmail.SendMails()

000000002224def0 000007fef625c978 DotNetNuke.Services.Mail.SendTokenizedBulkEmail.Send()

000000002224df20 000007fef7fe1552 System.Threading.ExecutionContext.runTryCode(System.Object)

000000002224e7d0 000007fef62d95fd System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

000000002224e820 000007fef7fe1552 System.Threading.ThreadHelper.ThreadStart()


Here’s the string from the confirmation e-mail that caused the issue this time…

 

<h1>Bulkmail Report</h1>

           Operation started at: 6/15/2010 9:44:10 AM<br>

           EmailRecipients: 2<br>

           EmailMessages: 2<br>

           Operation completed: 6/15/2010 9:44:10 AM<br>

          

           <br>

           Status Report: <br>

           <pre>No errors occured during sending.</pre>

           <hr><b>Recipients:</B><br>Kristin.e.taylor@gmail.com<br />caleb@falkon.net<br />
 

 

Passing the above string to the function below is all it takes to reproduce the issue.

 

        private static Regex HtmlDetectionRegex = new Regex(@"<([A-Z][A-Z0-9]*)(.*\s*)*</([A-Z][A-Z0-9]*)", RegexOptions.Compiled | RegexOptions.IgnoreCase);

 

        public static bool IsHtml(string text)

        {

            if (string.IsNullOrEmpty(text))

            {

                return false;

            }

            return HtmlDetectionRegex.IsMatch(text);

        }


I will no longer be using the newsletter module but I thought that this would be good information for you.

 
New Post
6/22/2010 11:39 AM
 
Just wanted to keep this towards the top so an admin will see it.
 
New Post
6/22/2010 3:21 PM
 
Please post this issue to Support.DotNetNuke.com ... create a issue and provide the details about DNN Version etc.   This way is will not get lost.

Also, if you have a suggestion to fix the issue, please include the idea (or code).

Thanks,
Paul.
 
New Post
6/22/2010 3:34 PM
 
http://support.dotnetnuke.com/issue/ViewIssue.aspx?id=12826&PROJID=2 Done
 
New Post
8/7/2010 1:47 AM
 
Hi guys... A few things on this. 1. I think that this issue still exists in 5.4.4. Its been discussed on several threads, specifically this other gemini listing:

http://support.dotnetnuke.com/issue/ViewIssue.aspx?ID=12939&PROJID=2

Also several threads: http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/108/postid/377130/scope/posts/Default.aspx

http://www.dnncreative.com/Forum/tabid/88/forumid/13/tpage/1/view/topic/postid/27485/Default.aspx#27556

http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/108/postid/378703/scope/posts/Default.aspx

 http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/108/threadid/377897/scope/posts/Default.aspx

2. Typically when this happens this is the exact error that is rendered under the log viewer: ystem.Threading.ThreadAbortException: Thread was being aborted. at System.AppDomain.GetId() at System.Threading.Thread.get_CurrentCulture() at Go51(RegexRunner ) at System.Text.RegularExpressions.CompiledRegexRunner.Go() at System.Text.RegularExpressions.RegexRunner.Scan(Regex regex, String text, Int32 textbeg, Int32 textend, Int32 textstart, Int32 prevlen, Boolean quick) at System.Text.RegularExpressions.Regex.Run(Boolean quick, Int32 prevlen, String input, Int32 beginning, Int32 length, Int32 startat) at System.Text.RegularExpressions.Regex.IsMatch(String input) at DotNetNuke.Common.Utilities.HtmlUtils.IsHtml(String text) at DotNetNuke.Services.Mail.Mail.SendMail(String MailFrom, String MailTo, String Cc, String Bcc, String ReplyTo, MailPriority Priority, String Subject, MailFormat BodyFormat, Encoding BodyEncoding, String Body, List`1 Attachments, String SMTPServer, String SMTPAuthentication, String SMTPUsername, String SMTPPassword, Boolean SMTPEnableSSL)

3. As far as I can tell the most recent beta version of 5.5 still does have this issue, or at least it has the exact same email function calls calling IsHTML from Common.Utilities.HTMLUtils.IsHTML which is this: Public Shared Function IsHtml(ByVal text As String) As Boolean If (String.IsNullOrEmpty(text)) Then Return False End If Return True Return HtmlDetectionRegex.IsMatch(text) End Function


So... Just wanting to make sure this is kept alive.


 -Chad
 
Previous
 
Next
HomeHomeUsing DNN Platf...Using DNN Platf...Administration ...Administration ...Reproducible bug in Newsletter module, verified by MicrosoftReproducible bug in Newsletter module, verified by Microsoft


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out