FileSystemDirectoryEntry compilation error on esr52

VERIFIED FIXED in Firefox -esr52

Status

()

defect
--
blocker
VERIFIED FIXED
2 years ago
5 months ago

People

(Reporter: tjr, Assigned: tjr)

Tracking

({regression, reproducible})

52 Branch
mozilla55
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr52 fixed, firefox53 wontfix, firefox54 fixed, firefox55 fixed)

Details

Attachments

(1 attachment)

From: https://bugzilla.mozilla.org/show_bug.cgi?id=1299500

Frank-Rainer Grahl comment #35:
> With the patch in esr52 I am having problems compiling SeaMonkey but I think
> Thunderbird and Firefox are also affected. Just didn't try yet. I am getting
> C2061 errors in various comm-esr52 and mozilla-esr52 files which include
> FileSystemDirectoryReader.h. Always the same error. comm-beta compiles fine
> so I think the patch needs adjustment.
> 
> +++ snip +++
> 
> 5 -we4553 -GR-  -O2 -Oy   -Fdgenerated.pdb 
> d:/seabuild/release/comm-esr52-15/obj-x86_64-pc-mingw32/dom/bindings/
> UnifiedBindings5.cpp
> UnifiedBindings5.cpp
> d:/seabuild/release/comm-esr52-15/obj-x86_64-pc-mingw32/dist/include\mozilla/
> dom/FileSystemDirectoryReader.h(31): error C2061: syntax error: identifier
> 'FileSystemDirectoryEntry'
> d:/seabuild/release/comm-esr52-15/obj-x86_64-pc-mingw32/dist/include\mozilla/
> dom/FileSystemDirectoryReader.h(53): error C2065:
> 'FileSystemDirectoryEntry': undeclared identifier
> d:/seabuild/release/comm-esr52-15/obj-x86_64-pc-mingw32/dist/include\mozilla/
> dom/FileSystemDirectoryReader.h(53): error C2923: 'RefPtr':
> 'FileSystemDirectoryEntry' is not a valid template type argument for
> parameter 'T'
> d:/seabuild/release/comm-esr52-15/obj-x86_64-pc-mingw32/dist/include\mozilla/
> dom/FileSystemDirectoryReader.h(38): error C2678: binary '->': no operator
> found which takes a left-hand operand of type 'const RefPtr' (or there is no
> acceptable conversion)
> d:\seabuild\release\comm-esr52-15\obj-x86_64-pc-mingw32\dist\include\mozilla/
> RefPtr.h(316): note: could be 'T *RefPtr<T>::operator ->(void) const'
> d:/seabuild/release/comm-esr52-15/obj-x86_64-pc-mingw32/dist/include\mozilla/
> dom/FileSystemDirectoryReader.h(38): note: while trying to match the
> argument list '(const RefPtr)'
> d:/seabuild/release/comm-esr52-15/obj-x86_64-pc-mingw32/dist/include\mozilla/
> dom/FileSystemDirectoryReader.h(38): error C2039: 'GetParentObject': is not
> a member of 'RefPtr'
> d:\seabuild\release\comm-esr52-15\obj-x86_64-pc-mingw32\dist\include\mozilla/
> RefPtr.h(48): note: see declaration of 'RefPtr'
Thanks. That fixed or better will fix it when checked in. Local build works fine. Still wonder why not all comm-esr52 and mozilla-esr52 apps where hit by it.
Could you ask for review on this one or is there something not ok with it?
I just built esr52 branch on linux with no problems, so I'm trying to figure out why this occurs sometimes and not others. Maybe it was fixed?
I had this problem yesterday building on Windows. I'll try again tonight with a fresh copy of comm-esr52 and see how it goes.
So far I have only seen it in SeaMonkey. Built Thunderbird and Firefox on Windows without problems. It points to the unified sources #5. I am unfamiliar with them. Is it possible that they are split after a certain size is reached and that one one of the source files is missing the include which another provides.? That would explain why it only happens in one product. 

