Closed Bug 1252732 Opened 8 years ago Closed 8 years ago

speech-dispatcher processes spawned from SpeechDispatcherService even when not used and live after application terminates

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
firefox47 - wontfix
firefox48 + fixed

People

(Reporter: karlt, Unassigned)

References

Details

(Keywords: regression, Whiteboard: btpp-fixlater)

These speech-dispatcher processes are spawned during start-up, even though
they are not used.  They present also as 4 streams in pulseaudio mixers, and
continue to exist, even after quitting the application.

#0  mozilla::dom::SpeechDispatcherService::Init (this=0x7fd4ba4d7980)
    at /mnt/ssd1/karl/moz/dev/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp:307
#1  0x00007fd4f5ba721b in mozilla::dom::SpeechDispatcherService::GetInstance (
    create=true)
    at /mnt/ssd1/karl/moz/dev/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp:540
#2  0x00007fd4f5ba729c in mozilla::dom::SpeechDispatcherService::GetInstanceForService ()
    at /mnt/ssd1/karl/moz/dev/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp:550
#3  0x00007fd4f5ba53b0 in SpeechDispatcherServiceConstructor (aOuter=0x0, 
    aIID=..., aResult=0x7fff94eb3320)
    at /mnt/ssd1/karl/moz/dev/dom/media/webspeech/synth/speechd/SpeechDispatcherModule.cpp:19
#4  0x00007fd4f2bffe9b in mozilla::GenericFactory::CreateInstance (
    this=0x7fd4ba4f0220, aOuter=0x0, aIID=..., aResult=0x7fff94eb3320)
    at /mnt/ssd1/karl/moz/dev/xpcom/glue/GenericFactory.cpp:17
#5  0x00007fd4f2b98a90 in nsComponentManagerImpl::CreateInstanceByContractID (
    this=0x7fd502e77410, 
    aContractID=0x7fd4b1a510d0 "@mozilla.org/synthspeechdispatcher;1", 
    aDelegate=0x0, aIID=..., aResult=0x7fff94eb3320)
    at /mnt/ssd1/karl/moz/dev/xpcom/components/nsComponentManager.cpp:1235
#6  0x00007fd4f2b999b0 in nsComponentManagerImpl::GetServiceByContractID (
    this=0x7fd502e77410, 
    aContractID=0x7fd4b1a510d0 "@mozilla.org/synthspeechdispatcher;1", 
    aIID=..., aResult=0x7fff94eb3460)
    at /mnt/ssd1/karl/moz/dev/xpcom/components/nsComponentManager.cpp:1592
#7  0x00007fd4f2c18352 in CallGetService (
    aContractID=0x7fd4b1a510d0 "@mozilla.org/synthspeechdispatcher;1", 
    aIID=..., aResult=0x7fff94eb3460)
    at /mnt/ssd1/karl/moz/dev/xpcom/glue/nsComponentManagerUtils.cpp:69
#8  0x00007fd4f2c18888 in nsGetServiceByContractID::operator() (
    this=0x7fff94eb3450, aIID=..., aInstancePtr=0x7fff94eb3460)
    at /mnt/ssd1/karl/moz/dev/xpcom/glue/nsComponentManagerUtils.cpp:280
#9  0x00007fd4f2c03038 in nsCOMPtr_base::assign_from_gs_contractid (
    this=0x7fff94eb3500, aGS=..., aIID=...)
    at /mnt/ssd1/karl/moz/dev/xpcom/glue/nsCOMPtr.cpp:103
#10 0x00007fd4f2b94069 in nsCOMPtr<nsISupports>::nsCOMPtr (
    this=0x7fff94eb3500, aGS=...)
    at /mnt/sda11/karl/obj/dist/include/nsCOMPtr.h:855
#11 0x00007fd4f2b93b90 in NS_CreateServicesFromCategory (
    aCategory=0x7fd4f9620729 "profile-after-change", aOrigin=0x0, 
    aObserverTopic=0x7fd4f9620729 "profile-after-change")
    at /mnt/ssd1/karl/moz/dev/xpcom/components/nsCategoryManager.cpp:806
#12 0x00007fd4f7379828 in nsXREDirProvider::DoStartup (this=0x7fff94eb3900)
    at /mnt/ssd1/karl/moz/dev/toolkit/xre/nsXREDirProvider.cpp:888
#13 0x00007fd4f7369711 in XREMain::XRE_mainRun (this=0x7fff94eb38c0)
    at /mnt/ssd1/karl/moz/dev/toolkit/xre/nsAppRunner.cpp:4151
#14 0x00007fd4f736a3ae in XREMain::XRE_main (this=0x7fff94eb38c0, argc=4, 
    argv=0x7fff94eb4df8, aAppData=0x7fff94eb3ae0)
    at /mnt/ssd1/karl/moz/dev/toolkit/xre/nsAppRunner.cpp:4384
