Regular Expression View Model Attributes Cause Slow Page Loads on Azure

Using rc1-final here. Azure Web App, 64 bit. Small instance.
I have discovered something very weird with our Azure website recently. I started noticing that some pages were slow to load once deployed to our remote azure environment -- even just plain static ones that did nothing but render a form.
After debugging by process of elimination, I have discovered that any of our page forms that are bound to a view model that has a property marked with [EmailAddress] causes a significant slowdown in server rendering time for that page. I cannot reproduce this on my local machine. It only seems to happen after we deploy to Azure.
After further investigation, it seems that just marking the view model property with a [RegularExpression] attribute causes the same slowdown.
See the following for examples:
EmailTest ([EmailAddress] attribute, slow)
EmailTest2 (no attribute, fast)
EmailTest3 ([RegularExpression] attribute, slow, using same RegEx from EmailAddress attribute)
EmailTest4 ([RegularExpression] attribute, slow, using a different email address RegEx)
EmailTest5 (5 properties with [EmailAddress] attribute, VERY slow)
As you can see from the examples above, EmailTest2 has significantly faster load time compared to the others. As seen with EmailTest5, the load times get even worse as you add more bound properties to the page/model that have the [EmailAddress] attribute.
Another weird part is that I cannot reproduce this if I create a new vanilla ASP.NET web project with the same tests deployed to Azure. Any ideas on what is going on here?
Code from these examples:
Controllers/Models:
public class EmailTestController : Controller
{
    [Route( "~/emailtest" )]
    public IActionResult EmailTest()
    {
        return View();
    }

    [Route( "~/emailtest2" )]
    public IActionResult EmailTest2()
    {
        return View();
    }

    [Route( "~/emailtest3" )]
    public IActionResult EmailTest3()
    {
        return View();
    }

    [Route( "~/emailtest4" )]
    public IActionResult EmailTest4()
    {
        return View();
    }

    [Route( "~/emailtest5" )]
    public IActionResult EmailTest5()
    {
        return View();
    }
}

public class EmailTestViewModel
{
    [EmailAddress]
    public string Email { get; set; }
}

public class EmailTestViewModel2
{
    public string Email { get; set; }
}

public class EmailTestViewModel3
{
    [RegularExpression( @"^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$", ErrorMessage = "Email invalid." )]
    public string Email { get; set; }
}

