Closed Bug 1285157 Opened 8 years ago Closed 8 years ago

dom/ipc/ContentChild.cpp:631:24: error: no matching function for call to 'mozilla::dom::ContentChild::SetTransport(IPC::Channel*&)'

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(firefox50 fixed)

RESOLVED FIXED
Tracking Status
firefox50 --- fixed

People

(Reporter: gerard-majax, Assigned: gerard-majax)

References

Details

Attachments

(1 file)

09:05:20     INFO -  /home/worker/workspace/gecko/dom/ipc/ContentParent.cpp: In constructor 'mozilla::dom::ContentParent::ContentParent(mozilla::dom::ContentParent*, const nsAString_internal&, base::ProcessHandle, nsTArray<mozilla::ipc::ProtocolFdMapping>&&)':
09:05:20    ERROR -  /home/worker/workspace/gecko/dom/ipc/ContentParent.cpp:2321:60: error: no matching function for call to 'mozilla::dom::ContentParent::SetTransport(IPC::Channel*)'
09:05:20     INFO -     IToplevelProtocol::SetTransport(mSubprocess->GetChannel());
09:05:20     INFO -                                                              ^
09:05:20     INFO -  /home/worker/workspace/gecko/dom/ipc/ContentParent.cpp:2321:60: note: candidate is:
09:05:20     INFO -  In file included from ../../ipc/ipdl/_ipdlheaders/mozilla/dom/PNuwa.h:15:0,
09:05:20     INFO -                   from ../../ipc/ipdl/_ipdlheaders/mozilla/dom/PNuwaParent.h:9,
09:05:20     INFO -                   from ../../dist/include/mozilla/dom/NuwaParent.h:11,
09:05:20     INFO -                   from /home/worker/workspace/gecko/dom/ipc/ContentParent.h:10,
09:05:20     INFO -                   from /home/worker/workspace/gecko/dom/ipc/AppProcessChecker.cpp:10,
09:05:20     INFO -                   from Unified_cpp_dom_ipc0.cpp:2:
09:05:20     INFO -  ../../dist/include/mozilla/ipc/ProtocolUtils.h:239:10: note: void mozilla::ipc::IToplevelProtocol::SetTransport(mozilla::UniquePtr<IPC::Channel>)
09:05:20     INFO -       void SetTransport(UniquePtr<Transport> aTrans)
09:05:20     INFO -            ^
09:05:20     INFO -  ../../dist/include/mozilla/ipc/ProtocolUtils.h:239:10: note:   no known conversion for argument 1 from 'IPC::Channel*' to 'mozilla::UniquePtr<IPC::Channel>'
0:16:17     INFO -  In file included from Unified_cpp_ipc_glue0.cpp:119:0:
10:16:17     INFO -  /home/worker/workspace/gecko/ipc/glue/ProcessUtils_linux.cpp: In function 'void mozilla::ipc::ProcLoaderClientGeckoInit()':
10:16:17    ERROR -  /home/worker/workspace/gecko/ipc/glue/ProcessUtils_linux.cpp:221:67: error: cannot convert 'mozilla::UniquePtr<IPC::Channel>' to 'mozilla::ipc::Transport* {aka IPC::Channel*}' in initialization
10:16:17     INFO -     Transport *transport = OpenDescriptor(fd, Transport::MODE_CLIENT);
10:16:17     INFO -                                                                     ^
10:16:17     INFO -  In file included from Unified_cpp_ipc_glue0.cpp:119:0:
10:16:17     INFO -  /home/worker/workspace/gecko/ipc/glue/ProcessUtils_linux.cpp: In function 'int mozilla::ipc::ProcLoaderServiceRun(pid_t, int, int, const char**, FdArray&)':
10:16:17    ERROR -  /home/worker/workspace/gecko/ipc/glue/ProcessUtils_linux.cpp:572:69: error: cannot convert 'mozilla::UniquePtr<IPC::Channel>' to 'mozilla::ipc::Transport* {aka IPC::Channel*}' in initialization
10:16:17     INFO -       Transport *transport = OpenDescriptor(fd, Transport::MODE_CLIENT);
10:16:17     INFO -                                                                       ^
10:16:17    ERROR -  make[6]: *** [Unified_cpp_ipc_glue0.o] Error 1
/home/worker/workspace/gecko/ipc/glue/ProcessUtils_linux.cpp:226:37: error: no matching function for call to 'mozilla::ipc::PProcLoaderParent::Open(mozilla::RemoveReference<mozilla::UniquePtr<IPC::Channel>&>::Type, pid_t&, MessageLoop*, mozilla::ipc::Side)'
/home/worker/workspace/gecko/ipc/glue/ProcessUtils_linux.cpp:576:74: error: no matching function for call to 'mozilla::ipc::ProcLoaderChild::Open(mozilla::RemoveReference<mozilla::UniquePtr<IPC::Channel>&>::Type, pid_t&, MessageLoop*)'
Blocks: 1274295
green: https://treeherder.mozilla.org/#/jobs?repo=try&revision=a416ee5f8acf&filter-tier=1&filter-tier=2&filter-tier=3&selectedJob=23491255