Its occurs only only in the esr52 tree and started after bug 1299500 was checked in.
I built it with the patch and it worked. Then I did a clobber, removed the patch, and built again, and that seemed to work too. Maybe it's been fixed since Sunday.
(In reply to Isaac Schemm from comment #7)
> I built it with the patch and it worked. Then I did a clobber, removed the
> patch, and built again, and that seemed to work too. Maybe it's been fixed
> since Sunday.

Nope, not fixed, as it just occurred when building 64 bit SeaMonkey on Windows:

09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/dom/FileSystemDirectoryReader.h(31): error C2061: syntax error: identifier 'FileSystemDirectoryEntry'
09:26:40 
09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/dom/FileSystemDirectoryReader.h(53): error C2065: 'FileSystemDirectoryEntry': undeclared identifier
09:26:40 
09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/dom/FileSystemDirectoryReader.h(53): error C2923: 'RefPtr': 'FileSystemDirectoryEntry' is not a valid template type argument for parameter 'T'
09:26:40 
09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/dom/FileSystemDirectoryReader.h(38): error C2678: binary '->': no operator found which takes a left-hand operand of type 'const RefPtr' (or there is no acceptable conversion)
09:26:40 
09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/RefPtr.h(316): note: could be 'T *RefPtr<T>::operator ->(void) const'
09:26:40 
09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/dom/FileSystemDirectoryReader.h(38): note: while trying to match the argument list '(const RefPtr)'
09:26:40 
09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/dom/FileSystemDirectoryReader.h(38): error C2039: 'GetParentObject': is not a member of 'RefPtr'
09:26:40 
09:26:40 INFO:root:35:08.10 c:\jenkins\workspace\seamonkey-esr_windows64\obj-x86_64-pc-mingw32\dist\include\mozilla/RefPtr.h(48): note: see declaration of 'RefPtr'
Something which might be very important here: I did a completely fresh build (fresh checkout etc.). So just using clobber might be not enough to reproduce...
Same thing on Linux (the error output looks just slightly different):

15:36:40 INFO:root:37:04.26 libmailnews_imap_src.a.desc
15:36:40 
15:37:01 INFO:root:37:25.24 In file included from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dom/bindings/FileSystemDirectoryReaderBinding.cpp:10:0,
15:37:01 
15:37:01 INFO:root:37:25.24                  from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dom/bindings/UnifiedBindings5.cpp:2:
15:37:01 
15:37:01 INFO:root:37:25.25 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h:31:62: error: expected ‘)’ before ‘*’ token
15:37:01 
15:37:01 INFO:root:37:25.25    explicit FileSystemDirectoryReader(FileSystemDirectoryEntry* aDirectoryEntry,
15:37:01 
15:37:01 INFO:root:37:25.25                                                               ^
15:37:01 
15:37:01 INFO:root:37:25.25 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h:53:10: error: ‘FileSystemDirectoryEntry’ was not declared in this scope
15:37:01 
15:37:01 INFO:root:37:25.25    RefPtr<FileSystemDirectoryEntry> mParentEntry;
15:37:01 
15:37:01 INFO:root:37:25.25           ^
15:37:01 
15:37:01 INFO:root:37:25.25 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h:53:10: note: suggested alternatives:
15:37:01 
15:37:01 INFO:root:37:25.25 In file included from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/DOMJSClass.h:15:0,
15:37:01 
15:37:01 INFO:root:37:25.25                  from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/BindingUtils.h:21,
15:37:01 
15:37:01 INFO:root:37:25.25                  from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/GeneratedAtomList.h:6,
15:37:01 
15:37:01 INFO:root:37:25.25                  from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/mozilla/dom/bindings/AtomList.h:11,
15:37:01 
15:37:01 INFO:root:37:25.25                  from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dom/bindings/FileSystemDirectoryReaderBinding.cpp:3,
15:37:01 
15:37:01 INFO:root:37:25.25                  from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dom/bindings/UnifiedBindings5.cpp:2:
15:37:01 
15:37:01 INFO:root:37:25.25 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/PrototypeList.h:164:3: note:   ‘FileSystemDirectoryEntry’
15:37:01 
15:37:01 INFO:root:37:25.25    FileSystemDirectoryEntry,
15:37:01 
15:37:01 INFO:root:37:25.25    ^
15:37:01 
15:37:01 INFO:root:37:25.25 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/PrototypeList.h:892:3: note:   ‘FileSystemDirectoryEntry’
15:37:01 
15:37:01 INFO:root:37:25.25    FileSystemDirectoryEntry,
15:37:01 
15:37:01 INFO:root:37:25.25    ^
15:37:01 
15:37:01 INFO:root:37:25.25 In file included from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dom/bindings/FileSystemDirectoryReaderBinding.cpp:10:0,
15:37:01 
15:37:01 INFO:root:37:25.26                  from /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dom/bindings/UnifiedBindings5.cpp:2:
15:37:01 
15:37:01 INFO:root:37:25.27 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h:53:34: error: template argument 1 is invalid
15:37:01 
15:37:01 INFO:root:37:25.27    RefPtr<FileSystemDirectoryEntry> mParentEntry;
15:37:01 
15:37:01 INFO:root:37:25.27                                   ^
15:37:01 
15:37:01 INFO:root:37:25.27 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h: In member function ‘nsIGlobalObject* mozilla::dom::FileSystemDirectoryReader::GetParentObject() const’:
15:37:01 
15:37:01 INFO:root:37:25.27 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h:38:24: error: base operand of ‘->’ is not a pointer
15:37:01 
15:37:01 INFO:root:37:25.28      return mParentEntry->GetParentObject();
15:37:01 
15:37:01 INFO:root:37:25.28                         ^
15:37:01 
15:37:01 INFO:root:37:25.30 Warning: -Wreturn-type in /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h: control reaches end of non-void function
15:37:01 
15:37:01 INFO:root:37:25.30 /home/mozilla/jenkins/workspace/seamonkey-esr_linux64/objdir/dist/include/mozilla/dom/FileSystemDirectoryReader.h:39:3: warning: control reaches end of non-void function [-Wreturn-type]
15:37:01 
15:37:01 INFO:root:37:25.30    }
15:37:01 
15:37:01 INFO:root:37:25.30    ^
15:37:01 