public class EmailTestViewModel4
{
    [RegularExpression( @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Email invalid." )]
    public string Email { get; set; }
}

public class EmailTestViewModel5
{
    [EmailAddress]
    public string Email { get; set; }

    [EmailAddress]
    public string Email2 { get; set; }

    [EmailAddress]
    public string Email3 { get; set; }

    [EmailAddress]
    public string Email4 { get; set; }

    [EmailAddress]
    public string Email5 { get; set; }
}

Views:
1
@model Web.Controllers.EmailTestViewModel
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest View

    <form>

        <input asp-for="Email" />

        <button type="submit">Submit</button>
    </form>

2
@model Web.Controllers.EmailTestViewModel2
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest2 View

    <form>

        <input asp-for="Email" />

        <button type="submit">Submit</button>
    </form>

3
@model Web.Controllers.EmailTestViewModel3
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest3 View

    <form>

        <input asp-for="Email" />

        <button type="submit">Submit</button>
    </form>

4
@model Web.Controllers.EmailTestViewModel4
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest4 View

    <form>

        <input asp-for="Email" />

        <button type="submit">Submit</button>
    </form>

5
@model Web.Controllers.EmailTestViewModel5
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest5 View

    <form>

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <button type="submit">Submit</button>
    </form>

@kspearrin we've done some work in RC2 which should reduce MVC's direct contribution here. But I'm not positive it will help these cases.
Before measuring this ourselves, do you have any requests-per-second numbers for the different cases? Have you measured how much time is spent in the EmailAddressAttribute or RegularExpressionAttributer code? (Those attributes are from the dotnet/corefx repo.)
Also, are you testing with desktop .NET or .NET Core?

@dougbu I'm not really sure what you mean by RPS numbers here. I have not measured anything specific other than just manual observation and trial and error testing to reproduce what you see linked in my original posting.
I am using regular desktop .NET CLR. I do not have .NET Core referenced in this project at all.
Do you have any knowledge as to why this would happen on the rc1 project links I posted above but not be reproducible on a new vanilla rc1 project? I really wanted to have a reproducible project to attach to this issue for you guys to look at, but unfortunately I can only get it to happen on the project linked above, which is not public source.
Any workarounds or suggestions you could give to solve this problem in the interim (I kinda need some regex validation)?

@kspearrin that's fine. Since you provided so much information, I was wondering if you had even more!
I'm not sure why the new application would behave differently from the old. Guess it's possible something changed between RC1-final and RC1-update1. Do the two applications contain identical code? Did the newer one pick up any different package versions (visible in dnu list)?
Until we check whether any consistent issues exist w/ [RegularExpression] in RC2, you have two ways forward:

Chalk the issue up to an issue in the older application: Recreate your deployed application using the latest templates et cetera.
Create your own [Validation] subclass with a bespoke IsValid() method checking the input syntax.

The affected application is a pretty large project that has been built out with a lot of components: authentication, areas, some middlewares, localization, SQL data access, etc. There are a ton of things that could be a culprit vs the new unaffected project which is just the standard rc1 new project template. Since I am not very familiar with how MVC/Razor/whatever works with binding these view model attributes, I can't think of any components I'm using in this project that would cause something like this to happen. I don't think that I am doing anything out of the ordinary.
I have tried to eliminate most of the components of this project by creating the very basic pages from the code you see posted above, but I suppose there may be other things that still get executed in the pipeline that could be a contributor.
I'm happy to continue to do more testing to try to pinpoint the problem, but without some direction as to where I should be looking/doing it makes this a very long trial and error process (mainly because I cannot seem to reproduce this locally on my machine -- I have to deploy this thing to Azure every time and just observe).

If you have the source of the application, I suggest deploying it locally and measuring with a tool like Jet Brains' dotTrace. See where the time is actually spent.
Or you could instrument the app itself. Since you suspect the bulk of the response time is spent in [EmailAddress] and [RegularExpression], you might subclass those attributes, override the virtual methods, and wrap the base calls with code to see how many times they're invoked and how long they take.

Good idea on the subclassing. I will give that a try first.

@dougbu I created the following new tests that subclass from RegularExpressionAttribute. Both of these are fast.
EmailTest6 (custom [Regex] attribute, fast, using same RegEx from EmailAddress attribute)
EmailTest7 (custom [Regex], fast, using a different email address RegEx)
What else is happening with RegularExpressionAttribute that isn't with my RegexAttribute? What about whatever client side validation stuff that gets generated for RegularExpressionAttribute?
Subclassed Attribute
    public class RegexAttribute : RegularExpressionAttribute
    {
        public RegexAttribute( string pattern )
            : base( pattern )
        { }

        public override string FormatErrorMessage( string name )
        {
            var sw = Stopwatch.StartNew();
            var message = base.FormatErrorMessage( name );
            sw.Stop();
            Trace.TraceInformation( "[RegexAttribute] FormatErrorMessage: {0}", sw.ElapsedMilliseconds );
            return message;
        }

        public override bool IsValid( object value )
        {
            var sw = Stopwatch.StartNew();
            var valid = base.IsValid( value );
            sw.Stop();
            Trace.TraceInformation( "[RegexAttribute] IsValid: {0}", sw.ElapsedMilliseconds );
            return valid;
        }
    }

Controller Actions
        [Route( "~/emailtest6" )]
        public IActionResult EmailTest6()
        {
            return View();
        }

        [Route( "~/emailtest7" )]
        public IActionResult EmailTest7()
        {
            return View();
        }

Models
public class EmailTestViewModel6
    {
        [Regex( @"^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$", ErrorMessage = "Email invalid." )]
        public string Email { get; set; }
    }

    public class EmailTestViewModel7
    {
        [Regex( @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Email invalid." )]
        public string Email { get; set; }
    }

Views
6
@model Web.Controllers.EmailTestViewModel6
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest6 View

    <form>

        <input asp-for="Email" />

        <button type="submit">Submit</button>
    </form>

7
@model Web.Controllers.EmailTestViewModel7
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest7 View

    <form>

        <input asp-for="Email" />

        <button type="submit">Submit</button>
    </form>

What about whatever client side validation stuff that gets generated for RegularExpressionAttribute?

Yes, there could be an issue there. Or perhaps there was a performance issue in rc1-final and rc1-update1. Can't be sure without a fair amount of testing.

Your test highlights a quirk: We generate client-side validation for RegularExpressionAttribute (and other specific validation attributes) but not for RegularExpressionAttribute subclasses. @Eilon is that the intended behaviour?

By the way, I cannot subclass EmailAddressAttribute since it is sealed.
https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.Annotations/src/System/ComponentModel/DataAnnotations/EmailAddressAttribute.cs

There's no real difference between rc1-final and rc1-update1, so that is an unlikely avenue.
I believe the client side validation adapters don't support sub-classes because there's no way to know if the subclass can use the same client logic. If the server type is different, what are the odds that the client could use the exact same code?

Some new findings with other validation attributes that also generate client side validation:
StringLengthTest (StringLengthAttribute, fast)
PhoneTest (PhoneAttribute, slow)
Actions
        [Route( "~/stringlengthtest" )]
        public IActionResult StringLengthTest()
        {
            return View();
        }

        [Route( "~/phonetest" )]
        public IActionResult PhoneTest()
        {
            return View();
        }

Models
    public class StringLengthTestViewModel
    {
        [StringLength( 10 )]
        public string Email { get; set; }

        [StringLength( 9 )]
        public string Email2 { get; set; }

        [StringLength( 8 )]
        public string Email3 { get; set; }

        [StringLength( 7 )]
        public string Email4 { get; set; }

        [StringLength( 6 )]
        public string Email5 { get; set; }
    }

    public class PhoneTestViewModel
    {
        [Phone]
        public string Email { get; set; }

        [Phone]
        public string Email2 { get; set; }

        [Phone]
        public string Email3 { get; set; }

        [Phone]
        public string Email4 { get; set; }

        [Phone]
        public string Email5 { get; set; }
    }

Views
String length
@model Web.Controllers.StringLengthTestViewModel
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

StringLength View

    <form>

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <button type="submit">Submit</button>
    </form>

Phone
@model Web.Controllers.PhoneTestViewModel
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

PhoneTest View

    <form>

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <button type="submit">Submit</button>
    </form>

More weirdness with StringLengthAttribute has been discovered. StringLength works fine and is fast until you add a custom ErrorMessage to it. Then it gets slow. See the following tests:
StringLengthTest (StringLengthAttribute, default error message, fast)
StringLengthTest2 (StringLengthAttribute, custom error message, sloooooow)
Controller Actions
        [Route( "~/stringlengthtest" )]
        public IActionResult StringLengthTest()
        {
            return View();
        }

        [Route( "~/stringlengthtest2" )]
        public IActionResult StringLengthTest2()
        {
            return View();
        }

Models
    public class StringLengthTestViewModel
    {
        [StringLength( 10 )]
        public string Email { get; set; }

        [StringLength( 9 )]
        public string Email2 { get; set; }

        [StringLength( 8 )]
        public string Email3 { get; set; }

        [StringLength( 7 )]
        public string Email4 { get; set; }

        [StringLength( 6 )]
        public string Email5 { get; set; }
    }

    public class StringLengthTestViewModel2
    {
        [StringLength( 10, ErrorMessage = "Length must be less than or equal to 10." )]
        public string Email { get; set; }

        [StringLength( 9, ErrorMessage = "Length must be less than or equal to 9." )]
        public string Email2 { get; set; }

        [StringLength( 8, ErrorMessage = "Length must be less than or equal to 8." )]
        public string Email3 { get; set; }

        [StringLength( 7, ErrorMessage = "Length must be less than or equal to 7." )]
        public string Email4 { get; set; }

        [StringLength( 6, ErrorMessage = "Length must be less than or equal to 6." )]
        public string Email5 { get; set; }
    }

Views
Only difference is the models.
1
@model Web.Controllers.StringLengthTestViewModel
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

StringLength View

    <form>

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <button type="submit">Submit</button>
    </form>

2
@model Web.Controllers.StringLengthTestViewModel2
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

StringLength View

    <form>

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <button type="submit">Submit</button>
    </form>

I'm unable to reproduce a significant slowdown using 3 [Validation]s including one [RegularExpression] or [Email]. These attributes and our infrastructure around them account for less than ~3% of the execution time, measuring both RC1 with full .NET and (better) RC2 with .NET Core. I'm measuring a simple but fairly realistic scenario using dotTrace after the application is somewhat warmed up. "Simple" because the model is a POCO with only 4 properties. "Fairly realistic" because the service includes antiforgery token validation and EntityFramework with a localDb database. So, a bit like EmailTestViewModel or EmailTestViewModel3 but with more in the application.
It's possible there's something odd when deployed to Azure. But are you observing startup times or latency of the first couple of requests?
FYI when using .NET CLI with .NET Core, all calls related to validation attributes amount to a tad over 2% of the execution time. Getting client-side validation attributes accounts for less than 1.75%; calling IsValid() about 0.3%. Used [RegularExpression] here because CoreFx has a significantly more efficient [Email] with a shorter default error message and no RegEx.
Filed #4240 about memory allocation when generating attributes for client-side validation with long error messages. [RegularExpression] can hit this case but I don't see anything similar w.r.t. execution times.

As you can see from the links to the test pages in my posts above, this is definitely happening after the initial warmup of the application. No matter how many times you access the pages they are still just as slow.
Did you see my latest update above about the ErrorMessage of the StringLengthAttribute? I feel like that can help with pinpointing the problem a bit more. What are the differences in execution with ErrorMessage vs no ErrorMessage?
Again, all of this does not seem to present itself to me until i publish the application to Azure. Do you have any suggestions on how I can profile this to gather any more intel while it live in that environment? What part of the Mvc library is responsible for this?

latest update above about the ErrorMessage of the StringLengthAttribute

No, I have not tested this.

does not seem to present itself to me until i publish the application to Azure

Are you running with exactly the same DNX version and packages on Azure?

@dougbu
So it appears that I actually can reproduce this locally, I just have to ramp up the number of elements to something much higher for it to be noticeable (I guess my workstation is just much more powerful than the azure instance or something).
See the following test:
Controller
[Route( "~/emailtest5" )]
public IActionResult EmailTest5()
{
    return View();
}

Model
public class EmailTestViewModel5
{
    [EmailAddress]
    public string Email { get; set; }

    [EmailAddress]
    public string Email2 { get; set; }

    [EmailAddress]
    public string Email3 { get; set; }

    [EmailAddress]
    public string Email4 { get; set; }

    [EmailAddress]
    public string Email5 { get; set; }
    [EmailAddress]
    public string Email6 { get; set; }

    [EmailAddress]
    public string Email7 { get; set; }

    [EmailAddress]
    public string Email8 { get; set; }

    [EmailAddress]
    public string Email9 { get; set; }

    [EmailAddress]
    public string Email10 { get; set; }
    [EmailAddress]
    public string Email11 { get; set; }

    [EmailAddress]
    public string Email12 { get; set; }

    [EmailAddress]
    public string Email13 { get; set; }

    [EmailAddress]
    public string Email14 { get; set; }

    [EmailAddress]
    public string Email15 { get; set; }
    [EmailAddress]
    public string Email16 { get; set; }

    [EmailAddress]
    public string Email17 { get; set; }

    [EmailAddress]
    public string Email18 { get; set; }

    [EmailAddress]
    public string Email19 { get; set; }

    [EmailAddress]
    public string Email20 { get; set; }
}

View
(the 10 email properties pasted x4 times)
@model Web.Controllers.EmailTestViewModel5
@{
    Layout = null;
}

<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

EmailTest5 View

    <form>

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <input asp-for="Email6" />

        <input asp-for="Email7" />

        <input asp-for="Email8" />

        <input asp-for="Email9" />

        <input asp-for="Email10" />

        <input asp-for="Email11" />

        <input asp-for="Email12" />

        <input asp-for="Email13" />

        <input asp-for="Email14" />

        <input asp-for="Email15" />

        <input asp-for="Email16" />

        <input asp-for="Email17" />

        <input asp-for="Email18" />

        <input asp-for="Email19" />

        <input asp-for="Email20" />

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <input asp-for="Email6" />

        <input asp-for="Email7" />

        <input asp-for="Email8" />

        <input asp-for="Email9" />

        <input asp-for="Email10" />

        <input asp-for="Email11" />

        <input asp-for="Email12" />

        <input asp-for="Email13" />

        <input asp-for="Email14" />

        <input asp-for="Email15" />

        <input asp-for="Email16" />

        <input asp-for="Email17" />

        <input asp-for="Email18" />

        <input asp-for="Email19" />

        <input asp-for="Email20" />

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <input asp-for="Email6" />

        <input asp-for="Email7" />

        <input asp-for="Email8" />

        <input asp-for="Email9" />

        <input asp-for="Email10" />

        <input asp-for="Email11" />

        <input asp-for="Email12" />

        <input asp-for="Email13" />

        <input asp-for="Email14" />

        <input asp-for="Email15" />

        <input asp-for="Email16" />

        <input asp-for="Email17" />

        <input asp-for="Email18" />

        <input asp-for="Email19" />

        <input asp-for="Email20" />

        <input asp-for="Email" />

        <input asp-for="Email2" />

        <input asp-for="Email3" />

        <input asp-for="Email4" />

        <input asp-for="Email5" />

        <input asp-for="Email6" />

        <input asp-for="Email7" />

        <input asp-for="Email8" />

        <input asp-for="Email9" />

        <input asp-for="Email10" />

        <input asp-for="Email11" />

        <input asp-for="Email12" />

        <input asp-for="Email13" />

        <input asp-for="Email14" />

        <input asp-for="Email15" />

        <input asp-for="Email16" />

        <input asp-for="Email17" />

        <input asp-for="Email18" />

        <input asp-for="Email19" />

        <input asp-for="Email20" />

        <button type="submit">Submit</button>
    </form>

One this I am noticing in visual studio output window when running this is the following:
Microsoft.AspNet.Hosting.Internal.HostingEngine: Information: Request starting HTTP/1.1 GET http://localhost:4000/emailtest5
Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker: Information: Executing action method CP.Web.Controllers.EmailTestController.EmailTest5 with arguments () - ModelState is Valid'
Microsoft.AspNet.Mvc.ViewFeatures.ViewResultExecutor: Information: Executing ViewResult, running view at path /Views/EmailTest/EmailTest5.cshtml.
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.Resources.MissingManifestResourceException' in mscorlib.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler: Information: Executed action CP.Web.Controllers.EmailTestController.EmailTest5 in 0.4422ms
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.39d4670959524f95b4883b0487d9a55a.Request","time":"2016-03-08T19:05:09.4749755+00:00","iKey":"-------------","tags":{"ai.internal.sdkVersion":"aspnet5: 1.0.0-rc1","ai.device.roleInstance":"---------------","ai.operation.id":"12476604126138507296","ai.operation.name":"GET EmailTest/EmailTest5 [area]","ai.user.userAgent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36","ai.session.id":"t00v7","ai.user.id":"CjO0O","ai.user.accountAcquisitionDate":"2016-02-19T04:37:56.3940000+00:00"},"data":{"baseType":"RequestData","baseData":{"ver":2,"id":"12476604126138507296","name":"GET EmailTest/EmailTest5 [area]","startTime":"2016-03-08T19:05:09.4749755+00:00","duration":"00:00:04.4280860","success":true,"responseCode":"200","url":"http://localhost:4000/emailtest5","httpMethod":"GET","properties":{"DeveloperMode":"true"}}}}
Microsoft.AspNet.Hosting.Internal.HostingEngine: Information: Request finished in 0.4422ms 200 text/html; charset=utf-8
The thread 0x21a0 has exited with code 0 (0x0).

I see a lot of exceptions coming from Microsoft.AspNet.Mvc.ViewFeatures.dll.

So my next guess is that maybe this has something to do with localization which my application uses. My Startup.cs has been configured with the following:
    public void ConfigureServices( IServiceCollection services )
    {
        ...

        // Mvc
        services
            .AddMvc()
            .AddViewLocalization( options => options.ResourcesPath = "Resources" )
            .AddDataAnnotationsLocalization();
    }

    public void Configure( IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, GlobalSettings globalSettings )
    {
        ...

        // Localization

        var localizationOptions = new RequestLocalizationOptions
        {
            SupportedCultures = new List<CultureInfo>()
            {
                new CultureInfo( "es-ES" ),
                new CultureInfo( "fr-FR" )
            },
            SupportedUICultures = new List<CultureInfo>()
            {
                new CultureInfo( "es-ES" ),
                new CultureInfo( "fr-FR" )
            }
        };

        localizationOptions.RequestCultureProviders.Insert( 1, new CurrentContextCultureProvider() );
        app.UseRequestLocalization( localizationOptions, new RequestCulture( "en-US" ) );
    }

With this configuration, I notice that all of my input's are generated like this:
<input type="email" data-val="true" data-val-email="Email" id="Email" name="Email" value="" />

Notice the data-val-email="Email".
I removed the localization stuff from Startup.cs and now inputs get generated like this:
<input type="email" data-val="true" data-val-email="The Email field is not a valid e-mail address." id="Email" name="Email" value="" />

Notice the data-val-email="The Email field is not a valid e-mail address.".
I also noticed that many of the MissingManifestResourceExceptions from the output window went away when loading the page. However, the NullReferenceExceptions still exist. Now:
Microsoft.AspNet.Hosting.Internal.HostingEngine: Information: Request starting HTTP/1.1 GET http://localhost:4000/emailtest5
Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker: Information: Executing action method CP.Web.Controllers.EmailTestController.EmailTest5 with arguments () - ModelState is Valid'
Microsoft.AspNet.Mvc.ViewFeatures.ViewResultExecutor: Information: Executing ViewResult, running view at path /Views/EmailTest/EmailTest5.cshtml.
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Exception thrown: 'System.NullReferenceException' in Microsoft.AspNet.Mvc.ViewFeatures.dll
Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler: Information: Executed action CP.Web.Controllers.EmailTestController.EmailTest5 in 0.3375ms
Application Insights Telemetry: {"name":"Microsoft.ApplicationInsights.Dev.39d4670959524f95b4883b0487d9a55a.Request","time":"2016-03-08T19:43:13.6112771+00:00","iKey":"--------------","tags":{"ai.internal.sdkVersion":"aspnet5: 1.0.0-rc1","ai.device.roleInstance":"-------------","ai.operation.id":"1083486675795484474","ai.operation.name":"GET EmailTest/EmailTest5 [area]","ai.user.userAgent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36","ai.session.id":"mwkom","ai.user.id":"CjO0O","ai.user.accountAcquisitionDate":"2016-02-19T04:37:56.3940000+00:00"},"data":{"baseType":"RequestData","baseData":{"ver":2,"id":"1083486675795484474","name":"GET EmailTest/EmailTest5 [area]","startTime":"2016-03-08T19:43:13.6112771+00:00","duration":"00:00:03.3805466","success":true,"responseCode":"200","url":"http://localhost:4000/emailtest5","httpMethod":"GET","properties":{"DeveloperMode":"true"}}}}
Microsoft.AspNet.Hosting.Internal.HostingEngine: Information: Request finished in 0.339ms 200 text/html; charset=utf-8

Page loads still seem to be slow though. I haven't noticed a difference in load time when removing the Localization settings.

@dougbu
I turned on break for all exceptions and see the following null reference exception getting thrown in ViewFeatures.dll for each email input in my view:
http://puu.sh/nzwrE/cbb354c894.png
I'm not really sure how to get any additional information for you out of that library.

@kspearrin first-chance NullReferenceExceptions in the Microsoft.AspNet.Mvc.ViewFeatures package / assembly are :100:% expected. Talking in #4248 about this today as well.

So I've deployed my site to Azure with all of the same tests we have been discussing since the beginning of this thread. This time I have removed services.AddDataAnnotationsLocalization() from Startup.cs and am happy to report that all test cases are now fast.
So I guess the next question is, what is the proper use of configuring AddDataAnnotationsLocalization()? And also worth noting that improper use of it will cause these significant performance issues.

We seem to have moved beyond the original reported issue of performance degradation when using [Email] or [RegularExpression]. Instead you have hit known RC1 performance issues in the Localization subsystem e.g. aspnet/Localization#156. @kspearrin am I correctly understanding?

the NullReferenceExceptions still exist

I've added a AddDataAnnotationsLocalization() call in my test application but see only a few NullReferenceExceptions -- one per property in a Create page. The bottom of the stack trace is in Microsoft.AspNet.Mvc.ViewFeatures.ExpressionMetadataProvider.FromLambdaExpression(). This is the NRE I said was  :100:% expected. @kspearrin are you seeing additional NREs somewhere else?

What are the differences in execution with ErrorMessage vs no ErrorMessage?

Well, one of the main differences is that if ErrorMessage is set, the data annotations localization code is relevant :smiley_cat:

many of the MissingManifestResourceExceptions from the output window went away

This was an issue in the RC1 bits which has been fixed in RC2. Importantly that was part of a larger design change to improve performance of the Localization subsystem.

Yes, I think we can agree now that this all stems from performance issues with Localization. I think I'll just have to wait for RC2 to see if things get better. Thanks for helping taking the time to help investigate this. I think a few positive things came out of it regardless.

:ok: I'll close this discussion then.

Also marking as a dupe of aspnet/Localization#156. (A few other fixes in that repo should also have improved performance.)


[Improvement]: Allow us to add custom Dockerfiles to docker compose and service deployments

Description
At the moment when we want to modife the default docker image bein used in service deplyment or when using a docker compose file we have to build our own image and upload it to docker hub or upload a dockerifle onto the right folder in the server. This all is too complex
Minimal Reproduction (if possible, example repository)
Ther should be a way that we can add a docker compose file with the folwoing information for exmaple:
wordpress:
    build:
      context: .
.............

And then in the deployment tab for all services and all docker compose deployments there is a field where we can add a custom dockerfile -> and also a checkbox we have to check if we want to use the costume dockerfile.
Steps to implement:

[ ] Allow us to use a custom dockerfile for services and docker compose deployments -> So the full build settings would need to be made available in the services and docker compose deployment types
[ ] (Add a checkbox to let us use our own docker file.)
[ ] Below the checkbox, have a field that lets us add our own dockerfile (could look like this) -> This will be added to services and docker compose based deployments -> The full build settings are needed for that:

Exception or Error
No response
Version

I am using a command like this to build the images:
docker compose --env-file .env --env-file .env.prod -f docker-compose.yaml -f docker-compose.prod.yaml build
I am not sure if it's useful for you until the feature is implemented to the interface.

Same thing the other way around would also be nice:

[ ] When deploying with a dockerfile in a git repo, let us also select the yml file in the repo --> So we can have yml and dockerfile in one repo folder and use both to build an image and then deploy services with the docker compose file and using that image.


strong_params для action

Add to Action params filtering as in Rails controllers
https://weblog.rubyonrails.org/2012/3/21/strong-parameters/

For the very first implementation, we can inherit from:
https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/strong_parameters.rb

@wilddima I understood correctly that there must be something in the likeness:
Logux::Actions.new(type: 'user/add', channel: 'project/123', test1: 'asd', test2: 'asd').permit(:type, :channel) # => { type: 'user/add', channel: 'project/123' }
?

Seems like so

okay


New perfmon doc

Description
WIP documentation the napari.utils.perf module.
Type of change

[x] New documentation

This PR puts the new Performance Monitoring under the heading which right now is Events and Threading. Since we probably don't want to change the heading to Events and Threading and Perfmon I've changed it to say Guides. That is strawman suggestion, I have not good idea what it should really be called.

Some images that we will use in the docs, hosted here for now:

I marking this read for review. It's a pretty good Version 1. We could obviously do another version with even more detail and more advice/tutorial but I think this is a good start and ready for review/merge.


[#425] Warnings

Closes #425

Coverage increased (+0.006%) to 88.897% when pulling 8fb1f4e80a17b08948c8755dd1d27cf4ccdeb29c on feature/425-warnings into bb5f7cca6fcc1ef3f46461456a787070f851ebaf on master.


conservative cache: txs are packed with nonce gap when hare output empty layer

hare WakeupDelta in fastnet config (used by systest/longevity test) is 2 seconds. the node's self-published proposal was still being verified while hare preround started. hare went into preround with an empty set and cause the hare consensus to output EmptyBlockID.
meanwhile, block proposals for the layer were all correctly saved after the hare preround started
conservative cache starts packing txs incorrectly. for example, account A has nonce 10-20 in the mempool. 10-13 is packed in a L10 proposal.  14-20 is packed in a L11 proposal. but if L10 doesn't produce a block, then L11's block (generated from L11 proposals) won't contain nonce 10-13.
optimistic filtering was off (https://github.com/spacemeshos/go-spacemesh/issues/3346), causing the txs to be packed into the block without checking nonce/balance. it then causes VM to reject a high percentage of txs, as the metrics shows below

no longer apply, as gapped nonce is the default.


NuGet package

First of all: great work! Thanks for sharing it here at GitHub!
I would love to use this as a NuGet package, mainly the Scorer project. If you want, I can do a PR to help you a bit (package metadata, GH Action, etc.). Let me know if you're open to that!

@keesschollaart81 hi, great idea, done https://www.nuget.org/packages/Yolov5Net/1.0.1, it's now on .NET Standard 2.0 + little changes according to package isolation, for example, weights path cant be baked right into a model class, so I've added an ability to load weight from file, stream, and byte array via a constructor. Pls see the console app example.

Lol! That was quick, cheers 🥂 on getting it on NuGet this quick!
I'll give it a spin later this week and come back here with feedback. Thanks!

@keesschollaart81 new version is here https://www.nuget.org/packages/Yolov5Net/1.0.2, readme changed.

great work. I think there is a need to handle dispose in some places  like using (var result = inference.Run(inputs) {...] and also disposing the resulting tensor as well.

I have some delay in the testing. I wanted to run this on my Jetson Nano (with CUDA provider) but this is ARM64 and this seems not to be supported jet. I have to fix that first, I will report back here but maybe not this week.


Renaming a class with comments

Hi, I was trying to rename a class using the example given. However, if there is a comment block above the class the new text is inserted in the wrong position. Removing the comment block fixes the problem but it isn't really a viable solution for processing large projects.
Thanks for a great job with the library.

Hey, thanks for reporting this and for the compliment about the library. This is fixed in 0.61.2. Let me know if the issue still persists or if you run into any other issues.

Thanks for the quick fix.


Ensure bulk create returns plain objects when lean is 'true'

Summary
This closes #161
The tests for this are coming in a separate PR in feathers-service-tests.

This test is not failing for me locally. I did a fresh npm install and everything passes. Please advise.

@DesignByOnyx which version of Node are you running. It's failing on Node v7.9.0 when checking the ORM error.
Uncaught TypeError: Cannot convert undefined or null to object
      at Function.keys (<anonymous>)
      at ValidationError.toString (node_modules/mongoose/lib/error/validation.js:49:10)
      at Function.prepareStackTrace (node_modules/source-map-support/source-map-support.js:365:16)
      at Function.captureStackTrace (<anonymous>)
      at new MongooseError (node_modules/mongoose/lib/error.js:12:11)
      at ValidationError (node_modules/mongoose/lib/error/validation.js:17:19)
      at model.Document.invalidate (node_modules/mongoose/lib/document.js:1458:32)
      at node_modules/mongoose/lib/document.js:1334:17
      at validate (node_modules/mongoose/lib/schematype.js:705:7)
      at node_modules/mongoose/lib/schematype.js:742:9
      at Array.forEach (native)
      at SchemaString.SchemaType.doValidate (node_modules/mongoose/lib/schematype.js:710:19)
      at node_modules/mongoose/lib/document.js:1332:9
      at _combinedTickCallback (internal/process/next_tick.js:73:7)
      at process._tickCallback (internal/process/next_tick.js:104:9)

I'll see if I can reproduce locally.

I tested against Node v7.9.0 before posting my last comment. The test that is failing is a rather simple test, so this really boggles me.
It's worth noting that this is a "new" test - the test was written a long time ago but wasn't actually being executed prior to this PR.
After further investigation, there's a slightly different implementation of how errors are emitted between feathers-sequelize and feathers-mongoose. This is best explained by looking at code:
https://github.com/feathersjs/feathers-sequelize/blob/master/src/utils.js#L32
https://github.com/feathersjs/feathers-mongoose/blob/master/src/error-handler.js#L44
Hit me up in Slack so we can talk about this.

Merging with latest and re-running fixed it. Released as v5.1.2, thank you!


syntax error at or near "CREATE_REPLICATION_SLOT"

Proxy is hitting this error when trying to connect to hosted Supabase:
13:12:20.702 pid=<0.2795.0> origin=postgres_1 [error] PostgresConnectorSup failed to start child :postgres_producer with reason: {{:case_clause, {:error, {:error, :error, "42601", :syntax_error, "syntax error at or near \"CREATE_REPLICATION_SLOT\"", [file: "scan.l", line: "1188", position: "1", routine: "scanner_yyerror", severity: "ERROR"]}}}, [{Electric.Replication.Postgres.Client, :create_slot, 2, [file: ~c"lib/electric/replication/postgres/client.ex", line: 142]}, {Electric.Replication.Postgres.LogicalReplicationProducer, :init, 1, [file: ~c"lib/electric/replication/postgres/logical_replication_producer.ex", line: 91]}, {GenStage, :init, 1, [file: ~c"lib/gen_stage.ex", line: 1816]}, {:gen_server, :init_it, 2, [file: ~c"gen_server.erl", line: 851]}, {:gen_server, :init_it, 6, [file: ~c"gen_server.erl", line: 814]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 240]}]}.

I've tried both Transaction and Session mode.

Duplicate of #877


DAG-1698 Documenting user should be aware of remote before using emm …

…pull-request

evergreen merge


Really nice theme but a different color for the sidebar would be better

This theme got me love at first site lol. But it would be better if there could be a separate color for each section.

To differentiate the code section and the sidebar and terminal
KEEP IT UP

Good suggestion. I will add a new variant to this theme with more contrasted sidebar and terminal, in a few days.

Great! Now I will close this issue.

I have added a new variant named Night Coder Contrast. It looks like this:


PHOENIX-6160 Simplifying concurrent mutation handling for global Indexes

Algorithm makes sense, it's a nice simplification, and just had a few nits on the code. My bigger concern is the potential increase in tail latency on writes to hot rows in write latency-sensitive applications. Would be good to get some perf numbers.

Good suggestion. I will do some perf runs and update the Jira.

It seems I mistakenly closed this JIRA

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
6m 33s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ 4.x Compile Tests _

+1 :green_heart:
mvninstall
31m 39s
4.x passed

+1 :green_heart:
compile
1m  0s
4.x passed

+1 :green_heart:
checkstyle
0m 37s
4.x passed

+1 :green_heart:
javadoc
0m 47s
4.x passed

+0 :ok:
spotbugs
3m  6s
phoenix-core in 4.x has 957 extant spotbugs warnings.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
29m 24s
the patch passed

+1 :green_heart:
compile
0m 59s
the patch passed

+1 :green_heart:
javac
0m 59s
the patch passed

-1 :x:
checkstyle
0m 37s
phoenix-core: The patch generated 64 new + 375 unchanged - 44 fixed = 439 total (was 419)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
javadoc
0m 47s
the patch passed

+1 :green_heart:
spotbugs
3m 19s
phoenix-core generated 0 new + 956 unchanged - 1 fixed = 956 total (was 957)

_ Other Tests _

-1 :x:
unit
174m 40s
phoenix-core in the patch failed.

+1 :green_heart:
asflicense
0m 31s
The patch does not generate ASF License warnings.

256m 29s

Reason
Tests

Failed junit tests
phoenix.end2end.index.IndexMetadataIT

phoenix.end2end.IndexExtendedIT

phoenix.end2end.ConnectionUtilIT

phoenix.end2end.SkipScanQueryIT

phoenix.end2end.index.IndexCoprocIT

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-897/3/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/phoenix/pull/897

Optional Tests
dupname asflicense javac javadoc unit spotbugs hbaseanti checkstyle compile

uname
Linux fb953d384f5a 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev/phoenix-personality.sh

git revision
4.x / fc3d25c

Default Java
Private Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08

checkstyle
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-897/3/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt

unit
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-897/3/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt

Test Results
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-897/3/testReport/

Max. process+thread count
6238 (vs. ulimit of 30000)

modules
C: phoenix-core U: phoenix-core

Console output
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-897/3/console

versions
git=2.7.4 maven=3.3.9 spotbugs=4.1.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


chore(starknet_integration_tests): add available ports to mempool p2p flow test

Stack:

#2796 ⬅
#2795
#2794
#2789
#2788
#2787
#2786
#2781
#2780
#2778
#2777

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

This change is


Explicitly include lvm2 package

We require lvm2 to be installed when initializing the database so it should be explicitly included in the kickstart.
https://bugzilla.redhat.com/show_bug.cgi?id=1343007

@gtanzillo I think this one is good to go.

LGTM 👍


Exchange need to explain the difference between Enterprise and Opensource

As  I learned from practice, in most use case, I need to use the opensource edition instead of the enterprise, because the enterprise include only one feature which can use it to export the data from nebula, all the other rest features are in the opensource, it's a little confusing.

Now the exchange has differentiated between community and enterprise editions, and the documents have been separated as well.


how it can show the mysql scheme?can you understand my english is not well.

when i change the connection to mysql, but the schema is also the sqlite's schema. where i done wrong


Launching issue

Hello.
I'm getting crashed everytime, never been in such trouble with any other WebGL content.
System specs:
OS: Microsoft Windows 7 Ultimate (64-bit)
CPU: Intel Core i7-6800K @ 4.2GHz
GPU: AMD Radeon HD6770 @ stock
RAM: 4x8GB DDR4 @ 2666 MHz
Browser: Chrome 59.0.3071.104 (64-bit)
Details on attached screenshot, thanks.

With couple of refreshes and some magic I have get this working, but later it stuck with weird and ridiculously low fps.
Can confirm that is such behavior is not renderer related, it's definitely caused by AMD Radeon Software Crimson Edition 16.2.1 Non WHQL Beta Driver, which is will be in beta forever because all non CGN videocards are dropped and now they're legacy products.
It's weird, because all other WebGL content is working the right way. But not so strange if remember what's happened when I installed latest Catalyst WHQL driver: it just doesn't have any support for WebGL at all.

AMD drivers once again!

@nxld
Hi, sorry you are having graphics driver issues.  What year was your AMD Radeon made?  Is it an integrated card - PCI express slot?
I try to make all the demos run on systems with basic specs.  I develop this repo using my i5/Windows 10 Toshiba laptop with humble integrated Intel graphics.  Most demos run at 45-60 fps on that. That last screenshot you posted was the Chrome software renderer.  If the shader keeps failing to compile for a certain number of times, it switches to software rendering at 0-1 fps.
I hope you are able to find the latest drivers for your card.  Let me know what you find and how it's going.
Thanks,
-Erich

@erichlof As I stated above, Radeon HD6770 is an DX11 PCI Express 2.1 x16 desktop videocard, released back in 2011. The problem is not about getting the latest drivers, both of their revisions (Crimson, actual AMD driver and Catalyst, older one) are outdated and dropped from development for legacy GPU's like my HD6770.  So it could produce some weird bugs and it does it :)
After I restarted the Chrome I got it crashed again and later when I just refreshed the page a few times I am getting nice 129 FPS (I have 144Hz display), who knows what it will be the next time.

So I confirmed again, this is not an issue of your renderer and the drivers won't be fixed.
Take this thread as a little research about "legacy videocards in modern WebGL environment".

Hi @nxld ,
Glad you were able to resolve the issue.  As I mentioned, I develop everything here on my humble laptop with integrated graphics, so I don't know a lot about WebGL support on graphics cards out in the wild.  One thing I will say though is, coming from my old days of OpenGL game programming in C on Windows 95/97, modern WebGL and Chrome/Firefox are wonderful to work with, knowing that most of what I see on my screen will end up on other people's screens as well! Even across mobile devices like my cellphone - something I couldn't have dreamed of back in 1997.
Thanks for the update and for watching my project.  Sorry there hasn't been updates recently:  I'm stuck on path tracing and lighting texture images from files, like .jpg's and .png's.  Hopefully I will 'crack the code' and post something soon. :)
Take care,
-Erich


Add more content to middleware snippets.

This is in an attempt to make it more explicit that the middleware needs to be first to be able to properly work.
cc: @SurferJeffAtGoogle

Will wait until the errors have been fixed before reviewing :)

@jskeet Forgot to updated the csproj for all frameworks.  PTAL.


Change of_lldp loop to use list of switches

@macartur this fixes any issues ?

I believe it is meant to fix https://github.com/kytos/kytos/issues/411

Yes, that's for kytos/kytos#411 as @macartur  connected through ZenHub. Let's not forget referencing the issue in the commit message to close it automatically.


Password with special chars is not working

Special chars in the password avoid login from the adapter.
ioBroker Forum

+
-
_
are not working according to forum.


Added guard rail preset

This implements https://github.com/openstreetmap/iD/issues/5527. I match-scored it at 0.75, so it doesn't show up for "rail" as the first entries, because it's much more likely the user meant "railway" or "railroad" or whatever.
One issue I have is that presets.json has all the new recently added named stores, banks, etc. They got deleted when the file got auto-generated when I built the source. I manually restored them for the PR. But I can't for the life of me figure out where this data is supposed to actually come from for the build to properly include.

You'll need to npm install to grab the latest version of that.

Ah, thanks. I didn't think to update packages. For some reason I thought everything's local.


Add console logging to request handlers to show in runtime logs.

Purpose
Fix Runtime logs not showing other requests except "GET" in the quick start guide, Deploy Your First Static Web Application
issue - https://github.com/wso2-enterprise/choreo/issues/27177#issue-2162614386
Goals

Describe the solutions that this feature/fix will introduce to resolve the problems described above

Approach
Added console.log to every request calls so that it will appear in the runtime logs for user to see.
After the changes were made, all requests were shown

User stories

Summary of user stories addressed by this change>

Release note

Brief description of the new feature or bug fix as it will appear in the release notes

Documentation

Link(s) to product documentation that addresses the changes of this PR. If no doc impact, enter “N/A” plus brief explanation of why there’s no doc impact

Training

Link to the PR for changes to the training content in https://github.com/wso2/WSO2-Training, if applicable

Certification

Type “Sent” when you have provided new/updated certification questions, plus four answers for each question (correct answer highlighted in bold), based on this change. Certification questions/answers should be sent to<EMAIL_ADDRESS>and NOT pasted in this PR. If there is no impact on certification exams, type “N/A” and explain why.

Marketing

Link to drafts of marketing content that will describe and promote this feature, including product page changes, technical articles, blog posts, videos, etc., if applicable

Automation tests

Unit tests

Code coverage information

Integration tests

Details about the test cases and coverage

Security checks

Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? yes
Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? yes

Samples
When you deploy the choreo-sample-todo-list-app and go to that link and do the following, the type of request call  will appear in the runtime logs under observability of choreo console.

retrieving the tasks when you load the webApp - GET (request method)
Check/Uncheck a task as done or not done - PUT (request method)
Delete a task - DELETE (request method)
Create a new task - POST (request method)

Related PRs

List any other related PRs

Migrations (if applicable)

Describe migration steps and platforms on which migration has been tested

Test environment

List all JDK versions, operating systems, databases, and browser/versions on which this feature/fix was tested

Learning

Describe the research phase and any blog posts, patterns, libraries, or add-ons you used to solve the problem.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Two nodes appear repeatedly

Bug description

Recently I encountered a problem. I used docker-compose to set up headscale and tailscale, and used a reusable key to enable the built-in derp server. Every time the docker service is restarted, headscale gets a new tailscale node, which is not as expected. The expectation should be that the node should not change every time it is restarted.
Environment

OS: Linux Debian 12
Headscale version: 0.23.0-alpha2
Tailscale version:  v1.56.1
Kernel version:  6.1.0-17-amd64

[ ] Headscale is behind a (reverse) proxy
[x] Headscale runs in a container

To Reproduce

docker-compose.yml

services:
  headscale:
    image: headscale/headscale:0.23.0-alpha2
    container_name: headscale
    hostname: headscale
    network_mode: host
    volumes:
      - ./headscale:/etc/headscale
    environment:
      - TZ=Asia/Shanghai
    restart: always
    stop_grace_period: 2m
    command: headscale serve
  tailscale:
      hostname: tailscale
      container_name: tailscale
      image: tailscale/tailscale:v1.56.1
      environment:
        - TS_EXTRA_ARGS=--login-server=https:/domain:444 --accept-routes=false --accept-dns=false --advertise-routes=<IP_ADDRESS>/24 --authkey=token
        - TZ=Asia/Shanghai
      volumes:
        - /var/run/tailscale:/var/run/tailscale
        - ./tailscale:/var/lib
      devices:
        - /dev/net/tun:/dev/net/tun:rwm
      cap_add:
        - net_admin
        - sys_module
      restart: unless-stopped
      depends_on:
        headscale:
          condition: service_started
      networks:
        - default
networks:
  default:
    name: tailscale
    external: true

my headscale config

server_url: https://domain:444
listen_addr: <IP_ADDRESS>:444
metrics_listen_addr: <IP_ADDRESS>:9090
grpc_listen_addr: <IP_ADDRESS>:50443
grpc_allow_insecure: false
noise:
  private_key_path: /etc/headscale/noise_private.key
ip_prefixes:
  - <IP_ADDRESS>/10
derp:
  server:
    enabled: true
    region_id: 999
    region_code: "headscale"
    region_name: "Headscale Embedded DERP"
    stun_listen_addr: "<IP_ADDRESS>:3478"
    private_key_path: /etc/headscale/private.key
  urls:
    # - https://controlplane.tailscale.com/derpmap/default
  # paths:
  #   - /etc/headscale/derp-example.yaml
  paths: []
  auto_update_enabled: true
  update_frequency: 24h
disable_check_updates: false
ephemeral_node_inactivity_timeout: 30m
node_update_check_interval: 10s
db_type: sqlite3
db_path: /etc/headscale/db.sqlite
acme_url: https://acme-v02.api.letsencrypt.org/directory
acme_email: ""

tls_letsencrypt_hostname: ""
tls_letsencrypt_challenge_type: HTTP-01
tls_letsencrypt_listen: ":http"
tls_cert_path: "/etc/headscale/fullchain.cer"
tls_key_path: "/etc/headscale/domain.key"
log:
  format: text
  level: info
acl_policy_path: ""
dns_config:
  override_local_dns: false

  nameservers:
    - <IP_ADDRESS>

  domains: []
  magic_dns: false

  base_domain: arpa
unix_socket: /var/run/headscale/headscale.sock
unix_socket_permission: "0770"
logtail:
  # Enable logtail for this headscales clients.
  # As there is currently no support for overriding the log server in headscale, this is
  # disabled by default. Enabling this will make your clients send logs to Tailscale Inc.
  enabled: false

# Enabling this option makes devices prefer a random port for WireGuard traffic over the
# default static port 41641. This option is intended as a workaround for some buggy
# firewall devices. See https://tailscale.com/kb/1181/firewalls/ for more information.
randomize_client_port: true

command:

headscale users c fly97
headscale pre create -u fly97 --reusable
# docker compose up -d
headscale node ls

when runs docker compose down and docker compose up; a new node will be in headscale:
# docker compose down; docker compose up -d
headscale node ls

Obviously the same node, but two nodes are created.
What should I do to avoid this?
I would be grateful for your reply!!

The reason may be the variable of TS_STATE_DIR is not set in docker-compose.yml.

The reason may be the variable of TS_STATE_DIR is not set in docker-compose.yml.

Thanks for your help, this problem was successfully solved! This reminds me that I need to develop good documentation reading habits. Case Closed.


Remove the custom org-priority-regexp

This regular expression broke sorting by priority in agenda view. Reverting it back to the original one fixes the issue

Does it work if you revert its global value to its default, but add this to your config.el?
(setq-hook! 'org-mode-hook org-priority-regexp "^\\*+.*\\(\\[#\\([A-Z0-9]+\\)\\] ?\\)")

Unfortunately, no. I've added the above snippet to config.el, reloaded doom emacs and opened the agenda view, and items are again not sorted by priority. When inspecting the org-priority-regexp variable in agenda view, it's value is "^\\*+.*\\(\\[#\\([A-Z0-9]+\\)\\] ?\\)".
My current workaround is to set the regexp as custom variable for each of my agenda views, but that's far from perfect

Also, the commit that introduced the custom regexp broke some syntax highlighting in org agenda, causing priority characters not being highlighted

Right, then reverted it is. Odd that no other org user on our discord has mentioned any of these issues, but revisiting this will have to wait until I have more time. Thanks for your help!


Make the __load function public so the line 2552 of "lib/Doctrine/ODM/Mo...

...ngoDB/UnitOfWork.php" not throw error (fixes #219)
Please, look here too: https://github.com/doctrine/DoctrineMongoDBBundle/pull/70
Actually i cant take data from a different document_manager and put in a drop down using DoctrineMongoDBBundle.
With this fix and the one from the link above, everything works fine.
Thank you!

it would be even better to change the proxy interface to extend the new Doctrine\Common\Persistence\Proxy one but this is a first step.


Allow multiple keys to be associated with a single config

It's surprisingly useful to be able to associate a parameter with multiple keys from the same config.  For example, --flag and --not-flag might be two ways to set the same parameter.  Some possible syntaxes:
appcli.param()\
      .key(DocoptConfig, '--flag',     cast=lambda x: x)\
      .key(DocoptConfig, '--not-flag', cast=lambda x: not x)

appcli.param(
      keys=[
          appcli.Key(DocoptConfig, '--flag',     cast=lambda x: x),
          appcli.Key(DocoptConfig, '--not-flag', cast=lambda x: not x),
      ],
)

This syntax might also be useful even when in cases that are supported by the existing syntax, since it makes it more clear which cast functions are associated with which keys.
Supporting this feature will mean using different data structures under the hood.  Right now keys and cast functions are stored in the following data structures:

{Config: key}
{Config: cast}

These parallel data structures make it impossible to associate multiple values with any one config object, and impossible to associate keys with cast functions.  To solve these problems, I will need to use the following data structure:

{Config: [(key, cast)]}

The problem with the chained method syntax is that it makes it hard/impossible to ensure that the arguments to param() make sense.  What if keys are specified to param() and param.key() is called?  How are those keys merged?  Or what if no keys are specified to param()?  Does the default apply or not?  I think it's better to have everything in one place.

Fixed by 556dfa4

Fixed by 556dfa4


Multipolygon does not show up in Minerva when using dataset from Postgres

@matthewma7 ping @manthey, me, or @jbeezley if you need second pair of eyes.

False alarm. It was the data that is not correctly formatted at all.

great, did we fix the data formatting issue then>?

@aashish24 The problem was the data that I grab off the internet somewhere, the code is good. 😄

sounds good. thanks for clarification.


force git2 to use rustls instead of openssl-sys for transport when support is available

It looks like related work has happened upstream but has not been accepted/merged yet.

I'd consider using gitoxide, for our needs it should be already adequate.

Last time I checked that project was more focused on providing its own cli tool and lacked documentation and/or examples on how to use its component crates that could possibly perform the requisite tasks.
On a quick glance, the situation doesn't appear to have changed much yet.


Add an override for ioteventsdata

Codecov Report

Merging #1786 into develop will increase coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #1786      +/-   ##
===========================================
+ Coverage    92.43%   92.46%   +0.03%
===========================================
  Files           53       53
  Lines         9852     9852
===========================================
+ Hits          9107     9110       +3
+ Misses         745      742       -3

Impacted Files
Coverage Δ

botocore/credentials.py
98.83% <0%> (+0.38%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f0f2050...588964d. Read the comment docs.


New v0.14 (pre-)release?

We just landed some pretty substantial new functionality in Tendermint KMS: transaction signing using a YubiHSM2-backed account key:
https://github.com/iqlusioninc/tmkms/pull/78
In the process we've updated to tendermint-rs HEAD including the tendermint-rpc crate split, which is very nice for this application, since we can leave that crate out and with it all of the associated Tokio and other network dependencies (we have the KMS automatically submit signed transactions via RPC). We have it all running in production successfully 🎉
Additionally, we really want #322 which updates Signatory and RustCrypto dependencies.
I'd like to cut another alpha release of the KMS with this, but right now I'm depending on the tendermint and tendermint-rpc crates as a git-based dependency.
Would it be possible to cut a v0.14.0(-pre/alpha) release that incorporates all of the latest changes? I'd be happy to put together a PR which does the relevant prep work.

From my understanding the big chunk for 0.14 is the ongoing light-client/node work. That said releasing multiple pre releases until then shouldn't interfere with that work.
@tarcieri Just out of curiosity, what are the issues you are facing with git dependencies over crates.io?

Since the light-client is new I don't think there is anyone depending on it just yet. Maybe it wouldn't be terrible to cut a release (pre or otherwise) sooner rather than later.

I'll cut a 0.14.0 release. IMO there is no need to wait here.

Would it be possible to make a release without the light-client bit?

It is a separate crate anyways but I can add: https://github.com/informalsystems/tendermint-rs/issues/317

Ah we are talking about tendermint exclusively here. As tmkms also depends on the rpc crate now, we should cut a release for that as well. @brapse @ebuchman @Liamsi Should their versioning be in lockstep?

Does it make sense to add deprecation notice for the current lite module in the changelog? As far as I know e.g. crypto.com uses it since quite a while now (I think they were even using some branch of mine? https://github.com/crypto-com/chain/issues/828). @yihuang might have more insights here.
Maybe other projects started using it too? Can't harm to warn "early" (i.e. before we delete it) about this anyways.

Should their versioning be in lockstep?

Not sure what best practices are but I'd assume it makes it easier to immediately see which crates kinda belong together. So I'd vote for yes, here.

Does it make sense to add deprecation notice for the current lite module in the changelog? As far as I know e.g. crypto.com uses it since quite a while now (I think they were even using some branch of mine as a basis for their fork? crypto-com/chain#828). @yihuang @tomtau might have more insights here.

yes, we've been using a custom fork on the current public testnet and in development.
I guess it'd be good to include a deprecation note in changelog -- is the plan that the lite client will be released as a separate crate?

is the plan that the light client will be released as a separate crate?

Yes: the lite module will be removed. The light-client crate contains a redesigned light client (library) and light-node will contain a standalone light client to run on cli.

Just out of curiosity, what are the issues you are facing with git dependencies over crates.io?

@xla I'd like to publish a v0.8.0-alpha2 release of Tendermint KMS, but that's not possible when using dependencies sourced from git, as crates.io requires that the dependencies of all releases published there are also hosted on crates.io

As tmkms also depends on the rpc crate now, we should cut a release for that as well.

Yes please!

@xla I'd like to publish a v0.8.0-alpha2 release of Tendermint KMS, but that's not possible when using dependencies sourced from git, as crates.io requires that the dependencies of all releases published there are also hosted on crates.io

Right, I remember now, thanks for the follow-up. Release is underway.

Woohoo, thanks so much!


include grafana dashboards in the release-archive

*.json files were previously excluded from the archive, this fixes that.
Broke grafana dashboards.
Also fixes issues with go version checking.
For goVerMinor it will only look for \d+.* and ignore the non numeric suffix.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mandarjog: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
f7379bef25c410ea88994facad16891c5ffa95c7
link
/test istio-unit-tests

prow/e2e-bookInfoTests-v1alpha3.sh
f7379bef25c410ea88994facad16891c5ffa95c7
link
/test e2e-bookInfo-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: douglas-reid
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/retest

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: douglas-reid, linsun
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [linsun]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Failed to open file /code_cache/.overlay/base.apk/assets/Mapnik/7/90/51.png

E/projectName.ProjectBuild: Failed to open file '/data/data/com.pojectName.projectBuild/code_cache/.overlay/base.apk/assets/Mapnik/7/90/51.png': No such file or directory

I am having same problem
2021-12-16 14:51:21.660 31402-31402/com.ribedevs.buildup E/ibedevs.buildu: Failed to open file '/data/data/com.ribedevs.buildup/code_cache/.overlay/base.apk/resources.arsc': No such file or directory
how do I fix it ????

How did you fix that?
I have also same error

same error

Same error

same error Failed to open file '/data/data/it.uniba.dib.sms222334/code_cache/.overlay/base.apk/res/layout/veterinarian_profile_fragment.xml': No such file or directory

I had the same problem, updating the IDE and re-syncing the gradle project fixed my issue. Hope it helps.


Clarify Forgero configuration settings

The configuration settings are not very well documented, and some have overlapping purposes. This should be documented somewhere.

Done in december 2023 by Steve

See #806.


Bits & Bytes scraping is not working

Hi Guys,
bits and bytes scraping is not working. It says that the menu has not been published the whole time. Maybe the website of the restaurant itself (not the one from lakeside-park) would suits better for scraping
LINK
Cheers & Thx

They all change every few months/years. 💩 Next time we simplify it by using . 😂
Currently maintained 👉 https://food.fabian-feichter.at/.

Hi @fafeichter,
thanks for fixing the issues. We would be happy to include your work when you create a pull request.
Best

https://github.com/Felfio/AAUFood/pull/103

Has been deployed. Thanks for raising and fixing the issues. :)


Added props for custom EventSource and on error method

also propTypes and defaultProps were not assigned to EventSourceHOC

Hi, thanks for your contribution !

thank you !

will you be releasing it on npm soon?

also, thanks for the merge

Hi !
Ive just pushed @1.1.0 to npm, tell me if ok for you
I made two changes :

rename components to ReactEventSource everywhere
upgrade tooling to nwb, much lighter

works perfect, thanks very much.
I like the nwb change.


Checksum checker email reports mention a checksum checker option -u, that does not exist in code or documentation

Describe the bug
The checksum checker email report includes at the end a section of unchecked bitstreams. I suppose, there was just not enough time allocated to the checker to check those?
The report says:

The following is a UN-CHECKED BITSTREAM REPORT report for 7/30/23
To add these bitstreams to be checked run the checksum checker with the -u option

Neither the documentation at https://wiki.lyrasis.org/display/DSDOC7x/Validating+CheckSums+of+Bitstreams nor the code dspace-api/src/main/java/org/dspace/app/checker/ChecksumChecker.java known an option -u.
If you start the checker with option -u you receive this error in the logs:
2023-08-01 11:34:08,457 FATAL unknown unknown org.dspace.app.checker.ChecksumChecker @ org.apache.commons.cli.UnrecognizedOptionException: Unrecognized option: -u

Expected behavior

If this option makes sense and had existed in the past, perhaps we should bring it back,
if it is just a not valid text in the report, this text should be changed or removed.

It seems that the option refers to the DailyReportEmailer (the checker-emailer command)
I send a pull request that fix the text

While org.dspace.checker.DailyReportEmailer has a -u option, this -u option does not "add these bitstreams to be checked". So I think https://github.com/arvoConsultores/DSpace/pull/1 does not fix this issue.

You are right, I've not looked at the other side of the problem.
The message " To add these bitstreams to be checked run the checksum checker with the -u option" at report should be changed to other similar to "These items has not been checked. Maybe you should check that checksum checker runs periodically and has finished before launch this report".
At documentation:
"-u or --Unchanged" should be changed to "-u or --Unchecked" as DailyReportEmailer.java has. ( I have not user to do that)

It might also be ok to just omit the message altogether. I was just opening the issue because I was not sure if this option -u for the checksum checker existed in the past and got lost over time? But I could not find it mentioned in older versions of DSpace (Documentation) either besides in this one email text.

The documentation has not changed from 3.x (at least) https://wiki.lyrasis.org/display/DSDOC3x/Validating+CheckSums+of+Bitstreams
I created a pull request with the string changed as a proposal.


Description--tooltip

Submitter: Filipe
Hello,
Have you though about having a tool tip with a short explanation of each item?
It could be very helpful for players creating a character without having the book around.

Yes, this is a feature I have had planned for a while now. As of right now, you can click on the terms and a description of the term will show up. I plan to enhance this feature so that a small tooltip appears instead, or at least have it show up in a better spot than it does now.
Even further, for things like "backgrounds" and the merits/flaws, I plan to add another page, much like a glossary, to explain each one of those.
I'll keep this issue open because it describes what I wish to do in specific terms.


EDPUB-1224: Update dashboard action to call metadata mapping endpoint for export

Description
Update dashboard action to call metadata mapping endpoint for export
Spec
Designs: Currently, the dashboard action associated with exporting metadata relies on the mapped metadata to already exist as a part of the request details. An additional dynamic metadata mapping endpoint has been added to the API so that the precondition of mapping is no longer required. This task aims to update the export metadata dashboard action to call the API metadata mapping endpoint then use the response to populate and download a JSON file.
See Ticket: EDPUB-1224

Validation

Click on requests
Click on the Data Producer name that already have a form filled up
Click on the settings icon on the top left of the page, then click export on the options.

Can the file be named based on the Product Name.