Open Bug 1956773 Opened 25 days ago Updated 6 days ago

Building with --enable-address-sanitizer fails to find PSandboxTesting.ipdl

Categories

(Firefox Build System :: General, defect, P3)

defect

Tracking

(Not tracked)

People

(Reporter: valentin, Unassigned)

References

(Blocks 1 open bug)

Details

0:19.04 ./application.ini.stub
 0:19.04   in file included from `/home/user/mozilla-unified/obj-x86_64-pc-linux-gnu/ipc/ipdl/PDocAccessible.ipdl', line 7:
 0:19.05   in file included from `/home/user/mozilla-unified/obj-x86_64-pc-linux-gnu/ipc/ipdl/PBrowser.ipdl', line 9:
 0:19.05   in file included from `/home/user/mozilla-unified/obj-x86_64-pc-linux-gnu/ipc/ipdl/PContent.ipdl', line 7:
 0:19.05   in file included from `/home/user/mozilla-unified/ipc/glue/PBackgroundStarter.ipdl', line 5:
 0:19.05   in file included from `/home/user/mozilla-unified/ipc/glue/PBackground.ipdl', line 5:
 0:19.06   in file included from `/home/user/mozilla-unified/netwerk/protocol/http/PBackgroundDataBridge.ipdl', line 5:
 0:19.06   in file included from `/home/user/mozilla-unified/netwerk/protocol/http/HttpChannelParams.ipdlh', line 10:
 0:19.06   in file included from `/home/user/mozilla-unified/netwerk/ipc/NeckoChannelParams.ipdlh', line 8:
 0:19.07   in file included from `/home/user/mozilla-unified/netwerk/protocol/http/PHttpChannel.ipdl', line 8:
 0:19.07   in file included from `/home/user/mozilla-unified/obj-x86_64-pc-linux-gnu/ipc/ipdl/PNecko.ipdl', line 18:
 0:19.07   in file included from `/home/user/mozilla-unified/netwerk/dns/PDNSRequest.ipdl', line 9:
 0:19.07 /home/user/mozilla-unified/obj-x86_64-pc-linux-gnu/ipc/ipdl/PSocketProcess.ipdl:21: error: can't locate include file `PSandboxTesting.ipdl'
 0:19.08 Specification could not be parsed.
 0:19.23 gmake[4]: *** [Makefile:31: ipdl.track] Error 1
 0:19.23 gmake[3]: *** [/home/user/mozilla-unified/config/recurse.mk:94: ipc/ipdl/export] Error 2

This happens on Linux, when ac_add_options --enable-address-sanitizer is in the mozconfig.
I could make it build with ac_add_options --enable-sandbox, but it took a while to investigate.

I think the problem is due to how the /security/sandbox moz.build file is included.
I initially added it to security/moz.build, but then builds without --enable-address-sanitizer started failing with

Exception: File already read. A directory should not be added to DIRS twice: security/sandbox/moz.build is referred from security/moz.build as '/security/sandbox', and moz.build as '/security/sandbox'

It seems that the security/sandbox moz.build file is normally included through here but for ASAN builds something goes wrong?

Hey Valentin, I can not reproducing by just having --enable-address-sanitizer in the configure, can you share the whole reproducer?

Severity: -- → S3

PSandboxTesting.ipdl is only enabled on debug builds with sandbox and tests enabled, and sandbox is disabled on Linux asan builds. BUT it's also not used when the sandbox is disabled... https://searchfox.org/mozilla-central/rev/0b765f1050f3cb0674ab266e7692e6dad9d249a1/netwerk/ipc/PSocketProcess.ipdl#21
Do you have local changes?

Okay, I found a reproducer by accident. Is this what happened to you:

  • You had a local build
  • You added --enable-address-sanitizer to your mozconfig
  • You built again without clobbering.

A clobber fixes the issue. The problem is that PSocketProcess.ipdl in the objdir is not rebuilt after changing the build config.

Blocks: clobber

(In reply to Mike Hommey [:glandium] from comment #3)

Okay, I found a reproducer by accident. Is this what happened to you:

  • You had a local build
  • You added --enable-address-sanitizer to your mozconfig
  • You built again without clobbering.

A clobber fixes the issue. The problem is that PSocketProcess.ipdl in the objdir is not rebuilt after changing the build config.

Ah, yes, that's it.
Clobbering does seem to get rid of the issue. Thanks!

Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.