Issue metadata
Sign in to add a comment
|
QuicUrlUtilsTest.GetPushPromiseUrl (net_unittests) failing on Android Cronet Builder |
||||||||||||||||||||||
Issue descriptionCleaned up test trace: [CRASH] QuicUrlUtilsTest.GetPushPromiseUrl: [ RUN ] QuicUrlUtilsTest.GetPushPromiseUrl [FATAL:jni_android.cc(137)] Failed to find class org/chromium/url/IDNStringUtil [ERROR:test_suite.cc(298)] Currently running: QuicUrlUtilsTest.GetPushPromiseUrl Stack Trace: RELADDR FUNCTION FILE:LINE 0116fe99 logging::LogMessage::~LogMessage() //base/logging.cc:581:29 01155407 base::android::GetClass(...) //base/android/jni_android.cc:137:5 01155457 base::android::LazyGetClass(...) //base/android/jni_android.cc:152:15 v------> url::android::Java_IDNStringUtil_idnToASCII(_...) //out/Debug/gen/url/url_jni_headers/url/jni/IDNStringUtil_jni.h:44:3 011e400f url::IDNToASCII(...) //url/url_canon_icu_alternatives_android.cc:28:0 011df557 url::(anonymous namespace)::DoIDNHost(...) //url/url_canon_host.cc:177:8 011df35f url::(anonymous namespace)::DoComplexHost(...) //url/url_canon_host.cc:275:10 011df135 bool url::(anonymous namespace)::DoHostSubstring<>(...) //url/url_canon_host.cc:319:12 011def6f void url::(anonymous namespace)::DoHost<>(...) //url/url_canon_host.cc:344:7 011def27 url::CanonicalizeHost(...) //url/url_canon_host.cc:375:3 010d0def net::QuicUrlUtilsImpl::GetPushPromiseUrl(...) //net/quic/platform/impl/quic_url_utils_impl.cc:113:8 00d57121 net::test::()::QuicUrlUtilsTest_GetPushPromiseUrl_Test::TestBody() //net/quic/platform/api/quic_url_utils_test.cc:71:27 01391cff testing::Test::Run() //third_party/googletest/src/googletest/src/gtest.cc:2473:5 Full trace: https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.android%2FAndroid_Cronet_Builder__dbg_%2F7407%2F%2B%2Frecipes%2Fsteps%2Fnet_unittests%2F0%2Fstdout Builder link: https://uberchromegw.corp.google.com/i/chromium.android/builders/Android%20Cronet%20Builder%20%28dbg%29/builds/7407 Suspect CL: https://chromium.googlesource.com/chromium/src/+/5ef6e5486091988a425032ef49fce9dc3d78c3f1 "Make PUSH_PROMISE headers URL-parsing more robust and conform to HTTP/2 spec" wangyix@ can you please have a look?
,
Jan 30 2018
I've reproduced this locally, and can confirm that reverting https://chromium.googlesource.com/chromium/src/+/5ef6e5486091988a425032ef49fce9dc3d78c3f1 fixes the problem (it removes the crashin test). I'll be happy to help figure this out, but in the meanwhile, could we revert https://chromium.googlesource.com/chromium/src/+/5ef6e5486091988a425032ef49fce9dc3d78c3f1 to unblock Cronet trybots? For reland you can add the following line to CL description to run on Cronet trybots: Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
,
Jan 30 2018
Thanks for looking into it! I'll just revert it now then.
,
Jan 30 2018
It's already being reverted.
,
Jan 30 2018
Great! So, the problem is that Cronet uses IDNStringUtil.java for IDN conversion on Android (to avoid ICU dependencies).
This is controlled by 'use_platform_icu_alternatives' gn flag, which is set to 'true' in Cronet builds.
Adding "//url:url_java", to //net:net deps on android if use_platform_icu_alternatives is set fixes the issue:
diff --git a/net/BUILD.gn b/net/BUILD.gn
index dd99fa75984e..37f9b72ae152 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -2194,7 +2194,10 @@ component("net") {
if (is_android) {
# Use ICU alternative on Android.
sources += [ "base/net_string_util_icu_alternatives_android.cc" ]
- deps += [ ":net_jni_headers" ]
+ deps += [
+ ":net_jni_headers",
+ "//url:url_java",
+ ]
I would've expected that adding ":url_java" to public_deps of //url:url should have some effect, but for some reason it does NOT work:
diff --git a/url/BUILD.gn b/url/BUILD.gn
index d33801bc8ae8..2dcd015a6080 100644
--- a/url/BUILD.gn
+++ b/url/BUILD.gn
@@ -83,6 +83,7 @@ component("url") {
"//base",
"//base/third_party/dynamic_annotations",
]
+ public_deps = [ ":url_java" ]
} else if (is_ios) {
sources += [ "url_canon_icu_alternatives_ios.mm" ]
} else {
,
Jan 30 2018
I'm not quite sure what's going on, but I've played with it a little more and it appears that the following steps DO NOT fix the issue: 1. Adding //url:url_java to public_deps of //url:url 2. Adding //url:url_java to deps of //net:net 3. Adding //url:url to deps of //net:net 4. Adding //url:url to deps of //net:net_unittests The following DOES fix the issue: 5. Adding //url:url_java to deps of //net:net_unittests The CL with the fix that appears to work: https://chromium-review.googlesource.com/c/chromium/src/+/893681 I'm adding few folks who may know the explanation and suggest proper fix.
,
Jan 30 2018
Java deps will only be noticed when they are added as deps to java targets. Add a *_java target as a dep to a native target (component / static_library / source_set) will cause the target to get compiled, but not to get included in the apk.
,
Jan 30 2018
I think comment 7 explains it - //net:net is a "component", so its dependency on //url:url_java doesn't get noticed. The //net:net_unittests is a "test" but does notice //url:url_java if it is added explicitly. The net_unittests target has explicit dependency on net_java: https://cs.chromium.org/chromium/src/net/BUILD.gn?l=5660 so it is consistent. Does it mean that https://chromium-review.googlesource.com/c/chromium/src/+/893681 is a reasonable fix or should I remove "//url:url_java" from deps of //net:net as it is ignored anyway?
,
Jan 30 2018
You should remove it from the component.
,
Jan 30 2018
Otherwise fix lgtm
,
Jan 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1722162ab0c760774720a2bbc3aa3b73d6b7db70 commit 1722162ab0c760774720a2bbc3aa3b73d6b7db70 Author: Misha Efimov <mef@chromium.org> Date: Tue Jan 30 23:36:02 2018 Add //url:url_java to //net:net_unittests deps for Cronet Android builds. Bug: 807283 Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet Change-Id: Ia61bdc85b5f700d58f88cc3093826d0a7e0ce014 Reviewed-on: https://chromium-review.googlesource.com/893681 Commit-Queue: Misha Efimov <mef@chromium.org> Reviewed-by: Ryan Hamilton <rch@chromium.org> Cr-Commit-Position: refs/heads/master@{#533082} [modify] https://crrev.com/1722162ab0c760774720a2bbc3aa3b73d6b7db70/net/BUILD.gn
,
Jan 31 2018
,
Jan 31 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a54f0b52ea196f56565b6286f1d92689b27da50e commit a54f0b52ea196f56565b6286f1d92689b27da50e Author: Yixin Wang <wangyix@chromium.org> Date: Wed Jan 31 05:43:18 2018 Reland x2 "Make PUSH_PROMISE headers URL-parsing more robust and conform to HTTP/2 spec" net_unittest failure on android_cronet due to missing test app dependency should no longer occur after this CL: https://chromium-review.googlesource.com/c/chromium/src/+/893681 First reland: https://chromium-review.googlesource.com/c/chromium/src/+/891302 Original CL: https://chromium-review.googlesource.com/c/chromium/src/+/887970 Bug:807283 Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet Change-Id: I622f074ad3d3ec89b78d754367285da52850e527 Reviewed-on: https://chromium-review.googlesource.com/893625 Reviewed-by: Ryan Hamilton <rch@chromium.org> Commit-Queue: Yixin Wang <wangyix@chromium.org> Cr-Commit-Position: refs/heads/master@{#533213} [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/BUILD.gn [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/chromium/quic_http_stream_test.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/core/quic_client_promised_info_test.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/core/quic_client_push_promise_index.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/core/quic_client_push_promise_index_test.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/core/quic_spdy_client_session_base.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/core/spdy_utils.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/core/spdy_utils.h [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/core/spdy_utils_test.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/platform/api/quic_url_utils.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/platform/api/quic_url_utils.h [add] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/platform/api/quic_url_utils_test.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/platform/impl/quic_url_utils_impl.cc [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/quic/platform/impl/quic_url_utils_impl.h [modify] https://crrev.com/a54f0b52ea196f56565b6286f1d92689b27da50e/net/tools/quic/quic_spdy_client_session_test.cc |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by mef@chromium.org
, Jan 30 2018