Bug 1769878 Comment 4 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

(In reply to Tyson Smith [:tsmith] from comment #1)
> A Pernosco session is available here: https://pernos.co/debug/-uCYdFryO8hFvxXKTu5zCA/index.html

Thanks, always appreciated! I put some notes.

(In reply to Marco Castelluccio [:marco] from comment #3)
> Jens, Olli, could this have been caused by your commits in bug 1756172?

Yes, I think so. It seems we anticipated the moment the cycle collector is shut down before the last round of event processing which happens inside `WorkerPrivate::ScheduleDeletion` and changing the refcount of cycle collected objects as happening here for the global (which is kept alive by a callback beyond the workjer's lifetime) will just fail. 

Actually I think we should inhibit any further dispatch to the worker thread [starting from here](https://searchfox.org/mozilla-central/rev/b462b11e71b500e084f51e61fbd9e19ea0122c78/dom/workers/RuntimeService.cpp#2061-2064) **before** we do our last explicit round of processing before the cycle collector shutdown. And `WorkerPrivate::ScheduleDeletion` IMHO should not process any further events on the worker thread at all.

WDYT, Olli?
(In reply to Tyson Smith [:tsmith] from comment #1)
> A Pernosco session is available here: https://pernos.co/debug/-uCYdFryO8hFvxXKTu5zCA/index.html

Thanks, always appreciated! I put some notes.

(In reply to Marco Castelluccio [:marco] from comment #3)
> Jens, Olli, could this have been caused by your commits in bug 1756172?

Yes, I think so. It seems we anticipated the moment the cycle collector is shut down before the last round of event processing which happens inside `WorkerPrivate::ScheduleDeletion` and thus changing the refcount of cycle collected objects as happening here for the global (which is kept alive by a callback beyond the workjer's lifetime) will just fail. 

Actually I think we should inhibit any further dispatch to the worker thread [starting from here](https://searchfox.org/mozilla-central/rev/b462b11e71b500e084f51e61fbd9e19ea0122c78/dom/workers/RuntimeService.cpp#2061-2064) **before** we do our last explicit round of processing before the cycle collector shutdown. And `WorkerPrivate::ScheduleDeletion` IMHO should not process any further events on the worker thread at all.

WDYT, Olli?
(In reply to Tyson Smith [:tsmith] from comment #1)
> A Pernosco session is available here: https://pernos.co/debug/-uCYdFryO8hFvxXKTu5zCA/index.html

Thanks, always appreciated! I put some notes.

(In reply to Marco Castelluccio [:marco] from comment #3)
> Jens, Olli, could this have been caused by your commits in bug 1756172?

Yes, I think so. It seems we anticipated the moment the cycle collector is shut down before the last round of event processing which happens inside `WorkerPrivate::ScheduleDeletion` and thus changing the refcount of cycle collected objects as happening here for the global (which is kept alive by a callback beyond the worker's lifetime) will just fail. 

Actually I think we should inhibit any further dispatch to the worker thread [starting from here](https://searchfox.org/mozilla-central/rev/b462b11e71b500e084f51e61fbd9e19ea0122c78/dom/workers/RuntimeService.cpp#2061-2064) **before** we do our last explicit round of processing before the cycle collector shutdown. And `WorkerPrivate::ScheduleDeletion` IMHO should not process any further events on the worker thread at all.

WDYT, Olli?
(In reply to Tyson Smith [:tsmith] from comment #1)
> A Pernosco session is available here: https://pernos.co/debug/-uCYdFryO8hFvxXKTu5zCA/index.html

Thanks, always appreciated! I put some notes.

(In reply to Marco Castelluccio [:marco] from comment #3)
> Jens, Olli, could this have been caused by your commits in bug 1756172?

Yes, I think so. It seems we anticipated the moment the cycle collector is shut down before the last round of event processing which happens inside `WorkerPrivate::ScheduleDeletion` and thus changing the refcount of cycle collected objects as happening here for the global (which is kept alive by a callback beyond the worker's lifetime) will just fail. 

Actually I think we should inhibit any further dispatch to the worker thread [starting from here](https://searchfox.org/mozilla-central/rev/b462b11e71b500e084f51e61fbd9e19ea0122c78/dom/workers/RuntimeService.cpp#2061-2064) **before** we do our last explicit round of processing before the cycle collector shuts down. And `WorkerPrivate::ScheduleDeletion` IMHO should not process any further events on the worker thread at all.

WDYT, Olli?

Back to Bug 1769878 Comment 4