Could someone please review the patch and check it in, as this completely blocks building at least for SeaMonkey...
Flags: needinfo?(tom)
I don't really know the first thing about SeaMonkey; nor am I certain that this affects the MinGW build yet. I'm going to pass to a owner on SeaMonkey.
Flags: needinfo?(tom) → needinfo?(neil)
Neil is no longer active. I set IanN on cc. But what should he do anyway? It seems to be a problem with the unified sources where SeaMonkey seems to have the bad luck to be the only affected app. One source seems to be missing the include and imho it is just luck that Firefox and Thunderbird build.
(In reply to Tom Ritter [:tjr] from comment #11)
> nor am I certain that
> this affects the MinGW build yet

It affects all platforms, not just Windows (see comment #10 with the Linux traceback).

Also, as Frank already stated, you can remove the needinfo from Neil, as he is not active anymore.

With Frank and me already describing the build problem here you already have the info from two of the three people actually building SeaMonkey (the other and also the main one is ewong).
Flags: needinfo?(tom)
(In reply to Adrian Kalla [:adriank] from comment #13)
> (In reply to Tom Ritter [:tjr] from comment #11)
> > nor am I certain that
> > this affects the MinGW build yet
> 
> It affects all platforms, not just Windows (see comment #10 with the Linux
> traceback).
> 
> Also, as Frank already stated, you can remove the needinfo from Neil, as he
> is not active anymore.
> 
> With Frank and me already describing the build problem here you already have
> the info from two of the three people actually building SeaMonkey (the other
> and also the main one is ewong).

I understand, but I don't have the authority or technical permission to check things into the tree. I'm going to pass to smaug and hope he can review or help us find someone to review and check in.
Flags: needinfo?(tom)
Flags: needinfo?(neil)
Flags: needinfo?(bugs)
Patch author of bug 1299500 should of course review any patches fixing regressions.
Flags: needinfo?(bugs)
Ok, needinfo for the patch author of bug 1299500 which caused the regression here.
Flags: needinfo?(amarchesini)
Severity: normal → blocker
Keywords: regression
Attachment #8854911 - Flags: review+
Flags: needinfo?(amarchesini)
I am experiencing this building firefox-52.1.0-r1 on a gentoo hardened profile without pulseaudio and with webrtc disabled. This patch fixed it for me.
Status: NEW → ASSIGNED
Comment on attachment 8854911 [details] [diff] [review]
FileSystemDirectoryEntry.patch

[Approval Request Comment]
If this is not a sec:{high,crit} bug, please state case for ESR consideration:
User impact if declined: Clean builds of SeaMonkey (and Firefox) busted
Fix Landed on Version: None - only esr52 is affected by this bug. This bug does not happen neither on c-c nor on c-b.
Risk to taking this patch (and alternatives if risky): None
String or UUID changes made by this patch: None

See https://wiki.mozilla.org/Release_Management/ESR_Landing_Process for more info.
Flags: needinfo?(jcristau)
Attachment #8854911 - Flags: approval-mozilla-esr52?
Flags: needinfo?(jcristau) → needinfo?(rkothari)
Comment on attachment 8854911 [details] [diff] [review]
FileSystemDirectoryEntry.patch

For the sake of consistency, I think we'll want this on Beta too if we end up taking it on ESR52.
Attachment #8854911 - Flags: approval-mozilla-beta?
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/aa5d21723b55
Add missing FileSystemDirectoryEntry.h include to fix bustage that occurs in some build configs. r=baku
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/aa5d21723b55
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Hi Adrian, We just pushed an esr dot release on Friday, which means this bug did not create problems with the release build. Is the firefox build on esr52 branch busted since then?
Flags: needinfo?(rkothari) → needinfo?(akalla)
Hi Tom, could you also please help with my question in the previous comment? Thanks!
Flags: needinfo?(tom)
No, this breakage only occurs for SeaMonkey and (possibly, still unconfirmed) a MinGW build of Firefox.
Flags: needinfo?(tom)
Basically, this patch is strictly doing the right thing. We've likely just managed to avoid Firefox bustage due to unified builds. That also means we could also theoretically break at some point in the future if the unified compilation boundaries were to change and the implicit dependency were to get broken.
FWIW: I have been hitting this issue during local builds on my Linux machine while bisecting an issue we had with our alpha builds that are based on ESR 52.
Duplicate of this bug: 1363633
Comment on attachment 8854911 [details] [diff] [review]
FileSystemDirectoryEntry.patch

add missing header include to fix compilation error in some cases, beta54+, esr52.2+

Also hitting e.g. https://buildd.debian.org/status/fetch.php?pkg=firefox-esr&arch=mips&ver=52.1.0esr-1&stamp=1493994164&raw=0
Flags: needinfo?(akalla)
Attachment #8854911 - Flags: approval-mozilla-esr52?
Attachment #8854911 - Flags: approval-mozilla-esr52+
Attachment #8854911 - Flags: approval-mozilla-beta?
Attachment #8854911 - Flags: approval-mozilla-beta+
Could someone with the necessary permissions uplift this to beta and esr52 please?


(In reply to Ritu Kothari (:ritu) from comment #22)
> Hi Adrian, We just pushed an esr dot release on Friday, which means this bug
> did not create problems with the release build. Is the firefox build on
> esr52 branch busted since then?

It is of course still busted. Interestingly it seems to be busted for everyone performing a clean build - except for builds done on the Mozilla infrastructure. It would be interesting to know what it is that is being done there that results in it work in compare to the "official" build instructions... Especially, as this results in builds being not reproducible outside of MoCo (which makes it harder to verify, that MoCo did not receive a National Security Letter etc.) and also could of course result in other unforeseen problems...


(In reply to Tom Ritter [:tjr] from comment #24)
> No, this breakage only occurs for SeaMonkey and (possibly, still
> unconfirmed) a MinGW build of Firefox.

Several people commented here already, that Firefox is also affected - at least on Linux - and that even before comment #24 ;)
Flags: needinfo?(ryanvm)
(In reply to Adrian Kalla [:adriank] from comment #29)
> Could someone with the necessary permissions uplift this to beta and esr52
> please?

Yes, we have bug queries for that. No need to needinfo :)
Flags: needinfo?(ryanvm)
Duplicate of this bug: 1360903
Blocks: 1299500
No longer depends on: 1299500
Fix verified :)
Status: RESOLVED → VERIFIED
Was this verified on all architectures? I'm building Firefox 52.1.2 ESR on Aarch64, ppc64le, s390x, i586, and x86_64. I get this error on the non-x86 architectures. I verified that your patch is applied. Is there a pre-processor compiler conditional somewhere that compiles the "FileSystemDirectoryEntry.h" header file out of "FileSystemDirectoryReader.h"?

BTW: FF 52.0.0 ESR compiles just fine on all these architectures for us.
(In reply to Charles Robertson from comment #35)
> Was this verified on all architectures? I'm building Firefox 52.1.2 ESR on
> Aarch64, ppc64le, s390x, i586, and x86_64. I get this error on the non-x86
> architectures. I verified that your patch is applied. Is there a
> pre-processor compiler conditional somewhere that compiles the
> "FileSystemDirectoryEntry.h" header file out of
> "FileSystemDirectoryReader.h"?
> 
> BTW: FF 52.0.0 ESR compiles just fine on all these architectures for us.

Sorry, my bad. I missed jcristau@mozilla.com comment above. This will be in esr52.2. :D
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.