Hi bardiamond,
I don't know if you have solved you problem, I found my bug, but it was difficult.
I have a custom discount condition plugin, calculating subtotal amount, who was calling himself when evaluating subtotal amount
Here is a part of the stack trace, we can see the recursion:
...
...
Nop.Plugin.DiscountRules.HasCartAmount.dll!Nop.Plugin.DiscountRules.HasCartAmount.HasCartAmountDiscountRequirementRule.CheckRequirement(Nop.Services.Discounts.CheckDiscountRequirementRequest request = {Nop.Services.Discounts.CheckDiscountRequirementRequest}) + 0x6b0 octets
Nop.Services.dll!Nop.Services.Discounts.DiscountService.IsDiscountValid(Nop.Core.Domain.Discounts.Discount discount = {System.Data.Entity.DynamicProxies.Discount_5BC789E9DF222F06B29A07934C8190741C983B1AA289383A99EFAD04310A403E}, Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}, string couponCodeToValidate = null) Ligne 351 + 0x2d octets C#
Nop.Services.dll!Nop.Services.Discounts.DiscountService.IsDiscountValid(Nop.Core.Domain.Discounts.Discount discount = {System.Data.Entity.DynamicProxies.Discount_5BC789E9DF222F06B29A07934C8190741C983B1AA289383A99EFAD04310A403E}, Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}) Ligne 297 + 0x26 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetOrderSubtotalDiscount(Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}, decimal orderSubTotal = 70.986622073578595317725752508, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null) Ligne 320 + 0x4c octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., bool includingTax = true, out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0, out System.Collections.Generic.SortedDictionary<decimal,decimal> taxRates = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile.) Ligne 246 + 0x50 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., bool includingTax = true, out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0) Ligne 140 + 0x56 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0) Ligne 120 + 0x4f octets C#
Nop.Plugin.DiscountRules.HasCartAmount.dll!Nop.Plugin.DiscountRules.HasCartAmount.HasCartAmountDiscountRequirementRule.CheckRequirement(Nop.Services.Discounts.CheckDiscountRequirementRequest request = {Nop.Services.Discounts.CheckDiscountRequirementRequest}) + 0x6b0 octets
Nop.Services.dll!Nop.Services.Discounts.DiscountService.IsDiscountValid(Nop.Core.Domain.Discounts.Discount discount = {System.Data.Entity.DynamicProxies.Discount_5BC789E9DF222F06B29A07934C8190741C983B1AA289383A99EFAD04310A403E}, Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}, string couponCodeToValidate = null) Ligne 351 + 0x2d octets C#
Nop.Services.dll!Nop.Services.Discounts.DiscountService.IsDiscountValid(Nop.Core.Domain.Discounts.Discount discount = {System.Data.Entity.DynamicProxies.Discount_5BC789E9DF222F06B29A07934C8190741C983B1AA289383A99EFAD04310A403E}, Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}) Ligne 297 + 0x26 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetOrderSubtotalDiscount(Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}, decimal orderSubTotal = 70.986622073578595317725752508, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null) Ligne 320 + 0x4c octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., bool includingTax = true, out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0, out System.Collections.Generic.SortedDictionary<decimal,decimal> taxRates = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile.) Ligne 246 + 0x50 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., bool includingTax = true, out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0) Ligne 140 + 0x56 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0) Ligne 120 + 0x4f octets C#
> Nop.Plugin.DiscountRules.HasCartAmount.dll!Nop.Plugin.DiscountRules.HasCartAmount.HasCartAmountDiscountRequirementRule.CheckRequirement(Nop.Services.Discounts.CheckDiscountRequirementRequest request = {Nop.Services.Discounts.CheckDiscountRequirementRequest}) + 0x6b0 octets
Nop.Services.dll!Nop.Services.Discounts.DiscountService.IsDiscountValid(Nop.Core.Domain.Discounts.Discount discount = {System.Data.Entity.DynamicProxies.Discount_5BC789E9DF222F06B29A07934C8190741C983B1AA289383A99EFAD04310A403E}, Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}, string couponCodeToValidate = null) Ligne 351 + 0x2d octets C#
Nop.Services.dll!Nop.Services.Discounts.DiscountService.IsDiscountValid(Nop.Core.Domain.Discounts.Discount discount = {System.Data.Entity.DynamicProxies.Discount_5BC789E9DF222F06B29A07934C8190741C983B1AA289383A99EFAD04310A403E}, Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}) Ligne 297 + 0x26 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetOrderSubtotalDiscount(Nop.Core.Domain.Customers.Customer customer = {System.Data.Entity.DynamicProxies.Customer_1A75400B54DEF09F9DB8A7209104F298825A794A495C7F5DBF8EAEFF88520106}, decimal orderSubTotal = 70.986622073578595317725752508, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null) Ligne 320 + 0x4c octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., bool includingTax = true, out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0, out System.Collections.Generic.SortedDictionary<decimal,decimal> taxRates = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile.) Ligne 246 + 0x50 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., bool includingTax = true, out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0) Ligne 140 + 0x56 octets C#
Nop.Services.dll!Nop.Services.Orders.OrderTotalCalculationService.GetShoppingCartSubTotal(System.Collections.Generic.IList<Nop.Core.Domain.Orders.ShoppingCartItem> cart = Count = Impossible d'évaluer l'expression, car le thread actuel se trouve dans un état de dépassement de capacité de la pile., out decimal discountAmount = 0, out Nop.Core.Domain.Discounts.Discount appliedDiscount = null, out decimal subTotalWithoutDiscount = 84.9, out decimal subTotalWithDiscount = 0) Ligne 120 + 0x4f octets C#
Nop.Web.dll!Nop.Web.Controllers.ShoppingCartController.PrepareMiniShoppingCartModel() Ligne 713 + 0x62 octets C#
Nop.Web.dll!Nop.Web.Controllers.ShoppingCartController.FlyoutShoppingCart() Ligne 2070 + 0xd octets C#
Posted:
3 months ago