[Help needed] Compile failure on win-libfuzzer-asan-rel

41 views
Skip to first unread message

Xinghui Lu

unread,
Sep 20, 2021, 1:26:16 AM9/20/21
to Chromium-dev, Anise Olabode
Hi,

I'm seeking help on a build failure with my CL https://chromium-review.googlesource.com/c/chromium/src/+/3120866/4. The failure is on win-libfuzzer-asan-rel with the following error:

FAILED: dial_internal_message_fuzzer.exe dial_internal_message_fuzzer.exe.pdb
ninja -t msvc -e environment.x64 -- ..\..\third_party\llvm-build\Release+Asserts\bin\lld-link.exe ...
lld-link: error: undefined symbol: struct google::protobuf::internal::SCCInfo<0> scc_info_ChromeUserPopulation_components_2fsafe_5fbrowsing_2fcore_2fcommon_2fproto_2fcsd_2eproto
>>> referenced by obj/components/safe_browsing/core/common/proto\realtimeapi_proto/realtimeapi.pb.obj:(struct google::protobuf::internal::SCCInfo<2> scc_info_RTLookupRequest_components_2fsafe_5fbrowsing_2fcore_2fcommon_2fproto_2frealtimeapi_2eproto)
ninja: build stopped: subcommand failed.

This CL is only modifying a proto field in csd_proto, which dial_internal_message_fuzzer doesn't depend on directly. And the failure doesn't happen on other builds. The only thing I noticed is both targets allow circular includes: allow_circular_includes_from.

I've tried adding csd_proto as a dependency of dial_internal_message_fuzzer but the failure persists (https://chromium-review.googlesource.com/c/chromium/src/+/3120866/5).

Does anyone know what is going on and how to fix it? Thanks for your help!

Takuto Ikuta

unread,
Sep 21, 2021, 8:53:24 AM9/21/21
to Xinghui Lu, Chromium-dev, Anise Olabode
I think deps needs to be proto_deps as realtimeapi.proto imports csd.proto there.

The build seems not to regenerate realtimeapi.pb.{h,cc} due to that.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CACBBNWfy59Za5Htvbo%3DC2mj0HqgC%2B1WV74Zx%3D%2B5DQZ4t7YMq2A%40mail.gmail.com.

Takuto Ikuta

unread,
Sep 24, 2021, 2:55:33 AM9/24/21
to Xinghui Lu, Chromium-dev, Anise Olabode
Sorry, I found that proto_deps is the same with deps in the proto library rule.

And I think there is no correct solution for this now as the proto library for realtimeapi.proto doesn't regenerate the C++ code when csd.proto is changed even if that is in its deps.
Ideal solution would be using --dependency_out flag in protoc appropriately. But you may workaround this by having one {fuzzable,}proto_library target compiling both csd.proto and realtimeapi.proto there.

On Thu, Sep 23, 2021 at 4:33 AM Xinghui Lu <xing...@chromium.org> wrote:
Thanks Takuto for the pointers! This is super helpful. The trybot is green now :)

The failure persists after I change deps to proto_deps in realtimeapi.proto, but the failure goes away after I change realtimeapi_proto from proto_library to fuzzable_proto_library. Given that csd_proto is a fuzzable_proto_library and it's a dependency of realtimeapi_proto, I wonder if we have restrictions like "proto_library cannot depend on fuzzable_proto_library"?

Takuto Ikuta

unread,
Sep 24, 2021, 2:59:56 AM9/24/21
to Xinghui Lu, Chromium-dev, Anise Olabode

Xinghui Lu

unread,
Sep 24, 2021, 5:30:17 PM9/24/21
to Takuto Ikuta, Chromium-dev, Anise Olabode
Thanks Takuto for the pointers! This is super helpful. The trybot is green now :)

The failure persists after I change deps to proto_deps in realtimeapi.proto, but the failure goes away after I change realtimeapi_proto from proto_library to fuzzable_proto_library. Given that csd_proto is a fuzzable_proto_library and it's a dependency of realtimeapi_proto, I wonder if we have restrictions like "proto_library cannot depend on fuzzable_proto_library"?

On Tue, Sep 21, 2021 at 5:52 AM Takuto Ikuta <tik...@chromium.org> wrote:
Reply all
Reply to author
Forward
0 new messages