Various bustages in UnifiedProtocols when adjusting the value of files_per_unified_file
Categories
(Core :: IPC, defect)
Tracking
()
People
(Reporter: RyanVM, Unassigned)
References
Details
As was recently seen in bug 1739677 and bug 1700463 before that, UnifiedBindings and UnifiedProtocols are prone to random bustage due to changes which affect which source files are included in each Unified CPP file.
I ran some Try pushes with different values set in https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/frontend/data.py#377 to find more lurking issues:
files_per_unified_file=1
https://treeherder.mozilla.org/logviewer?job_id=357232612&repo=try&lineNumber=38501
INFO - ^
INFO - In file included from UnifiedProtocols1.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/CacheTypes.cpp:22:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:41:26: error: no member named 'Write' in 'IPC::ParamTraits<nsILoadInfo::CrossOriginEmbedderPolicy>'
INFO - IPC::ParamTraits<P>::Write(aMsg, std::forward<R>(aParam));
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:64:37: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<nsILoadInfo::CrossOriginEmbedderPolicy>::Write<const nsILoadInfo::CrossOriginEmbedderPolicy &>' requested here
INFO - IPDLParamTraits<std::decay_t<P>>::Write(aMsg, aActor,
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/CacheTypes.cpp:321:5: note: in instantiation of function template specialization 'mozilla::ipc::WriteIPDLParam<const nsILoadInfo::CrossOriginEmbedderPolicy &>' requested here
INFO - WriteIPDLParam(aMsg, aActor, (aVar).loadingEmbedderPolicy());
INFO - ^
INFO - In file included from UnifiedProtocols1.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/CacheTypes.cpp:22:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:47:33: error: no member named 'Read' in 'IPC::ParamTraits<nsIContentPolicy::nsContentPolicyType>'
INFO - return IPC::ParamTraits<P>::Read(aMsg, aIter, aResult);
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:72:30: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<nsIContentPolicy::nsContentPolicyType>::Read<nsIContentPolicy::nsContentPolicyType>' requested here
INFO - return IPDLParamTraits<P>::Read(aMsg, aIter, aActor, aResult);
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/CacheTypes.cpp:434:12: note: in instantiation of function template specialization 'mozilla::ipc::ReadIPDLParam<nsIContentPolicy::nsContentPolicyType>' requested here
INFO - if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->contentPolicyType())))))) {
INFO - ^
INFO - In file included from UnifiedProtocols1.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/CacheTypes.cpp:22:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:47:33: error: no member named 'Read' in 'IPC::ParamTraits<nsILoadInfo::CrossOriginEmbedderPolicy>'
INFO - return IPC::ParamTraits<P>::Read(aMsg, aIter, aResult);
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:72:30: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<nsILoadInfo::CrossOriginEmbedderPolicy>::Read<nsILoadInfo::CrossOriginEmbedderPolicy>' requested here
INFO - return IPDLParamTraits<P>::Read(aMsg, aIter, aActor, aResult);
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/CacheTypes.cpp:470:12: note: in instantiation of function template specialization 'mozilla::ipc::ReadIPDLParam<nsILoadInfo::CrossOriginEmbedderPolicy>' requested here
INFO - if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->loadingEmbedderPolicy())))))) {
INFO - ^
INFO - 10 errors generated.
ERROR - gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:662: UnifiedProtocols1.o] Error 1
files_per_unified_file=4
https://treeherder.mozilla.org/logviewer?job_id=357232835&repo=try&lineNumber=16009
INFO - In file included from UnifiedProtocols0.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/BlobTypes.cpp:17:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:41:26: error: no member named 'Write' in 'IPC::ParamTraits<mozilla::TimeStamp>'
INFO - IPC::ParamTraits<P>::Write(aMsg, std::forward<R>(aParam));
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:64:37: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<mozilla::TimeStamp>::Write<const mozilla::TimeStamp &>' requested here
INFO - IPDLParamTraits<std::decay_t<P>>::Write(aMsg, aActor,
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/ClientIPCTypes.cpp:47:5: note: in instantiation of function template specialization 'mozilla::ipc::WriteIPDLParam<const mozilla::TimeStamp &>' requested here
INFO - WriteIPDLParam(aMsg, aActor, (aVar).creationTime());
INFO - ^
INFO - In file included from UnifiedProtocols0.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/BlobTypes.cpp:17:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:47:33: error: no member named 'Read' in 'IPC::ParamTraits<mozilla::TimeStamp>'
INFO - return IPC::ParamTraits<P>::Read(aMsg, aIter, aResult);
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:72:30: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<mozilla::TimeStamp>::Read<mozilla::TimeStamp>' requested here
INFO - return IPDLParamTraits<P>::Read(aMsg, aIter, aActor, aResult);
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/ClientIPCTypes.cpp:85:12: note: in instantiation of function template specialization 'mozilla::ipc::ReadIPDLParam<mozilla::TimeStamp>' requested here
INFO - if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->creationTime())))))) {
INFO - ^
INFO - 12 errors generated.
ERROR - gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:662: UnifiedProtocols0.o] Error 1
files_per_unified_file=8
https://treeherder.mozilla.org/logviewer?job_id=357232932&repo=try&lineNumber=15509
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:72:30: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<mozilla::gfx::SurfaceFormat>::Read<mozilla::gfx::SurfaceFormat>' requested here
INFO - return IPDLParamTraits<P>::Read(aMsg, aIter, aActor, aResult);
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/GraphicsMessages.cpp:1181:20: note: in instantiation of function template specialization 'mozilla::ipc::ReadIPDLParam<mozilla::gfx::SurfaceFormat>' requested here
INFO - if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_gfxImageFormat())))))) {
INFO - ^
INFO - In file included from UnifiedProtocols1.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/GamepadEventTypes.cpp:15:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:47:33: error: no member named 'Read' in 'IPC::ParamTraits<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits>>'
INFO - return IPC::ParamTraits<P>::Read(aMsg, aIter, aResult);
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:72:30: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits>>::Read<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits>>' requested here
INFO - return IPDLParamTraits<P>::Read(aMsg, aIter, aActor, aResult);
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/GraphicsMessages.cpp:1196:20: note: in instantiation of function template specialization 'mozilla::ipc::ReadIPDLParam<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits>>' requested here
INFO - if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_IntSize())))))) {
INFO - ^
INFO - In file included from UnifiedProtocols1.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/GamepadEventTypes.cpp:15:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:41:26: error: no member named 'Write' in 'IPC::ParamTraits<mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel>>'
INFO - IPC::ParamTraits<P>::Write(aMsg, std::forward<R>(aParam));
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:64:37: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel>>::Write<const mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel> &>' requested here
INFO - IPDLParamTraits<std::decay_t<P>>::Write(aMsg, aActor,
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/HeadlessWidgetTypes.cpp:33:5: note: in instantiation of function template specialization 'mozilla::ipc::WriteIPDLParam<const mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel> &>' requested here
INFO - WriteIPDLParam(aMsg, aActor, (aVar).InitialClientSize());
INFO - ^
INFO - In file included from UnifiedProtocols1.cpp:2:
INFO - In file included from /builds/worker/workspace/obj-build/ipc/ipdl/GamepadEventTypes.cpp:15:
INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/ShmemMessageUtils.h:11:
ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:47:33: error: no member named 'Read' in 'IPC::ParamTraits<mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel>>'
INFO - return IPC::ParamTraits<P>::Read(aMsg, aIter, aResult);
INFO - ~~~~~~~~~~~~~~~~~~~~~^
INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/IPDLParamTraits.h:72:30: note: in instantiation of function template specialization 'mozilla::ipc::IPDLParamTraits<mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel>>::Read<mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel>>' requested here
INFO - return IPDLParamTraits<P>::Read(aMsg, aIter, aActor, aResult);
INFO - ^
INFO - /builds/worker/workspace/obj-build/ipc/ipdl/HeadlessWidgetTypes.cpp:44:12: note: in instantiation of function template specialization 'mozilla::ipc::ReadIPDLParam<mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel>>' requested here
INFO - if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->InitialClientSize())))))) {
INFO - ^
INFO - 10 errors generated.
ERROR - gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:662: UnifiedProtocols1.o] Error 1
There may be others lurking behind those once fixed as well, but those are all which turned up in the first go-around.
Comment 1•3 years ago
|
||
The severity field is not set for this bug.
:jld, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 2•3 years ago
|
||
I don't know what the severity should be; how important are non-unified builds?
Comment 3•3 years ago
|
||
(In reply to Jed Davis [:jld] ⟨⏰|UTC-7⟩ ⟦he/him⟧ from comment #2)
I don't know what the severity should be; how important are non-unified builds?
They are very important otherwise we regress.
Comment 4•3 years ago
|
||
It looks like the general form of the failure is an IPDL-generated type that depends on a C++ type, with the latter's ParamTraits
in a separate header from the type definition (to avoid pulling in extra headers and slowing down the build in contexts where ParamTraits
isn't needed), but IPDL hasn't been told about that other header with an include
declaration.
Missing headers for the types seen here look like:
CrossOriginEmbedderPolicy
⇒ipc/IPCMessageUtilsSpecializations.h
nsContentPolicyType
⇒ipc/IPCMessageUtilsSpecializations.h
TimeStamp
⇒ipc/IPCMessageUtilsSpecializations.h
gfx::SurfaceFormat
⇒mozilla/GfxMessageUtils.h
gfx::IntSizeTyped<T>
⇒mozilla/GfxMessageUtils.h
Reporter | ||
Updated•3 years ago
|
Description
•