ionic-team / ionic-v1

The repo for Ionic 1.x. For the latest version of Ionic, please see https://github.com/ionic-team/ionic
Other
192 stars 187 forks source link

"$digest is in progress" errors in Ionic on tap #311

Open stevebering opened 6 years ago

stevebering commented 6 years ago

Short description of the problem:

We have an internal application that has around 300 users. Though we are not able to replicate it in our test environment, in our production environment users are consistently getting "$digest is already in progress" error messages.

What behavior are you expecting?

That taps would not initiate a new $digest cycle if one was already in progress.

Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc) {anonymous}()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:13443:32 beginPhase()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:30758:31 $apply()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:30498:21 {anonymous}()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:65428:19 defaultHandlerWrapper()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:16792:15 eventHandler()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:16780:23 _wrapped()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ng-rollbar/ng-rollbar.min.js:6:4582 dispatchEvent()@[native code] triggerMouseEvent()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:2953:20 tapClick()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:2942:20 tapTouchEnd()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:3069:13 send()@[native code] {anonymous}()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:25005:15 sendReq()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:24798:21 serverRequest()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:24508:23 processQueue()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:29132:30 {anonymous}()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:29148:39 $digest()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:30216:36 $apply()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:30508:31 flushOnChangesQueue()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:21189:26 $digest()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:30294:36 $apply()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:30508:31 done()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:24829:53 completeRequest()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:25027:15 requestLoaded()@file:///var/mobile/Containers/Data/Application/1D14A5BC-FFA3-4C19-93AD-599195794206/Library/NoCloud/codepush/deploy/versions/7496569f202ed6e5cf8f82fb3f813779e941ba1e47876b18116e1ed7f30b7005/www/lib/ionic/release/js/ionic.bundle.js:24968:24

Note that there is no reference to our application code in the stacktrace. I have many additional instances of stack traces for this issue, if those would be helpful.

Which Ionic Version? 1.x or 2.x 1.3.3

ivinogradov commented 5 years ago

Happens for us only when running as a packaged iPad application (Ionic 1.3.2 and 1.3.5). Can't replicate when running in a browser (obviously, because the call is coming from [native code] based on the stack trace). We have a multi-tab app, and it happens when switching tabs in rapid succession without allowing data to reload and render.

Has anyone found a solution to that?

Edit: Found this related issue and discussion: https://github.com/ionic-team/ionic/issues/6634