#15 0x00007fd4f736a6c3 in XRE_main (argc=4, argv=0x7fff94eb4df8, 
    aAppData=0x7fff94eb3ae0, aFlags=0)
    at /mnt/ssd1/karl/moz/dev/toolkit/xre/nsAppRunner.cpp:4486
#16 0x0000000000405872 in do_main (argc=4, argv=0x7fff94eb4df8, 
    envp=0x7fff94eb4e20, xreDirectory=0x7fd502e43780)
    at /mnt/ssd1/karl/moz/dev/browser/app/nsBrowserApp.cpp:220
#17 0x0000000000405c82 in main (argc=4, argv=0x7fff94eb4df8, 
    envp=0x7fff94eb4e20)
    at /mnt/ssd1/karl/moz/dev/browser/app/nsBrowserApp.cpp:360

https://hg.mozilla.org/mozilla-central/annotate/a4929411c0aa3ec6b727e2bc2fc050c8199c6573/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp#l352

https://hg.mozilla.org/mozilla-central/annotate/a4929411c0aa3ec6b727e2bc2fc050c8199c6573/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp#l307
needinfoing some people who would know.
Flags: needinfo?(kdavis)
Flags: needinfo?(eitan)
Whiteboard: btpp-followup-2016-03-09
TTS is Eitan's baby.
Flags: needinfo?(kdavis)
This is definitely a flaw with the current design, and the requirements of the current speech spec. I'm curious to know what the priority on this would be?

Should this block release?
Flags: needinfo?(eitan)
(In reply to Eitan Isaacson [:eeejay] from comment #3)
> This is definitely a flaw with the current design, and the requirements of
> the current speech spec. I'm curious to know what the priority on this would
> be?
> 
> Should this block release?

It's probably worth asking on dev–platform.
Depends on: 1254378
Whiteboard: btpp-followup-2016-03-09 → btpp-fixlater
Are you going to make the call about whether or not this should block release (or riding the trains?), Eitan?
Flags: needinfo?(eitan)
Sorry, I was waiting for someone more opinionated. I think this should block the train ride. Not sure what bz flag is most appropriate.

Andrew, could use give this but the appropriate flag?
Flags: needinfo?(eitan) → needinfo?(overholt)
[Tracking Requested - why for this release]:
See comment 1:

"These speech-dispatcher processes are spawned during start-up, even though
they are not used.  They present also as 4 streams in pulseaudio mixers, and
continue to exist, even after quitting the application."
Flags: needinfo?(overholt)
(In reply to Andrew Overholt [:overholt] from comment #7)
> [Tracking Requested - why for this release]:
> See comment 1:
> 
> "These speech-dispatcher processes are spawned during start-up, even though
> they are not used.  They present also as 4 streams in pulseaudio mixers, and
> continue to exist, even after quitting the application."

Hi Andrew, just so I understand the end-user impact of this better, does this lead to a memory leak that could potentially grow? Is this a fixed memory leak? Also based on "btpp-fixlater" does it mean we don't plan to fix for Fx47? I am trying to understand whether this needs to be tracked for Fx47 or not. Is this a new regression in 47?
Flags: needinfo?(overholt)
My understanding is that it's a fixed increase in memory usage (due to process overhead, I'm inferring).

btpp-fixlater just means we'd like to see it fixed in the next couple of month.

It's a new "regression" in that it's the outcome of a new feature.

Eitan, is this going to ride the trains with 47?
Flags: needinfo?(overholt) → needinfo?(eitan)
Since speech is not riding the trains (it is preffed on only in nightly), this bug should not appear in anything but nightly. I am working on a patch now that will hopefully land in 48, and I don't recommend it be uplifted. Does that answer the question?
Flags: needinfo?(eitan)
That answers my question.

Ritu, does that make it clear from your perspective?
Flags: needinfo?(rkothari)
(In reply to Andrew Overholt [:overholt] from comment #11)
> That answers my question.
> 
> Ritu, does that make it clear from your perspective?

Yup, Thanks Andrew and Eitan. Wontfix for 47.
Flags: needinfo?(rkothari)
Bug 1254378 makes speed load lazily, so you shouldn't see any processes spawn in startup anymore.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Depends on: 1262067
No longer depends on: 1262067
Sounds like this was fixed for 48 in bug 1254378. 
Eitan does that mean this feature isn't limited to nightly anymore? Is it riding the train with 48?
Flags: needinfo?(eitan)
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #14)
> Sounds like this was fixed for 48 in bug 1254378. 
> Eitan does that mean this feature isn't limited to nightly anymore? Is it
> riding the train with 48?

Speech isn't riding the trains, it is preffed off, so this fix doesn't really touch releases.
Flags: needinfo?(eitan)
Component: DOM → DOM: Core & HTML
See Also: → 1444567
You need to log in before you can comment on or make changes to this bug.