Update ContentBlockingLog to use struct instead of tuple<>

RESOLVED FIXED in Firefox 67

Status

()

defect
P2
normal
RESOLVED FIXED
5 months ago
5 months ago

People

(Reporter: baku, Assigned: baku)

Tracking

Trunk
mozilla67
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox67 fixed)

Details

(Whiteboard: [domsecurity-active])

Attachments

(1 attachment)

Assignee

Description

5 months ago

Tuple<> is nice but the complexity of ContentBlockingLog makes the code hard to read.

Attachment #9040050 - Attachment description: Bug 1523878 - Update ContentBlockingLog to use struct instead of tuple<> → Bug 1523878 - Update ContentBlockingLog to use struct instead of tuple<>, r?ehsan
Attachment #9040050 - Attachment description: Bug 1523878 - Update ContentBlockingLog to use struct instead of tuple<>, r?ehsan → Bug 1523878 - Update ContentBlockingLog to use struct instead of tuple<>, r=ehsan

Comment 2

5 months ago
Pushed by amarchesini@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/af0f2236d452
Update ContentBlockingLog to use struct instead of tuple<>, r=Ehsan

Backed out for autobinscope.py bustages.

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=windows%2C2012%2Cx64%2Cdebug%2Cbuild-win64%2Fdebug%2C%28b%29&fromchange=af0f2236d4523927502d3f65e4cf56f61c9e84a4&tochange=b325e24cae399094ec4f704a64905014b386bfae&selectedJob=225369319

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=225369319&repo=autoland&lineNumber=43634

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

04:29:04 INFO - TEST-PASS | autobinscope.py | ../../dist/bin/mozglue.dll succeeded
04:29:04 INFO - z:/build/build/src/obj-firefox/_virtualenvs/init/Scripts/python.exe z:/build/build/src/build/win32/autobinscope.py ../../dist/bin/xul.dll ../../dist/crashreporter-symbols/
04:29:04 INFO - z:/build/build/src/obj-firefox/virtualenvs/init/Scripts/python.exe -m mozbuild.action.jar_maker -d ../../../dist/xpi-stage/test_jar_mn -t z:/build/build/src -f flat -e --relativesrcdir=config/tests/src-simple -c z:/build/build/src/config/tests/src-simple/l10n -DA11Y_LOG=1 -DACCESSIBILITY=1 -DBROWSER_CHROME_URL=chrome://browser/content/browser.xul -DBROWSER_CHROME_URL_QUOTED='"chrome://browser/content/browser.xul"' -DBUILD_CTYPES=1 -DCROSS_COMPILE='' -DEARLY_BETA_OR_EARLIER=1 -DENABLE_INTL_API=1 -DENABLE_SYSTEM_EXTENSION_DIRS=1 -DENABLE_TESTS=1 -DENABLE_WASM_CRANELIFT=1 -DEXPOSE_INTL_API=1 -DFORCE_PR_LOG=1 -DGTEST_HAS_RTTI=0 -DHAVE_64BIT_BUILD=1 -DHAVE_ALIGNED_MALLOC=1 -DHAVE_CPUID_H=1 -DHAVE_FORCEINLINE=1 -DHAVE_INTTYPES_H=1 -DHAVE_IO_H=1 -DHAVE_ISATTY=1 -DHAVE_LOCALECONV=1 -DHAVE_MALLOC_H=1 -DHAVE_SEH_EXCEPTIONS=1 -DHAVE_STDINT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UINT64_T=1 -DJS_64BIT=1 -DJS_BUILD_BINAST=1 -DJS_CODEGEN_X64=1 -DJS_DEFAULT_JITREPORT_GRANULARITY=3 -DJS_GC_ZEAL=1 -DJS_JITSPEW=1 -DJS_MASM_VERBOSE=1 -DJS_PUNBOX64=1 -DJS_STRUCTURED_SPEW=1 -DJS_TRACE_LOGGING=1 -DMALLOC_H='<malloc.h>' -DMALLOC_USABLE_SIZE_CONST_PTR=const -DMOZILLA_OFFICIAL=1 -DMOZILLA_UAVERSION='"67.0"' -DMOZILLA_VERSION='"67.0a1"' -DMOZILLA_VERSION_U=67.0a1 -DMOZ_ALLOW_LEGACY_EXTENSIONS=1 -DMOZ_APP_UA_NAME='""' -DMOZ_APP_UA_VERSION='"67.0a1"' -DMOZ_AV1=1 -DMOZ_BLOCK_PROFILE_DOWNGRADE=1 -DMOZ_BUILD_APP=browser -DMOZ_BUILD_WEBRENDER=1 -DMOZ_BUNDLED_FONTS=1 -DMOZ_CLANG_PLUGIN=1 -DMOZ_CONTENT_SANDBOX=1 -DMOZ_CRASHREPORTER=1 -DMOZ_DATA_REPORTING=1 -DMOZ_DEBUG=1 -DMOZ_DEBUG_RUST=1 -DMOZ_DEDICATED_PROFILES=1 -DMOZ_DISTRIBUTION_ID='"org.mozilla"' -DMOZ_DLL_PREFIX='""' -DMOZ_DLL_SUFFIX='".dll"' -DMOZ_DMD=1 -DMOZ_DUMP_PAINTING=1 -DMOZ_ENABLE_SIGNMAR=1 -DMOZ_ENABLE_SKIA=1 -DMOZ_FFVPX=1 -DMOZ_FMP4=1 -DMOZ_GECKO_PROFILER=1 -DMOZ_GMP_SANDBOX=1 -DMOZ_INSTRUMENT_EVENT_LOOP=1 -DMOZ_LAUNCHER_PROCESS=1 -DMOZ_LIBAV_FFT=1 -DMOZ_LOGGING=1 -DMOZ_MACBUNDLE_ID=org.mozilla.nightlydebug -DMOZ_MAINTENANCE_SERVICE=1 -DMOZ_MEMORY=1 -DMOZ_PEERCONNECTION=1 -DMOZ_PHOENIX=1 -DMOZ_PLACES=1 -DMOZ_PROFILER_MEMORY=1 -DMOZ_PROFILING=1 -DMOZ_RAW=1 -DMOZ_REFLOW_PERF=1 -DMOZ_REFLOW_PERF_DSP=1 -DMOZ_REPLACE_MALLOC=1 -DMOZ_RUST_SIMD=1 -DMOZ_SAMPLE_TYPE_FLOAT32=1 -DMOZ_SANDBOX=1 -DMOZ_SCTP=1 -DMOZ_SERVICES_HEALTHREPORT=1 -DMOZ_SRTP=1 -DMOZ_STATIC_JS=1 -DMOZ_TELEMETRY_ON_BY_DEFAULT=1 -DMOZ_TELEMETRY_REPORTING=1 -DMOZ_TREE_CAIRO=1 -DMOZ_TREE_PIXMAN=1 -DMOZ_UPDATER=1 -DMOZ_UPDATE_CHANNEL=default -DMOZ_USER_DIR='"Mozilla"' -DMOZ_VERIFY_MAR_SIGNATURE=1 -DMOZ_VORBIS=1 -DMOZ_VTUNE=1 -DMOZ_WEBM_ENCODER=1 -DMOZ_WEBRTC=1 -DMOZ_WEBRTC_ASSERT_ALWAYS=1 -DMOZ_WEBRTC_SIGNALING=1 -DMOZ_WEBSPEECH=1 -DMOZ_WEBSPEECH_TEST_BACKEND=1 -DMOZ_WMF=1 -DMOZ_XUL=1 -DNIGHTLY_BUILD=1 -DNOMINMAX=1 -DNO_NSPR_10_SUPPORT=1 -DNS_ENABLE_TSF=1 -DNS_PRINTING=1 -DNS_PRINT_PREVIEW=1 -DSTATIC_JS_API=1 -DSTDC_HEADERS=1 -DTARGET_XPCOM_ABI='"x86_64-msvc"' -DUSE_SKIA=1 -DUSE_SKIA_GPU=1 -DU_STATIC_IMPLEMENTATION=1 -DU_USING_ICU_NAMESPACE=0 -DWIN32=1 -DWIN32_LEAN_AND_MEAN=1 -DWINVER=0x601 -DXP_WIN=1 -DXP_WIN32=1 -DX_DISPLAY_MISSING=1 -D_AMD64=1 -D_CRT_NONSTDC_NO_WARNINGS=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_USE_MATH_DEFINES=1 -D_WIN32_IE=0x0800 -D_WIN32_WINNT=0x601 -D_WINDOWS=1 -DAB_CD=en-US -DAB_CD=ab-X-stuff z:/build/build/src/config/tests/src-simple/jar.mn
04:29:04 INFO - .processing z:/build/build/src/config/tests/src-simple/jar.mn
04:29:04 INFO - .mozmake.EXE[4]: Leaving directory 'z:/build/build/src/obj-firefox/config/tests/src-simple'
04:29:04 INFO - Comparing manifests...
04:29:04 INFO - Comparing packages...
04:29:04 INFO - mozmake.EXE[3]: Leaving directory 'z:/build/build/src/obj-firefox/config/tests/src-simple'
04:29:04 INFO - mozmake.EXE[2]: Leaving directory 'z:/build/build/src/obj-firefox/config'
04:29:06 INFO - ..............
04:29:06 INFO - Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
04:29:06 INFO - at Dia2Lib.IDiaEnumSymbols.Next(UInt32 celt, IDiaSymbol& rgelt, UInt32& pceltFetched)
04:29:06 INFO - at Microsoft.MSEC.BinaryAnalysis.Symbol.<CreateChildrenImpl>d__0.MoveNext()
04:29:06 INFO - at Microsoft.SecurityDevelopmentLifecycle.SdlCommon.DisposableEnumerable1.Enumerator.MoveNext() 04:29:06 INFO - at Microsoft.MSEC.BinaryAnalysis.Symbol.GetObjectModuleDetails() 04:29:06 INFO - at Microsoft.MSEC.BinScope.Plugins.ATLVersionCheck.Execute(CheckExecutionContext context) 04:29:06 INFO - at Microsoft.MSEC.BinScope.BinScopeScanner.ExecuteCheck(BinaryInfo bi, ICheck check) 04:29:06 INFO - at Microsoft.MSEC.BinScope.BinScopeScanner.ExecuteChecks(IList1 checks, IEnumerable`1 paths)
04:29:06 INFO - at Microsoft.MSEC.BinScope.BinScopeMain.RunGuarded(BinScopeScanner scanner)
04:29:06 INFO - at Microsoft.MSEC.BinScope.BinScopeMain.Run(BinScopeScanner scanner)
04:29:06 INFO - at Microsoft.MSEC.BinScope.BinScopeMain.RunConsoleScan(BinScopeScanner scanner)
04:29:06 INFO - at Microsoft.MSEC.BinScope.BinScopeMain.Main(String[] args)
04:29:06 WARNING - TEST-UNEXPECTED-FAIL | autobinscope.py | Binscope returned error code -1073741819 for file ../../dist/bin/xul.dll
04:29:06 INFO - z:/build/build/src/obj-firefox/_virtualenvs/init/Scripts/python.exe z:/build/build/src/build/win32/autobinscope.py ../../dist/bin/nss3.dll ../../dist/crashreporter-symbols/
04:29:07 INFO - .TEST-PASS | autobinscope.py | ../../dist/bin/nss3.dll succeeded

Flags: needinfo?(amarchesini)
Assignee

Updated

5 months ago
Flags: needinfo?(amarchesini)

Comment 4

5 months ago
Pushed by amarchesini@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/5f53c5571125
Update ContentBlockingLog to use struct instead of tuple<>, r=ehsan
Status: NEW → ASSIGNED
Priority: -- → P2
Whiteboard: [domsecurity-active]

Binscope is a Microsoft tool that we run against our libraries after the build. It checks various best-practices like "did we remember to set the ASLR flag on our binaries?". The tool is crashing for some reason. I'll try to reproduce it locally.

Flags: needinfo?(dmajor)

I can reproduce this crash during the checks ATLVersionCheck and VB6Check. I think we should just stop doing these checks. The right long term fix is to replace Binscope altogether; see bug 1450088.

Flags: needinfo?(dmajor)
Depends on: 1525113
Assignee

Updated

5 months ago
Flags: needinfo?(amarchesini)

Comment 8

5 months ago
Pushed by amarchesini@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/7618517e9962
Update ContentBlockingLog to use struct instead of tuple<>, r=ehsan
Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
You need to log in before you can comment on or make changes to this bug.