Home › Forums › Calendar Products › Events Calendar PRO › Admin event page freeze
- This topic has 16 replies, 3 voices, and was last updated 6 years, 2 months ago by Gilles.
-
AuthorPosts
-
June 23, 2017 at 11:29 pm #1302718GillesParticipant
Hello,
I have a recurring event that I am trying to edit and when I try the page freezes and won’t fully load. The event is visible here:
https://wednesdaynighthop.com/event/dj-dance-party-2016-2016-01-20/all/
How should I go about debugging the issue? I know the obvious answer is to disable all the other plugins. But then my site won’t run properly at all.
Thank you for any advice
June 23, 2017 at 11:56 pm #1302727GillesParticipantI tried disabling all the other plugins on my dev website and the event admin page still freezes. So it looks like it is an issue with the events calendar pro plugin and recurring events.
June 24, 2017 at 12:22 am #1302735GillesParticipantJust mentioning that switching to the WordPress default theme does not help, so nothing to do with my functions.php changes.
June 24, 2017 at 12:28 am #1302737GillesParticipantThe running process seems to be looping inside javascript and keeps consuming more and more memory. Activity Monitor tells me it’s at 4.09 GB of virtual men and rising.
Here is a sample extract from Activity Monitor:
+ ! : | + ! : | + ! 262 operationGetById (in JavaScriptCore) + 2231 [0x7fff95e56ce7]
+ ! : | + ! : | + ! 261 WebCore::JSHTMLFormElement::getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&) (in WebCore) + 845 [0x7fffa095145d]
+ ! : | + ! : | + ! : 261 WebCore::HTMLFormElement::namedItem(WTF::AtomicString const&) (in WebCore) + 36 [0x7fffa0630544]
+ ! : | + ! : | + ! : 236 WebCore::HTMLFormElement::namedElements(WTF::AtomicString const&) (in WebCore) + 51 [0x7fffa0630663]
+ ! : | + ! : | + ! : | 236 WebCore::HTMLCollection::namedItems(WTF::AtomicString const&) const (in WebCore) + 73 [0x7fffa060d529]
+ ! : | + ! : | + ! : | 76 WebCore::HTMLFormControlsCollection::updateNamedElementCache() const (in WebCore) + 262,382,… [0x7fffa062f4d6,0x7fffa062f54e,…]
+ ! : | + ! : | + ! : | 66 WebCore::HTMLFormControlsCollection::updateNamedElementCache() const (in WebCore) + 453 [0x7fffa062f595]
+ ! : | + ! : | + ! : | + 25 WebCore::CollectionNamedElementCache::append(WTF::HashMap<WTF::AtomicStringImpl*, WTF::Vector<WebCore::Element*, 0ul, WTF::CrashOnOverflow, 16ul>, WTF::PtrHash<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::Vector<WebCore::Element*, 0ul, WTF::CrashOnOverflow, 16ul> > >&, WTF::AtomicString const&, WebCore::Element&) (in WebCore) + 172 [0x7fffa060d8dc]
+ ! : | + ! : | + ! : | + ! 16 WTF::HashTableAddResult<WTF::HashTableIterator<WTF::AtomicStringImpl*,June 24, 2017 at 12:33 am #1302738GillesParticipantThe javascript stack trace says it’s stuck in event-recurrence.js on my.add_exclusion.
By the way, the page sometimes finally loads after something like 5 minutes, but it’s obviously completely unusable.
June 24, 2017 at 12:37 am #1302739GillesParticipantTo give you a bit of a description of the event, it’s a weekly event that keeps going and has an occurrence exception once or twice every month. Right now, the event has 46 ‘will not occur on day’ exceptions.
Note that if the plugin cannot handle so many exceptions (which I think it should), it should allow us to do it in the first place.
Let me know what else you may need to debug this bug.
June 24, 2017 at 1:27 am #1302741GillesParticipantI confirm the javascript code is at fault, more specifically this part:
` if ( ‘undefined’ !== typeof data.exclusions && data.exclusions.length ) {
for ( i in data.exclusions ) {
this.add_exclusion( data.exclusions[ i ] );
}//end for
}`I printed out data.exclusions length and it came out as ’51’.
June 24, 2017 at 1:56 am #1302746GillesParticipantI think I’ve mostly narrowed it down to these two function calls in my.add_exclusion:
this.init_dropdowns(); // THIS ONE if ( 'undefined' === typeof data ) { this.toggle_rule( $rule ); } // It's important to trigger the Buttonset after setup of a Recurrence this.init_buttonset(); // THAT ONE
June 27, 2017 at 1:53 pm #1309693AndrasKeymasterHello Gilles,
Thanks for reaching out to us! I’m really sorry about this issue with the recurring events.
We are aware of that issue. The cause of it is the following: in ECPRO version 4.3.4 we have changed how recurring events (and rules) are handled in the background. Unfortunately this caused issues on some sites with some event rules resulting in what you have also described.
One of our recent releases contained a fix that should remedy this issue, however it doesn’t touch custom rules, as there are simply too many scenarios of those which makes it impossible to handle them.
If the problem still exists for you after the update, then the probably the easiest would be to delete the event series and recreate it from scratch.
Alternatively it’s possible to dig in the database and delete only the recurrences and recurrence rules, so you are left with the parent event. This was you only need to set up the recurrence rules.
I’ll flag this thread to our developers (thanks again for all the details), might be something in here that will help us enhance the fix.
Please let me know if I can help you any further with this.
Cheers,
AndrasJune 27, 2017 at 2:46 pm #1309732AndrasKeymasterCould you please test something?
Create a new recurring event with the same number of exclusions (or pretty close to it) and see if you are experiencing the same issue.
This would help us determine if this is a bug or a separate scalability issue.
Thanks,
AndrasJune 29, 2017 at 3:15 pm #1312847GillesParticipantIt can easily be replicated. Create a recurring event with just 15 exclusions will show the poor behavior, that is it will take a good 30 seconds to display its admin page. I don’t think you can call it a scalability issue with so few exclusions. I think scalability would be when you would reach 100 exclusions. Definitely a very poor implementation in my opinion. My guess is that some operations are unnecessarily repeated multiple times, and something is not right with the dropdown and buttonset code:
my.init_dropdowns = function() { $( '.recurrence-row .tribe-dropdown' ).tribe_dropdowns(); }; my.init_buttonset = function() { $( tribe_buttonset.selector.input ).trigger( 'change.tribe_buttonset' ); };
June 30, 2017 at 9:50 am #1314633AndrasKeymasterGilles, thanks a lot for checking that and sharing details. I will flag this to the developers and we’ll definitely investigate this issue.
I am going to set the status of this ticket to “pending fix” and we will update it once there is some news or the fix is released. If you have any new questions or issues please create a new ticket and we’ll be happy to help. Thanks for your patience!
Cheers,
AndrasFebruary 15, 2018 at 6:40 am #1454083NicoMemberHi there,
Just wanted to share with you that a new maintenance release is out, including a fix for this issue. We are aware there’s more room for improvement around this area, but hopefully these initial improvements will alleviate the situation for now.
Find out more about this release → https://theeventscalendar.com/maintenance-release-for-the-week-of-12-feburary-2018/
Update the plugins and let us know if the fix works for your site,
Cheers,
NicoFebruary 15, 2018 at 12:22 pm #1454617GillesParticipantThank you, I will give it a try.
February 15, 2018 at 12:37 pm #1454650GillesParticipantI gave it a go. It is better than before. Two things I would mention:
1) My browser still appears to “freeze” during a few seconds while loading all occurrences/exceptions.
2) There is no loading indicator. An asynchronous loading indicator would be helpful to show the user that the site isn’t permanently frozen.Thank you for working on improving the user experience.
-
AuthorPosts
- The topic ‘Admin event page freeze’ is closed to new replies.