I applied that on a local build of project tablet (bug 1283744 included of course), and it was booting, so I guess it looks good :)
Assignee: nobody → lissyx+mozillians
Comment on attachment 8768779 [details]
Bug 1285157 - Remove SetTransport(aChannel) for NUWA

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/62830/diff/1-2/
Comment on attachment 8768779 [details]
Bug 1285157 - Remove SetTransport(aChannel) for NUWA

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/62830/diff/2-3/
Attachment #8768779 - Flags: review?(cyu) → review?(gsvelto)
Comment on attachment 8768779 [details]
Bug 1285157 - Remove SetTransport(aChannel) for NUWA

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/62830/diff/3-4/
Attachment #8768779 - Flags: review?(gsvelto) → review?(wmccloskey)
Had to add bug 1285529 in my try because I rebased on top of current m-c :)
https://treeherder.mozilla.org/#/jobs?repo=try&revision=27b42f525a9d
I fear this is actually breaking NUWA :/
Flags: needinfo?(cyu)
(In reply to Alexandre LISSY :gerard-majax from comment #17)
> I fear this is actually breaking NUWA :/

Using old debug printf(), I can confirm that ResetTransports() does not gets called after bug 1283744 is applied.
Blocks: 1285662
I think the content process crashed after it's forked from Nuwa. ContentChild::Init() calls SetTransport() in the Nuwa process, and the transport is used after it forks a child in ResetTransports(): https://dxr.mozilla.org/mozilla-central/rev/23dc78b7b57e9f91798ea44c242a04e112c37db0/dom/ipc/ContentChild.cpp#548

And because we require that all process forked from Nuwa on b2g, no content process can be created. Instead of removing the SetTransport() calls, what you need is making a Transport instance with an existing file descriptor, like what we do in https://dxr.mozilla.org/mozilla-central/rev/23dc78b7b57e9f91798ea44c242a04e112c37db0/gfx/layers/ipc/CompositorBridgeParent.cpp#2810
Flags: needinfo?(cyu)
Cervantes, could we at least land this patch ? It will unblock building, and we can fix NUWA later.
Flags: needinfo?(cyu)
Comment on attachment 8768779 [details]
Bug 1285157 - Remove SetTransport(aChannel) for NUWA

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/62830/diff/4-5/
Attachment #8768779 - Flags: review?(wmccloskey) → review?(cyu)
Comment on attachment 8768779 [details]
Bug 1285157 - Remove SetTransport(aChannel) for NUWA

https://reviewboard.mozilla.org/r/62830/#review60578

r+ for unblocking builds.
Attachment #8768779 - Flags: review?(cyu) → review+
Pushed by alissy@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fcfa26398425
Remove SetTransport(aChannel) for NUWA r=cyu
Flags: needinfo?(cyu)
https://hg.mozilla.org/mozilla-central/rev/fcfa26398425
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: