Closed Bug 1613854 Opened 4 years ago Closed 4 years ago

De-virtualize IPDL protocol methods in ActorsChild

Categories

(Core :: Storage: IndexedDB, task, P2)

task

Tracking

()

RESOLVED FIXED

People

(Reporter: sg, Assigned: sg)

References

Details

Attachments

(3 files)

This needs to move the actor class definitions to a header file, and remove from the IPDL exlcusion list VIRTUAL_CALL_CLASSES in ipc/ipdl/ipdl/direct_call.py

Maybe we just need to export ActorsChild.h

(In reply to Jan Varga [:janv] from comment #1)

Maybe we just need to export ActorsChild.h

Yes, that's probably just what needs to be done. Thanks for pointing that out!

Attachment #9125000 - Attachment description: Bug 1613854 - Pass nsresult and bool by value instead of const &. r=#dom-workers-and-storage → Bug 1613854 - Pass nsresult/bool/int* by value instead of const &. r=#dom-workers-and-storage
Keywords: leave-open
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/98a47607bb61
De-virtualize IPDL protocol methods in ActorsChild. r=dom-workers-and-storage-reviewers,janv,jld

Backed out changeset 98a47607bb61 for causing sm failures in PBackgroundIDBCursorChild.cpp

Backout link: https://hg.mozilla.org/integration/autoland/rev/d418be201c251e200d4b891694a581294e1cf6ca

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&tochange=d418be201c251e200d4b891694a581294e1cf6ca&fromchange=98a47607bb61addb7bb640aa2fc1d78eacc8c01f

Failurel log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=289225157&repo=autoland&lineNumber=22707

[task 2020-02-17T13:51:13.526Z] 13:51:13     INFO -  /builds/worker/fetches/clang/bin/clang++ -std=gnu++17 -o jsep_session_unittest.o -c  -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DDEBUG=1 -DHAVE_UINT64_T -DWEBRTC_POSIX -DWEBRTC_BUILD_LIBEVENT -DWEBRTC_LINUX -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/media/webrtc/signaling/gtest -I/builds/worker/workspace/build/src/obj-firefox/media/webrtc/signaling/gtest -I/builds/worker/workspace/build/src/dom/media -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/media/mtransport -I/builds/worker/workspace/build/src/media/mtransport/test -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/registry -I/builds/worker/workspace/build/src/media/webrtc -I/builds/worker/workspace/build/src/media/webrtc/signaling/src/common -I/builds/worker/workspace/build/src/media/webrtc/signaling/src/common/time_profiling -I/builds/worker/workspace/build/src/media/webrtc/signaling/src/media-conduit -I/builds/worker/workspace/build/src/media/webrtc/signaling/src/mediapipeline -I/builds/worker/workspace/build/src/media/webrtc/signaling/src/peerconnection -I/builds/worker/workspace/build/src/media/webrtc/trunk -I/builds/worker/workspace/build/src/media/webrtc/trunk/webrtc -I/builds/worker/workspace/build/src/netwerk/srtp/src/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wcomma -Wimplicit-fallthrough -Wunused-function -Wunused-variable -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Os -fno-omit-frame-pointer -funwind-tables -Werror -Wno-error=shadow  -MD -MP -MF .deps/jsep_session_unittest.o.pp   /builds/worker/workspace/build/src/media/webrtc/signaling/gtest/jsep_session_unittest.cpp
[task 2020-02-17T13:51:13.526Z] 13:51:13     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/webrtc/signaling/gtest'
[task 2020-02-17T13:51:13.533Z] 13:51:13     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl'
[task 2020-02-17T13:51:13.533Z] 13:51:13     INFO -  ipc/ipdl/UnifiedProtocols22.o
[task 2020-02-17T13:51:13.533Z] 13:51:13     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl'
[task 2020-02-17T13:51:13.617Z] 13:51:13     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl'
[task 2020-02-17T13:51:13.619Z] 13:51:13     INFO -  /builds/worker/fetches/clang/bin/clang++ -std=gnu++17 -o UnifiedProtocols2.o -c  -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DDEBUG=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/ipc/ipdl -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wcomma -Wimplicit-fallthrough -Wunused-function -Wunused-variable -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Os -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/workspace/build/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print  -MD -MP -MF .deps/UnifiedProtocols2.o.pp   UnifiedProtocols2.cpp
[task 2020-02-17T13:51:13.620Z] 13:51:13     INFO -  In file included from UnifiedProtocols2.cpp:101:
[task 2020-02-17T13:51:13.620Z] 13:51:13    ERROR -  /builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/PBackgroundIDBCursorChild.cpp:194:80: error: no member named 'RecvResponse' in 'mozilla::dom::indexedDB::BackgroundCursorChildBase'
[task 2020-02-17T13:51:13.621Z] 13:51:13     INFO -              if ((!((static_cast<indexedDB::BackgroundCursorChildBase*>(this))->RecvResponse(std::move(response))))) {
[task 2020-02-17T13:51:13.621Z] 13:51:13     INFO -                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
[task 2020-02-17T13:51:13.621Z] 13:51:13     INFO -  1 error generated.
[task 2020-02-17T13:51:13.621Z] 13:51:13     INFO -  /builds/worker/workspace/build/src/config/rules.mk:731: recipe for target 'UnifiedProtocols2.o' failed
[task 2020-02-17T13:51:13.621Z] 13:51:13    ERROR -  make[4]: *** [UnifiedProtocols2.o] Error 1
[task 2020-02-17T13:51:13.622Z] 13:51:13     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl'
[task 2020-02-17T13:51:13.622Z] 13:51:13     INFO -  make[4]: *** Waiting for unfinished jobs....
[task 2020-02-17T13:51:13.655Z] 13:51:13     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/webrtc/trunk/webrtc/modules/audio_coding/audio_coding_gn'
[task 2020-02-17T13:51:13.655Z] 13:51:13     INFO -  mkdir -p '.deps/'
Flags: needinfo?(sgiesecke)

Sorry for that. This only worked with other changes from Bug 1613340, which are not ready to land yet. I wonder though why the review bot didn't catch this, since it affected any build, not just sm.

Flags: needinfo?(sgiesecke)
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/df09462be46d
De-virtualize IPDL protocol methods in ActorsChild. r=dom-workers-and-storage-reviewers,janv,jld
Priority: -- → P2
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d29dac37fa5f
Pass nsresult/bool/int* by value instead of const &. r=dom-workers-and-storage-reviewers,janv
https://hg.mozilla.org/integration/autoland/rev/73987801833a
Avoid copying non-trivial IPDL params. r=dom-workers-and-storage-reviewers,janv
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Keywords: leave-open
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: