-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot add a new client application to OpenID because of an exception #2756
Comments
That's not the first time I see this exception and I recently found a way to reproduce it consistently. I'll chat with @sebastienros and see if he has a magical sauce to find the root cause. There's also this one, that appears from time to time: System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=YesSql.Core
Arborescence des appels de procédure :
at YesSql.Session.<>c__DisplayClass35_1.<ReduceAsync>b__3(IIndex x) in C:\projects\yessql-un1yf\src\YesSql.Core\Session.cs:line 584 |
I think yessql has SourceLink, can you debug? |
|
Will try the next time I see it.
What's weird is that this exception is thrown for a simple query (the public virtual async Task<TApplication> FindByClientIdAsync(string identifier, CancellationToken cancellationToken)
{
if (string.IsNullOrEmpty(identifier))
{
throw new ArgumentException("The identifier cannot be null or empty.", nameof(identifier));
}
cancellationToken.ThrowIfCancellationRequested();
// Crashes here:
var result = await _session.Query<TApplication, OpenIdApplicationIndex>(index => index.ClientId == identifier).FirstOrDefaultAsync();
return result;
} |
I spent some time reproducing and debugging this issue and I believe it's caused by two things:
As a consequence, when an application is about to be created, I'll fix the bug in the YesSql app store but it might be worth revisiting YesSql's auto-commit feature to prefer a more explicit behavior. |
It's called autoflush and it's a very common pattern in orms. Look at nhibernate for instance. I'd love to see a simple repro if the bug you are mentioning in yessql. There might still be an issue even with autoflush is fine. |
There's no bug in YesSql (the bug is in the YS application store). It's just fairly surprising that changes are committed during a simple query (which is pretty much like persisting a resource during a GET request). While it's a pattern used in some other ORMs, it doesn't exist in the most popular one in the .NET ecosystem: EF 6/EF Core. People not used to this feature might have a hard time debugging when things go wrong. Perhaps that's just me, but I prefer EF's behavior: yes, you might get stale reads, but at least things are super explicit as no change is applied before
It can be disabled in NH 😄 |
And as I read again your explanation I understand the issue in the code now. I will assume you'll provide the fix later. I am fine adding an option to disable autoflush in yessql, but it wouldn't be the default, and OC would not use it. Maybe I could make it in a way we can disable it temporarily, or a flag in the queries. To explain why it is this way, if with the same YesSql session you start creating objects, then try to do queries, I assume that the objects you created and saved will probably impact the subsequent queries, so we need to commit them. This is important in OC because all modules can interact without knowing each other. So you can't define a flush operation from one module, or pre-commit from another, as these might not be necessary. The other issue is that there is a single session per request. So autoflush is necessary. There are pros and cons for both solutions. In O1 we started without autoflush, and we had to use it after some time, and it became much easier. |
We'll likely not need it. I was just curious to know why it was designed this way 😄
Yep, I'll send a PR in a few minutes.
Why? If a component A using a shared session wants to make the "not yet committed" changes visible/available to components B and C, it seems reasonable to think that it should explicitly persist the changes before the next components are invoked. On the other hand, it seems weird that components B or C incidentally commit the changes they didn't initiate while performing a query (which also leads to "misplaced" exceptions if anything bad happens). |
Is it an issue? If you think it is, then maybe you should consider having an |
Can we close now? You referred to this issue from the PR, but it was not stating it would "fix" it. |
@domonkosgabor do you mind giving it another try to see if my recent fix addressed your issue? Thanks! |
@domonkosgabor ping. |
@PinpointTownes tried with the latest changeset: f4eca1e
And a SqliteException:
|
@sebastienros dunno if it's related to the issue mentioned by @domonkosgabor, but I finally had a chance to catch the NRE with SourceLink enabled: https://github.com/sebastienros/yessql/blob/dev/src/YesSql.Core/Session.cs#L584 Does that ring a bell? |
is it the result of |
Yep, using the execution window in VS confirmed it.
|
I try to repro locally. I am pretty sure it's a bug in yessql, that can probably be fixed very easily. |
* Fixing functional tests (OrchardCMS#2867) * Update AccessController to use the SetInternalAuthorizationId() extension * Fixing NRE when reading stererotype * Registering Manage tenants Permissions (OrchardCMS#2871) * Fixing vulnerability warnings in themes (OrchardCMS#2868) * Adding back [ShapeType]_[DisplayType] alternate for parts Fixes OrchardCMS#2880 * Fixing OpenId applications creation (OrchardCMS#2884) Fixes OrchardCMS#2756 * Remove closing tags from <input> self-closing element (OrchardCMS#2883) * Fixing Prefix leaks in ContentPartDisplayDriver (OrchardCMS#2887) Fixes OrchardCMS#2337 * Update bootstrap-slider to 10.4.1 * Fixes vue multiselect z-index (OrchardCMS#2896) * Fixing title in ContentsMetadata.cshtml * Fixing NRE when reading stereotype (OrchardCMS#2888) * Update assets references to use app-relative paths (OrchardCMS#2893) * Appveyor script maintenance (OrchardCMS#2899) * Revert html body part's wysiwyg toolbar to be always visible (OrchardCMS#2905) Fixes OrchardCMS#2634 * Fixing popper.js usage (OrchardCMS#2897) Fixes OrchardCMS#2878 * Improve the HTTPS module (OrchardCMS#2719) * Fix text wrap for long filenames in media table view (OrchardCMS#2906) * Building only merge commits (OrchardCMS#2907) * Adding artifact property for appveyor to publish * Using v3 nuget endpoints * Fixing deployment script * Use v2 Nuget endpoints * Placement match providers (OrchardCMS#2864) * Limiting built branches * Adding response compression module (OrchardCMS#2911) Fixes OrchardCMS#446 * ClockExtensions creates dateTimeUtc variable and ignores it (OrchardCMS#2913) Fixes OrchardCMS#2902 * Fixing workflow edition (OrchardCMS#2914) * Admin Tree : fine tuning styling (OrchardCMS#2919) * Design : Admin Menu (OrchardCMS#2819) * Fixing Workflow items z-index (OrchardCMS#2921) * Fixing OrchardCMS#2910 * Fix overflow in media modal (OrchardCMS#2927) * Replace "facebook" by Azure AD (OrchardCMS#2924) * Fix media deployment (OrchardCMS#2922) Fixes OrchardCMS#2849 * Google Authentication (OrchardCMS#2920) * Fixes Razor Pages and Routing issues since 2.2 (OrchardCMS#2940) * Coming soon: Fix paths (OrchardCMS#2937) Fixes OrchardCMS#2930 * Fixing Upgrade with table prefix Fixes OrchardCMS#2929 * Fixing small UI issues (OrchardCMS#2961) Adding styles to prevent menu item title text to expand if title is too long. Fixed GraphiQL and Media UI after changing the collapsed admin menu size. Aligning more properly the collapsible chevron icon vertically. * Use AspNetCoreModuleV2 in mvc application. (OrchardCMS#2958) * Fixes url host and prefix in bg tasks (OrchardCMS#2957) * Fix Coming Soon: Missing Media feature (OrchardCMS#2950) Fixes OrchardCMS#2878 * OrchardCMS#2928 fixed Azure blob storage basepath issue (OrchardCMS#2948) * Text field editors (OrchardCMS#2946) * Added authorization check prior to creating new document. (OrchardCMS#2968) Fixes OrchardCMS#2951 * Added the gap between "Add User" button and "Search" box in mobile view. (OrchardCMS#2938) * Fixed importing roles from setup recipes using existing documentation (OrchardCMS#2969) * Fix permission issue (OrchardCMS#2979) * Prevent liquid tag helper conflicts. (OrchardCMS#2973) * Fixes multiple tenant shells initialization. (OrchardCMS#2981) * Optimize modules loading. (OrchardCMS#2972) * Renaming Admin Tree to Admin Menu (OrchardCMS#2923) * Basic health check (OrchardCMS#2976) * Add documentation on adding html attributes on img_tag liquid filter (OrchardCMS#2989) * Fixes admin menu animations (OrchardCMS#2992) * Fix TextField Editors options (OrchardCMS#2994) Related to OrchardCMS#2946 * Localizations files search paths (OrchardCMS#2986) * Introduce a role service relying on Identity's RoleManager and update the OpenID module to use it (OrchardCMS#2872) * Patching Google+ (OrchardCMS#2996) * Temporarily reintroduce the null propagation operators in ApplicationController to unblock CI builds * Change Smtp DefaultSender input to text (OrchardCMS#3003) Fixes OrchardCMS#2983 * Google Analytics (OrchardCMS#2934) * Remove the testing mode feature and replace it by automatic signing certificate generation (OrchardCMS#2886) * Fix view names for Admin menu deployment step (OrchardCMS#3021) * Prevent Notifier from displaying duplicite messages (OrchardCMS#3017) * Tenants management improvements (OrchardCMS#3009) Fixes OrchardCMS#3005 * Remove SqlProvider filter from tenants admin (OrchardCMS#3030) * Removing classes related to content management (OrchardCMS#3040) * Added mising updatedAsync content handler (OrchardCMS#3045) * Updating 2.2.1 packages (OrchardCMS#3044) * Fixing model binding (OrchardCMS#3046) * Updating Fluid (OrchardCMS#3042) Performance improvements and bug fixes * Adding TitlePart migration (OrchardCMS#3047) Fixes OrchardCMS#2998 * Added DisplayText filter for Admin/Contents/ContentItems (OrchardCMS#3036) * added Microsoft.AspNetCore.Mvc PackageReference to Google Module (OrchardCMS#3064) * Adding graphqk contentItems property to ListPart (OrchardCMS#3057) Fixes OrchardCMS#2800 * Retain display text filter value (OrchardCMS#3058) * Fix TitlePart XmlRpc update issue (OrchardCMS#3051) * Patching SO when running title migrations * Fixing index providers stack overflow exceptions * Fixing liquid parsing exceptions (OrchardCMS#3072) Fixes OrchardCMS#3062 * Migrating BodyPart * Fixes OrchardCMS#2879 (OrchardCMS#3077) * Added unpublish workflow event (OrchardCMS#3079) * Add Crowdin badge (OrchardCMS#3059) * Fixing BodyPart migration * Updating Fluid * Replace localization culture delimiter (OrchardCMS#3076) Fixes OrchardCMS#3070 * Tweak to OrchardCMS#2879 - remove compiler directives (OrchardCMS#3081) * Adding configuration support (OrchardCMS#2824) * Implement custom configuration * Improving configuration * Use configured values when creating tenants, including the "Default" one. * Changes after discussion. * Filter invalid tenant config section. * Missing update. * Minor changes. * Allow to add manually any values in the local config of a tenant. * UpgradeFromBeta2 * Configured Features also used by the ShellDescriptorManager (the one that uses database). * Fix building * Minor changes. * Add extensibility for settings and config sources. * Refactoring * Renaming * Minor changes. * Solve conflicts * Only one config sources service * Adding sample configuration sections * "TenantSettings" class wrapping the settings config source, and some renamings. * Revert some renaming and reduce 2 classes implementations into only one. * Suggests to lazily create shells. In tenants page uses "_shellHost.GetAllSettings()". * Compromise with null config values, concurrent data provider, refactoring ... * Renaming tenant => shell. * Fixes bg service, limit the usage of "ListShellContexts" that now don't create released shells. Always create the default tenant on statup, other tenants are still lazily created. * Update modules using IConfiguration => IShellConfiguration. * [GraphQL] Multiple alias names with the same index (OrchardCMS#3084) * Fixes OrchardCMS#3080 - Multiple Alias names with the same index * Adding Tests * tweak * Fixes application view paths. (OrchardCMS#3087) * Fixing docker image generation * Cleaning App_Data after functional tests * Fixing stdin * Adding missing ContentPart.TermAdmin template (OrchardCMS#3091) Fixes OrchardCMS#3078 The TermAdmin display type is used when rendering the terms list. The ContentPart.TermAdmin fallback template is required. * Cleaning App_Data before creating Docker images * Fixing travis script * [GraphQL] Option to collapse parts (OrchardCMS#2842) Fixes OrchardCMS#2842 * [GraphQL] Should Filter On Multiple Indexes with the Same Alias (OrchardCMS#3088) * Failing Test * Adding missing index registration * update id * Maybe it does work!? and we jsut need examples * Added validation for AliasPart to test for duplicate aliases (OrchardCMS#2310) (OrchardCMS#3095) * Deleting the web.config file (OrchardCMS#3092) A web.config is automatically generated during publish. If users need a custom one they can always create it. * [GraphQL] Collapse fixes (OrchardCMS#3112) Fixes Collapse issues * Layer rule based on the current culture (OrchardCMS#3108) Fixes OrchardCMS#3107 * Manage Culture admin page (OrchardCMS#3101) Add spaces in the breadcurmb Label 'Add a culture:' * Use accepted values for resized images (OrchardCMS#3113) * Fix that media modal is not shown when trumbowyg is full screen (OrchardCMS#3116) * Missing references and cleanups. (OrchardCMS#3093) * Updating yessql (OrchardCMS#3099) Fixes OrchardCMS#3028 Fixes OrchardCMS#3029 * Updating dotnet version on Travis * Adding Visual Studio extension and training demo module references to index.md (OrchardCMS#3102) * Change resize mode to max for modal in TheAgency * Fixing concurrent execution of fields resolution (OrchardCMS#3119) Fixes OrchardCMS#3029 * [GraphQL] Fixes UserContext being null for collapsed fields (OrchardCMS#3121) * Prevent nested containers during setup step (OrchardCMS#3120) Otherwise we get multiple concurrent singletons that might not be fine with it. Now all scopes are created and released serially. * Add Admin Attribute (OrchardCMS#3124) * Fixing connection usage (OrchardCMS#3131) Fixes OrchardCMS#3096 * Fix connection usage not supplying transaction during upgrade from beta 2 (OrchardCMS#3137) * Updating Fluid * Fixing stackoverflow when displaying media (OrchardCMS#3132) * Updating YesSql (OrchardCMS#3134) * Updating Request liquid object documentation * NavigationBuilder AddAsync(). (OrchardCMS#3151) * NavigationBuilder AddAsync(). * React to review. * Missing change. * Update Demo AdminMenu that needs actions to be rendered. * React to review - AddAsync for another missing signature. * Remove interpolated strings from calls to IStringLocalizer (OrchardCMS#3160) * Ensure meta tags are rendered self closing (OrchardCMS#3159) Noticed when initializing `MetaEntry` with parameters, the meta tag wouldn't be rendered self closing. Fix was to make the constructor with parameters also call the empty constructor. * Unecessary calls to AddMvc() and AddMvcCore(). (OrchardCMS#3154) * Fix z-index of child media modals (OrchardCMS#3149) * Take the PathBase into account. (OrchardCMS#3094) * Fixing package references (OrchardCMS#3175) Fixes OrchardCMS#3097 * Fix assets app position when a warning is visible. (OrchardCMS#3173) * Make IRecipeExecutor a tenant singleton. (OrchardCMS#3127) * Add OpenID config input hints for redirect URIs (OrchardCMS#3179) * Updating dependencies (OrchardCMS#3181) * Fixes plural localization in the DispayManagement project (OrchardCMS#3185) * [GraphQL] Add the hidden option (OrchardCMS#3152) Gives the user the ability to Hide a field, content type, part or part on content type from the graphql schema. Changed the options DSL to be more explicit too. * Adding documentation for meta tags * Fixing IndexingTaskManager table prefix usage (OrchardCMS#3190) Fixes OrchardCMS#3183 * Adding Hide to the Content Item which is what I actually wanted (OrchardCMS#3193) * Fixing IndexingTaskManager table prefix usage in FlushAsync (OrchardCMS#3192) Fixes OrchardCMS#3183 * Adding shape_cache liquid tag (OrchardCMS#3194) * Fix some typos found during translations * Fix typos found during localization * Fixes that graphql where statements have a suffix of part on partnames OrchardCMS#3206 (OrchardCMS#3207) Fixes OrchardCMS#3206 * Fixes part removal in where if the index has multiple aliases (OrchardCMS#3217) Tests and fixes for OrchardCMS#3207 * Fix null reference exception in MediaField.cshtml (OrchardCMS#3228) * Added claims to the list of available properties (OrchardCMS#3236) * Adding Step variable to the For Loop (OrchardCMS#3248) * Add jquery as dependency of icon picker script (OrchardCMS#3242) * Fixed introspection for contentitemtype ignored fields (OrchardCMS#3238) * [GraphQL] collapsed where statements fixes OrchardCMS#3234 (OrchardCMS#3235) * Adding configurable upload limits (OrchardCMS#3221) * Allow theming for Login/Registration/ResetPassword (OrchardCMS#3218) * Initialize content picker field with empty array (OrchardCMS#3247) * Fix null error when BodyAspect is not populated (OrchardCMS#3230) * Add "property" attribute to the meta tag helper. (OrchardCMS#3211) * Disable encoding for templated queries (OrchardCMS#3224) * Refactor liquid templates with custom encoders * Simplifying theme template Fixes OrchardCMS#3196 * Update SixLabors.ImageSharp.Web Version 1.0.0-beta0007 (OrchardCMS#3245) * Cleanup MediaFileResolver * Fixing taxonomy recipes (OrchardCMS#3253) Fixes OrchardCMS#3191 * Fix typo in icon picker style tag (OrchardCMS#3265) * Update content field readme (OrchardCMS#3264) * Using default content icon for non-image files (OrchardCMS#3256) Fixes OrchardCMS#3240 * Fix icon picker initialization (OrchardCMS#3271) * Remove unused OrchardCore.Title dependency from OrchardCore.Media (OrchardCMS#3266) * Remove unnecessary fields from content picker view model (OrchardCMS#3268) * Disable Layers on Admin themes (OrchardCMS#3272) * Represent OIDC authorities as System.Uri instances to perform automatic normalization (OrchardCMS#3269) * Revert "Fixing taxonomy recipes (OrchardCMS#3253)" This reverts commit f82cf1d. * Refactoring Media validation (OrchardCMS#3282) Fixes OrchardCMS#3263 * Allow to add alternates in OnProcessing (OrchardCMS#3277) * Fix openid certificates on Azure App Services (OrchardCMS#3255) Fixes OrchardCMS#3222 * Fixing NRE on CMS recipe Fixes OrchardCMS#3287 * Fix the issue of workflow-recipe (OrchardCMS#3290) The existing must be deleted, not the workflow as workflow doesn't have an id yet * Use flexbox for content alignment on content picker (OrchardCMS#3295) * Allows to get more application's module file infos. (OrchardCMS#3296) * Improving functional tests log (OrchardCMS#3298) * Update YesSql Fixes OrchardCMS#3292 * Fixing plural translation exceptions (OrchardCMS#3316) Fixes OrchardCMS#3201 * Setting liquid encodings explicitely (OrchardCMS#3315) Fixes OrchardCMS#3307 * Fixing LoadingAsync for known parts (OrchardCMS#3308) Fixes OrchardCMS#3305 * Fix wrong language label of this repository (OrchardCMS#3303) * Add guides section to docs (OrchardCMS#3309) * Reusing the same part instances (OrchardCMS#3310) Fixes OrchardCMS#3305 * Fix bug workflow.JavaScriptWorkflowScriptEvaluator (OrchardCMS#3314) * Remove temporary reconfiguration of google options (OrchardCMS#3321) * Update ShapeCacheTag.cs (OrchardCMS#3322) * Update CacheExpiresSlidingTag.cs (OrchardCMS#3323) * Update GoogleAuthenticationSettings.Edit.cshtml Fixes OrchardCMS#3329 * Fixing TenantApiController swagger support Fixes OrchardCMS#2985 * Updating fluid (OrchardCMS#3284) * Only add a user claim when it is not present (OrchardCMS#3326) Fixes OrchardCMS#3327 * Fix BlobFileStore (OrchardCMS#3336) Fixes OrchardCMS#3280 * Fixing new content item edition (OrchardCMS#3337) Fixes OrchardCMS#3333 * Use jsDelivr for font-awesome Fixes OrchardCMS#3330 Fixes OrchardCMS#3318 * Use NullStringLocalizer by default in the CMS (OrchardCMS#3344) Fixes OrchardCMS#3301 * [Https] Propose current port as SSL Port (OrchardCMS#3026) (OrchardCMS#3350) Fixes OrchardCMS#3026 * Fixing Mvc sample Fixes OrchardCMS#3339 * Prevent loading all workflows in the startup (OrchardCMS#3320) * Update README.md (OrchardCMS#3262) * Added graphql query sample (OrchardCMS#3285) * Implementing content type permissions (OrchardCMS#3354) Fixes OrchardCMS#2570 * Improved dynamic cache performance * Rollback the key from "WorkflowExecutionContext" to "Workflow" (OrchardCMS#3361) * Replaces existing arrays when updating content items via script (OrchardCMS#3357) * Defining Menu parts (OrchardCMS#3367) Fixes OrchardCMS#3276 * Fix Get not returning changes made be Apply (OrchardCMS#3365) * Updating Fluid * Fixing MVC templates * Applying documentation feedback * Adding Guides index * Fixing documentation index * Moving the guides up in the index * Fixing Fluid concurrency * Add new guide about adding admin menus. (OrchardCMS#3378) * Add new guide about creating cms application (OrchardCMS#3379) * Fixing guides index * Fixing typo * Preventing doc changes from running the CIs * Fixing formatting * Migrating microsoft/dotnet to MCR * Add Google module documentation to toc. Fix Facebook and Twitter documentation * Fixing route (OrchardCMS#3386) Fixes OrchardCMS#3383 * Missing description and name in manifests (OrchardCMS#3385) Fixes OrchardCMS#3384 * Adding SVG in allowed media types * Add screenshots to create cms guide. (OrchardCMS#3387) * Add Crowdin badge to Localization page * Add return url to add and edit field views to make them usable from different sources. (OrchardCMS#3390) Fixes OrchardCMS#3389 * HTML Escaping - Change 'Raw' to 'raw' (OrchardCMS#3393) The liquid filter needs to be lowercase 'raw' to work, uppercase 'Raw' did not work for me. * Add CodeMirror autorefresh (OrchardCMS#3394) Fixes OrchardCMS#3376 * Fix build for docker (OrchardCMS#3395) * Fixing DataAnnotations localization (OrchardCMS#3396) Fixes OrchardCMS#2974 * Adding localization file guide (OrchardCMS#3397) [skip ci] * Updated badge for appveyor * Fixed URI * Fix typos in 'Installing Localization Files' guide * Add in `crop` for Resize Mode (OrchardCMS#3411) `crop` is already supported in liquid syntax, just isn't documented. Adding in this documentation. * Call PublishAsync instead of using VersionOptions. (OrchardCMS#3420) * small fix on dotnet restore (OrchardCMS#3423) * Improve create button on ListPart (OrchardCMS#3412) * Fix codemirror.css path (OrchardCMS#3399) * Fixing Media Liquid Filter 'resize_url' arguments (OrchardCMS#3425) Fixes OrchardCMS#3408 * Revert "Call PublishAsync instead of using VersionOptions. (OrchardCMS#3420)" (OrchardCMS#3427) This reverts commit b19eda5. * Updating Fluid * Redirecting user to confirmation page after password reset request. (OrchardCMS#3429) * Update README.md
Set up the Authorization server to allow client credentials flow:
Add a new application with a previously created client credential role:
Need to create the application first without any client credential, then edit it to add the credential, because of the following error:
Tried with SQL Server, tried with predefined roles, but get the same issue.
The text was updated successfully, but these errors were encountered: