Closed Bug 1345771 Opened 7 years ago Closed 7 years ago

Build bustage 2017-03-09: RefPtr.h:40:5: error: invalid use of incomplete type 'class mozilla::DOMMediaStream'

Categories

(Core :: Web Speech, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox-esr52 --- unaffected
firefox53 --- unaffected
firefox54 --- fixed
firefox55 --- fixed

People

(Reporter: jorgk-bmo, Assigned: jorgk-bmo)

References

Details

Attachments

(1 file)

Compilation seems to fail on an M-C file with some strange errors varying from platform to platform:

Linux:
mozilla/RefPtr.h:40:5: error: invalid use of incomplete type 'class mozilla::DOMMediaStream'
mozilla/dom/AudioContext.h:38:7: error: forward declaration of 'class mozilla::DOMMediaStream'

Mac:
mozilla/RefPtr.h:40:9: error: member access into incomplete type 'mozilla::DOMMediaStream'

Windows:
mozilla/RefPtr.h(40): error C2027: use of undefined type 'mozilla::DOMMediaStream'
mozilla/RefPtr.h(40): error C2227: left of '->Release' must point to class/struct/union/generic type

I did a clobber, but that didn't fix anything.
Richard reports to be able to compile with M-C at 120c713a857f but not further. Here from the M-C pushlog:

e2a70a374a1c	Hiroyuki Ikezoe — Bug 1344619 - Part 1: Introduce WillCompose() to update various state that we need to update as the result of ComposeStyle(). r=birtles

120c713a857f	Zibi Braniecki — Bug 1337694 - Add language negotiation heuristics to LocaleService. r=jfkthame
Hmm, from the compiler log (Mac):

-fno-omit-frame-pointer  -Werror   /builds/slave/tb-c-cen-m64-00000000000000000/build/mailnews/base/util/nsMsgIncomingServer.cpp
In file included from /builds/slave/tb-c-cen-m64-00000000000000000/build/objdir-tb/dom/bindings/UnifiedBindings18.cpp:2:
In file included from /builds/slave/tb-c-cen-m64-00000000000000000/build/objdir-tb/dom/bindings/SVGUnitTypeValuesBinding.cpp:3:
In file included from /builds/slave/tb-c-cen-m64-00000000000000000/build/objdir-tb/dist/include/mozilla/dom/NonRefcountedDOMObject.h:10:
In file included from /builds/slave/tb-c-cen-m64-00000000000000000/build/objdir-tb/dist/include/nsISupportsImpl.h:14:
In file included from /builds/slave/tb-c-cen-m64-00000000000000000/build/objdir-tb/dist/include/nsISupportsUtils.h:15:
/builds/slave/tb-c-cen-m64-00000000000000000/build/objdir-tb/dist/include/mozilla/RefPtr.h:40:9: error: member access into incomplete type 'mozilla::DOMMediaStream'
    aPtr->Release();
However, on Windows I see:

c:/builds/moz2_slave/tb-c-cen-w32-00000000000000000/build/objdir-tb/_virtualenv/Scripts/python.exe c:/builds/moz2_slave/tb-c-cen-w32-00000000000000000/build/mozilla/config/expandlibs_gen.py -o dom_quota.lib.desc Unified_cpp_dom_quota0.obj  
UnifiedBindings18.cpp
c:\builds\moz2_slave\tb-c-cen-w32-00000000000000000\build\objdir-tb\dist\include\mozilla/RefPtr.h(40): error C2027: use of undefined type 'mozilla::DOMMediaStream'
c:\builds\moz2_slave\tb-c-cen-w32-00000000000000000\build\objdir-tb\dist\include\mozilla\dom\SpeechRecognition.h(35): note: see declaration of 'mozilla::DOMMediaStream'
c:\builds\moz2_slave\tb-c-cen-w32-00000000000000000\build\objdir-tb\dist\include\mozilla/RefPtr.h(39): note: while compiling class template member function 'void mozilla::RefPtrTraits<U>::Release(U *)'
        with
        [
            U=mozilla::DOMMediaStream
        ]

And on Linux:
[snip] -Werror   /builds/slave/tb-c-cen-l64-00000000000000000/build/mailnews/jsaccount/src/JaAbDirectory.cpp
/builds/slave/tb-c-cen-l64-00000000000000000/build/gcc/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.4/../../../../x86_64-unknown-linux-gnu/bin/as: /lib64/libz.so.1: no version information available (required by /builds/slave/tb-c-cen-l64-00000000000000000/build/gcc/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.4/../../../../x86_64-unknown-linux-gnu/bin/as)
In file included from /builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/nsISupportsUtils.h:15:0,
                 from /builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/nsISupportsImpl.h:14,
                 from /builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/mozilla/dom/NonRefcountedDOMObject.h:10,
                 from /builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dom/bindings/SVGUnitTypeValuesBinding.cpp:3,
                 from /builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dom/bindings/UnifiedBindings18.cpp:2:
/builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/mozilla/RefPtr.h: In instantiation of 'static void mozilla::RefPtrTraits<U>::Release(U*) [with U = mozilla::DOMMediaStream]':
/builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/mozilla/RefPtr.h:395:45:   required from 'static void RefPtr<T>::ConstRemovingRefPtrTraits<U>::Release(U*) [with U = mozilla::DOMMediaStream; T = mozilla::DOMMediaStream]'
/builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/mozilla/RefPtr.h:78:52:   required from 'RefPtr<T>::~RefPtr() [with T = mozilla::DOMMediaStream]'
/builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/mozilla/dom/SpeechRecognition.h:133:32:   required from here
/builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/mozilla/RefPtr.h:40:5: error: invalid use of incomplete type 'class mozilla::DOMMediaStream'
     aPtr->Release();

Hiro and Brian, can you please tell me what's going on here? Maybe also Cameron.
Flags: needinfo?(hikezoe)
Flags: needinfo?(cam)
Flags: needinfo?(bbirtles)
(In reply to Jorg K (GMT+1) from comment #3)
> /builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/
> mozilla/dom/SpeechRecognition.h:133:32:   required from here
> /builds/slave/tb-c-cen-l64-00000000000000000/build/objdir-tb/dist/include/
> mozilla/RefPtr.h:40:5: error: invalid use of incomplete type 'class
> mozilla::DOMMediaStream'
>      aPtr->Release();

I am guessing SpeechRecognition.h should include DOMMediaStream.h.
Flags: needinfo?(hikezoe)
(In reply to Hiroyuki Ikezoe (:hiro) from comment #4)
> I am guessing SpeechRecognition.h should include DOMMediaStream.h.
That's all M-C, right, so who's going to fix that?
Attached patch 1345771.patchSplinter Review
Trying this now, will take an hour to complete if successful.
Or maybe that should be: #include "mozilla/DOMMediaStream.h"
DOMMediaStream.h is listed in the EXPORTS section of moz.build rather than EXPORTS.mozilla, for some reason, so it's just "DOMMediaStream.h".
Flags: needinfo?(cam)
Comment on attachment 8845310 [details] [diff] [review]
1345771.patch

OK, so since according to the previous comment this should be OK, maybe just r+ this and I can get it landed if it works. Or would you like me to move the line up or down? I heard it's meant to be alphabetical, but that's just a myth, right?
Attachment #8845310 - Flags: review?(hikezoe)
Attachment #8845310 - Flags: review?(cam)
Comment on attachment 8845310 [details] [diff] [review]
1345771.patch

Review of attachment 8845310 [details] [diff] [review]:
-----------------------------------------------------------------

Looks good, thanks.  I wouldn't worry about the order of the includes since it's all over the place at the moment.
Attachment #8845310 - Flags: review?(hikezoe)
Attachment #8845310 - Flags: review?(cam)
Attachment #8845310 - Flags: review+
Thanks Cameron (fellow Ozzie?). I'll get it landed *if* it works ;-)
Component: General → DOM: Animation
Flags: needinfo?(bbirtles)
Product: Thunderbird → Core
Version: unspecified → Trunk
(In reply to Jorg K (GMT+1) from comment #11)
> Thanks Cameron (fellow Ozzie?). I'll get it landed *if* it works ;-)

Here it works.
Dear Sheriff, please land with:
Bug 1345771 - Include DOMMediaStream.h in SpeechRecognition.h. r=heycam
Keywords: checkin-needed
Pushed by cbook@mozilla.com:
https://hg.mozilla.org/mozilla-central/rev/c40ca7a1bdd9
Include DOMMediaStream.h in SpeechRecognition.h r=heycam a=tomcat
Keywords: checkin-needed
Component: DOM: Animation → Web Speech
Thanks, Tomcat!
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
And the build is indeed fixed too on BSD with this m-c push: http://buildbot.rhaalovely.net/builders/comm-central-amd64/builds/1949
(In reply to Pulsebot from comment #14)
> Pushed by cbook@mozilla.com:
> https://hg.mozilla.org/mozilla-central/rev/c40ca7a1bdd9
> Include DOMMediaStream.h in SpeechRecognition.h r=heycam a=tomcat

This was never merged to inbound?  I've been fighting bustage because of this today.
Assignee: nobody → jorgk
Its now been merged back to m-i.  Seems to solve my problems.  Sorry for the noise here.
Blocks: 1350666
Comment on attachment 8845310 [details] [diff] [review]
1345771.patch

This is needed to un-bust android builds, per bug 1350666.
Attachment #8845310 - Flags: approval-mozilla-aurora?
And indeed it does unbust them, so transitively that approval request is for a (not yet marked) 54 blocker.
Comment on attachment 8845310 [details] [diff] [review]
1345771.patch

Fix a build bustage. Aurora54+.
Attachment #8845310 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: