After upgrade from 1.8.0.1 to 1.8.1 exception: Exception from Tracker recompute function

Hello everybody!

First of all thank you for all the amazing stuff and enormous amount of effort you put in the platform!
Secondly; After three years of experience with the Meteor platform this is a desperate shout out for help. We are facing a really strange behaviour when upgrading our project from version 1.8.0.1 to version 1.8.1.

The behaviour is follows :
When navigation to the application we subscribe to collections by making use of this code (Iron route in combination with Blaze templates) :

this.route('menu', {
        checkDirty: true,
        path: '/:environmentId?/menu/:param1?/:param2?/:param3?/:param4?/:param5?/:param6?',
        waitOn() {
            const url = Iron.Location.get().path;
            const environmentId = Session.get('environmentId');
            if (!Meteor.userId() || !environmentId) {
                return [];
            }
            return [
                this.subscribe('userMenus', environmentId),
                this.subscribe('menuContent', url, Meteor.Device.isDesktop()), 
                this.subscribe('environments', { _id: environmentId }),
            ];
        },

Unfortunately after roughly 4 minutes and 20 seconds the client application crashes (after subscribing) with the following error in the browser console :

When switching to our production branch which still runs on Meteor 1.8.0.1 this behaviour cannot be reproduced.
I am aware that this is a very vague problem but I am convinced it is related to the update because a rollback of only the Meteor version makes this problem also disappear.

I really hope someone can point me in the right direction as this leaves us on version 1.8.0.1. Thanks in advance for the effort .

Kind regards ,
Gabry

i’m also stuck at 1.8.0, i’m waiting the 1.8.2 in hope i won’t have to investigate :face_with_monocle:

Hello,

This is a follow up now that we are in desperate need of an upgrade of our application. At this stage we are trying to upgrade from version 1.8.01 to version 1.10.2.

Everything seems fine except this nasty bug.

We have narrowed the problem down and it ‘seems’ that the issue is related to Iron Route.

Our application is using Iron:route in combination with the Blaze templating engine. When we are using a route like this :

this.route(‘/:environmentId?/menu/:param1?/:param2?/:param3?/:param4?/:param5?/:param6?’, {

waitOn() {

return Meteor.subscribe(‘menuContent’, this.url, true);

},

action() {

const layout = Layouts.findOne();

console.log(‘Layout from subscription’, layout);

},

});

When we interact with the application it will output the Layout from the MiniMongo:

Unfortunately after approximately five minutes a new route (different value of the URL parameter) will lead to :

As you would understand the result of the second subscription result is the problem. When a subscription after five minutes is being made, the publish function is not being triggered at all!

The publication looks like this :

Meteor.publish(‘menuContent’, function (url, isDesktop) {

check(url, String);

return Layouts.find({_id: ‘JRfphYMtQuL97k9Pd’})

});

When we remove the URL parameter or assign the URL a static value the subscription stays interactive. In other words the application works as expected.

Please advise as we are really in a desperate need of an upgrade.

Hello !

I finally found the problem. After this amount of silence related to this thread … it had to be something implementation specific and indeed it was.
Loosing subscription after five minutes was caused by the following code :

Meteor.setInterval(function() {
let newDdpInfo = {};
_.each(Meteor.server.sessions, function(val, key) {
newDdpInfo[key] = ddpInfo[key];
});
ddpInfo = newDdpInfo;
}, 5*60000);

Removed this section and the subscriptions are still alive after five minutes … Great !! This answer might help somebody else …

Ticket can be closed