|
|
Chromium Code Reviews
Description[Cronet] Add QUIC experimental params
This CL plumbs four QUIC experimental params (
quic_store_server_configs_in_properties,
quic_delay_tcp_race,
quic_max_number_of_lossy_connections,
quic_packet_loss_threshold) from Cronet's
setExperimentalOptions API to net::HttpNetworkSession.
This CL also adds a unittests target to run the unittests.
A followup CL will enable the unittests on the cronet bots.
BUG=545118
Committed: https://crrev.com/fde0b72c603cd111c36ca4cc416d82a7395bcf6c
Cr-Commit-Position: refs/heads/master@{#360454}
Committed: https://crrev.com/8ece3aa6845350c1971a3e824bf148f3e8de3253
Cr-Commit-Position: refs/heads/master@{#360875}
Committed: https://crrev.com/f24ee5f5afeb59d2a9134a7b986efb6483629fe5
Cr-Commit-Position: refs/heads/master@{#361138}
Patch Set 1 #Patch Set 2 : Add test and quic_delay_tcp_race #Patch Set 3 : Rebased #Patch Set 4 : Self review #Patch Set 5 : #
Total comments: 8
Patch Set 6 : Add two more params and address comments #
Total comments: 4
Patch Set 7 : Address comments #Patch Set 8 : Initialize variables #Patch Set 9 : Rebased #Patch Set 10 : Fix build #Messages
Total messages: 56 (21 generated)
Description was changed from ========== [Cronet] Add QUIC experimental params BUG= ========== to ========== [Cronet] Add QUIC experimental params This CL plumbs two QUIC experimental params ( quic_store_server_configs_in_properties & ?) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. BUG=545118 ==========
xunjieli@chromium.org changed reviewers: + rtenneti@google.com
Raman, you mentioned that there are two QUIC parameters that you'd like to add, what is the other param that you need? I only remember "quic_store_server_configs_in_properties."
rtenneti@chromium.org changed reviewers: + rtenneti@chromium.org
lgtm LGTM. Would be awesome if we could write an unittest.
Description was changed from ========== [Cronet] Add QUIC experimental params This CL plumbs two QUIC experimental params ( quic_store_server_configs_in_properties & ?) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. BUG=545118 ========== to ========== [Cronet] Add QUIC experimental params This CL plumbs two QUIC experimental params ( quic_store_server_configs_in_properties & quic_delay_tcp_race) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 ==========
Patchset #2 (id:20001) has been deleted
xunjieli@chromium.org changed reviewers: + mef@chromium.org
On 2015/11/14 00:43:35, ramant wrote: > lgtm > > LGTM. Would be awesome if we could write an unittest. Thanks! I have added a unittest. I added quic_delay_tcp_race, do you need quic_packet_loss_threshold and quic_max_number_of_lossy_connections in this CL? Misha, PTAL.
On 2015/11/18 20:09:04, xunjieli wrote:
> On 2015/11/14 00:43:35, ramant wrote:
> > lgtm
> >
> > LGTM. Would be awesome if we could write an unittest.
>
> Thanks! I have added a unittest. I added quic_delay_tcp_race, do you need
> quic_packet_loss_threshold and quic_max_number_of_lossy_connections in this
CL?
>
> Misha, PTAL.
If it is no problem, would be good to add bad packet loss experiment also to
this CL which accepts the following two parameters. cronet users can specify
(and/or try different values) these values in their experiments.
{
"name": "EnabledBadPacketLoss",
"params": {
"max_number_of_lossy_connections": "4",
"packet_loss_threshold": "0.5"
}
}
thanks much for doing this
raman
Patch Set 5: LGTM https://codereview.chromium.org/1448583003/diff/100001/components/cronet/url_... File components/cronet/url_request_context_config_unittest.cc (right): https://codereview.chromium.org/1448583003/diff/100001/components/cronet/url_... components/cronet/url_request_context_config_unittest.cc:36: // Set a ProxyConfigService to advoid DCHECK failure when building. nit: advoid -> avoid.
It would be nice to add more edge tests, but that should probably wait for Paul to land his CL to get rid of JSON. https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi File components/cronet.gypi (right): https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi... components/cronet.gypi:449: 'target_name': 'cronet_unittests', FWIW cronet_unittests are already included into component tests: https://code.google.com/p/chromium/codesearch#chromium/src/components/compone... I'm not sure whether they are executed though. https://codereview.chromium.org/1448583003/diff/100001/components/cronet/url_... File components/cronet/url_request_context_config_unittest.cc (right): https://codereview.chromium.org/1448583003/diff/100001/components/cronet/url_... components/cronet/url_request_context_config_unittest.cc:49: // Check store_server_configs_in_properties nit: End comment with period, also below.
Thanks! I have addressed comments and added two additional params. https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi File components/cronet.gypi (right): https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi... components/cronet.gypi:449: 'target_name': 'cronet_unittests', On 2015/11/18 20:33:25, mef wrote: > FWIW cronet_unittests are already included into component tests: > > https://code.google.com/p/chromium/codesearch#chromium/src/components/compone... > > I'm not sure whether they are executed though. They are probably executed, but not on Cronet bots. So it is hard to know. Should we watch these on our bots? I do see components who have their own test targets though. Not sure which is better. Which one do you prefer? https://codereview.chromium.org/1448583003/diff/100001/components/cronet/url_... File components/cronet/url_request_context_config_unittest.cc (right): https://codereview.chromium.org/1448583003/diff/100001/components/cronet/url_... components/cronet/url_request_context_config_unittest.cc:36: // Set a ProxyConfigService to advoid DCHECK failure when building. On 2015/11/18 20:22:08, ramant wrote: > nit: advoid -> avoid. Done. https://codereview.chromium.org/1448583003/diff/100001/components/cronet/url_... components/cronet/url_request_context_config_unittest.cc:49: // Check store_server_configs_in_properties On 2015/11/18 20:33:25, mef wrote: > nit: End comment with period, also below. Done.
Patch Set 6: LGTM https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... File components/cronet/url_request_context_config.cc (right): https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... components/cronet/url_request_context_config.cc:50: VLOG(1) << "Experimental Options:" << experimental_options; nit: is this intentional? Should we do DVLOG(1)?
https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi File components/cronet.gypi (right): https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi... components/cronet.gypi:449: 'target_name': 'cronet_unittests', On 2015/11/18 20:58:44, xunjieli wrote: > On 2015/11/18 20:33:25, mef wrote: > > FWIW cronet_unittests are already included into component tests: > > > > > https://code.google.com/p/chromium/codesearch#chromium/src/components/compone... > > > > I'm not sure whether they are executed though. > > They are probably executed, but not on Cronet bots. So it is hard to know. > Should we watch these on our bots? > > I do see components who have their own test targets though. > > Not sure which is better. Which one do you prefer? I don't have particular preference, I just don't think we should do both if we can avoid that. https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... File components/cronet/url_request_context_config_unittest.cc (right): https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... components/cronet/url_request_context_config_unittest.cc:59: EXPECT_EQ(0.5f, params->quic_packet_loss_threshold); You may want to use EXPECT_DOUBLE_EQ due to rounding https://code.google.com/p/googletest/wiki/AdvancedGuide#Floating-Point_Compar...
Thanks! PTAL https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi File components/cronet.gypi (right): https://codereview.chromium.org/1448583003/diff/100001/components/cronet.gypi... components/cronet.gypi:449: 'target_name': 'cronet_unittests', On 2015/11/18 21:35:33, mef wrote: > On 2015/11/18 20:58:44, xunjieli wrote: > > On 2015/11/18 20:33:25, mef wrote: > > > FWIW cronet_unittests are already included into component tests: > > > > > > > > > https://code.google.com/p/chromium/codesearch#chromium/src/components/compone... > > > > > > I'm not sure whether they are executed though. > > > > They are probably executed, but not on Cronet bots. So it is hard to know. > > Should we watch these on our bots? > > > > I do see components who have their own test targets though. > > > > Not sure which is better. Which one do you prefer? > > I don't have particular preference, I just don't think we should do both if we > can avoid that. Definitely not both. I have moved the other one over. I think it's more convenient this way and easier to know where test files go and where tests are run. Compiling components_unittests takes a substantially longer time too. https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... File components/cronet/url_request_context_config.cc (right): https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... components/cronet/url_request_context_config.cc:50: VLOG(1) << "Experimental Options:" << experimental_options; On 2015/11/18 21:22:08, ramant wrote: > nit: is this intentional? Should we do DVLOG(1)? Done. https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... File components/cronet/url_request_context_config_unittest.cc (right): https://codereview.chromium.org/1448583003/diff/120001/components/cronet/url_... components/cronet/url_request_context_config_unittest.cc:59: EXPECT_EQ(0.5f, params->quic_packet_loss_threshold); On 2015/11/18 21:35:33, mef wrote: > You may want to use EXPECT_DOUBLE_EQ due to rounding > https://code.google.com/p/googletest/wiki/AdvancedGuide#Floating-Point_Compar... Done. Used EXPECT_FLOAT_EQ since the quic_packet_loss_threshold is a float.
Description was changed from ========== [Cronet] Add QUIC experimental params This CL plumbs two QUIC experimental params ( quic_store_server_configs_in_properties & quic_delay_tcp_race) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 ========== to ========== [Cronet] Add QUIC experimental params This CL plumbs four QUIC experimental params ( quic_store_server_configs_in_properties & quic_delay_tcp_race, quic_max_number_of_lossy_connections, quic_packet_loss_threshold) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 ==========
Description was changed from ========== [Cronet] Add QUIC experimental params This CL plumbs four QUIC experimental params ( quic_store_server_configs_in_properties & quic_delay_tcp_race, quic_max_number_of_lossy_connections, quic_packet_loss_threshold) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 ========== to ========== [Cronet] Add QUIC experimental params This CL plumbs four QUIC experimental params ( quic_store_server_configs_in_properties, quic_delay_tcp_race, quic_max_number_of_lossy_connections, quic_packet_loss_threshold) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 ==========
lgtm
The CQ bit was checked by xunjieli@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from rtenneti@chromium.org Link to the patchset: https://codereview.chromium.org/1448583003/#ps140001 (title: "Address comments")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1448583003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1448583003/140001
Message was sent while issue was closed.
Committed patchset #7 (id:140001)
Message was sent while issue was closed.
Patchset 7 (id:??) landed as https://crrev.com/fde0b72c603cd111c36ca4cc416d82a7395bcf6c Cr-Commit-Position: refs/heads/master@{#360454}
Message was sent while issue was closed.
I believe that this is the culprit for this uninitialized read: http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20MSan%20Tests...
Message was sent while issue was closed.
On 2015/11/19 02:58:49, Derek Bruening wrote: > I believe that this is the culprit for this uninitialized read: > > http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20MSan%20Tests... And this one (the msan tool seems to be having symbol issues, but the URLRequestContextBuilder is visible): http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20MSan%20Tests... Given that it affects multiple tests it seems best to revert.
Message was sent while issue was closed.
Plus errors on the Valgrind bots: http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20Tests%20%28v... UninitCondition Conditional jump or move depends on uninitialised value(s) net::QuicStreamFactory::QuicStreamFactory(net::HostResolver*, net::ClientSocketFactory*, base::WeakPtr<net::HttpServerProperties>, net::CertVerifier*, net::CertPolicyEnforcer*, net::ChannelIDService*, net::TransportSecurityState*, net::SocketPerformanceWatcherFactory*, net::QuicCryptoClientStreamFactory*, net::QuicRandom*, net::QuicClock*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<net::QuicVersion, std::allocator<net::QuicVersion> > const&, bool, bool, bool, float, bool, bool, bool, bool, int, float, int, int, int, int, bool, bool, bool, std::vector<unsigned int, std::allocator<unsigned int> > const&) (net/quic/quic_stream_factory.cc:649) net::HttpNetworkSession::HttpNetworkSession(net::HttpNetworkSession::Params const&) (net/http/http_network_session.cc:140) net::URLRequestContextBuilder::Build() (net/url_request/url_request_context_builder.cc:404) extensions::PrivetV3ContextGetter::InitOnNetThread() (chrome/browser/extensions/api/gcd_private/privet_v3_context_getter.cc:114) extensions::PrivetV3ContextGetter::AddPairedHostOnNetThread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, net::SHA256HashValue const&) (chrome/browser/extensions/api/gcd_private/privet_v3_context_getter.cc:132)
Message was sent while issue was closed.
A revert of this CL (patchset #7 id:140001) has been created in https://codereview.chromium.org/1454333002/ by bruening@chromium.org. The reason for reverting is: [MemSheriff] Reverting CL that contains uninitialized reads that show up in multiple tests on MSan and Valgrind MFYI bots, e.g.: http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20MSan%20Tests... .
Message was sent while issue was closed.
Description was changed from ========== [Cronet] Add QUIC experimental params This CL plumbs four QUIC experimental params ( quic_store_server_configs_in_properties, quic_delay_tcp_race, quic_max_number_of_lossy_connections, quic_packet_loss_threshold) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 Committed: https://crrev.com/fde0b72c603cd111c36ca4cc416d82a7395bcf6c Cr-Commit-Position: refs/heads/master@{#360454} ========== to ========== [Cronet] Add QUIC experimental params This CL plumbs four QUIC experimental params ( quic_store_server_configs_in_properties, quic_delay_tcp_race, quic_max_number_of_lossy_connections, quic_packet_loss_threshold) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 Committed: https://crrev.com/fde0b72c603cd111c36ca4cc416d82a7395bcf6c Cr-Commit-Position: refs/heads/master@{#360454} ==========
Raman, could you take a look to see if the initial values are correct?
Patch Set 8 LGTM (initial values are correct).
The CQ bit was checked by rtenneti@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from mef@chromium.org Link to the patchset: https://codereview.chromium.org/1448583003/#ps160001 (title: "Initialize variables")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1448583003/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1448583003/160001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_gn_rel on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_gn_r...) mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by xunjieli@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from rtenneti@chromium.org, mef@chromium.org Link to the patchset: https://codereview.chromium.org/1448583003/#ps180001 (title: "Rebased")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1448583003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1448583003/180001
Message was sent while issue was closed.
Committed patchset #9 (id:180001)
Message was sent while issue was closed.
Patchset 9 (id:??) landed as https://crrev.com/8ece3aa6845350c1971a3e824bf148f3e8de3253 Cr-Commit-Position: refs/heads/master@{#360875}
Message was sent while issue was closed.
A revert of this CL (patchset #9 id:180001) has been created in https://codereview.chromium.org/1464903002/ by xunjieli@chromium.org. The reason for reverting is: gyp dependency is missing. This broke one internal bot..
Message was sent while issue was closed.
Hi Misha, could you take a look at the gyp file changes?
The failure output from the internal bot is pasted below.
Is this because shared library linking clashes with that of android on chrome? I
couldn't get the error to reproduce locally. I made cronet_unittests depend on
cronet_static instead of cronet_static_small. Is this the right way?
Thanks! PTAL
FAILED: if [ ! -e lib/libcronet_unittests.cr.so -o ! -e
lib/libcronet_unittests.cr.so.TOC ]; then /b/build/goma/gomacc
../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-z,now
-Wl,-z,relro -Wl,--fatal-warnings -Wl,-z,noexecstack -fPIC
-B/b/build/slave/clang-clankium-tot-builder/build/src/third_party/binutils/Linux_x64/Release/bin
-Wl,-z,relro -Wl,-z,now -fuse-ld=gold -fsanitize=address -Wl,--build-id=sha1
-Wl,--no-undefined
--sysroot=../../third_party/android_tools/ndk//platforms/android-16/arch-arm
-nostdlib
-L../../third_party/android_tools/ndk//sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
-Wl,--exclude-libs=libgcc.a -Wl,--exclude-libs=libc++_static.a
-Wl,--exclude-libs=libcommon_audio.a -Wl,--exclude-libs=libcommon_audio_neon.a
-Wl,--exclude-libs=libcommon_audio_sse2.a -Wl,--exclude-libs=libiSACFix.a
-Wl,--exclude-libs=libisac_neon.a -Wl,--exclude-libs=libopus.a
-Wl,--exclude-libs=libvpx.a -target arm-linux-androideabi -Wl,--icf=all
-Wl,-shared,-Bsymbolic
../../third_party/android_tools/ndk//platforms/android-16/arch-arm/usr/lib/crtbegin_so.o
-Wl,--warn-shared-textrel -Wl,-O1 -o lib/libcronet_unittests.cr.so
-Wl,-soname=libcronet_unittests.cr.so @lib/libcronet_unittests.cr.so.rsp && {
readelf -d lib/libcronet_unittests.cr.so | grep SONAME ; nm -gD -f p
lib/libcronet_unittests.cr.so | cut -f1-2 -d' '; } >
lib/libcronet_unittests.cr.so.TOC; else /b/build/goma/gomacc
../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-z,now
-Wl,-z,relro -Wl,--fatal-warnings -Wl,-z,noexecstack -fPIC
-B/b/build/slave/clang-clankium-tot-builder/build/src/third_party/binutils/Linux_x64/Release/bin
-Wl,-z,relro -Wl,-z,now -fuse-ld=gold -fsanitize=address -Wl,--build-id=sha1
-Wl,--no-undefined
--sysroot=../../third_party/android_tools/ndk//platforms/android-16/arch-arm
-nostdlib
-L../../third_party/android_tools/ndk//sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
-Wl,--exclude-libs=libgcc.a -Wl,--exclude-libs=libc++_static.a
-Wl,--exclude-libs=libcommon_audio.a -Wl,--exclude-libs=libcommon_audio_neon.a
-Wl,--exclude-libs=libcommon_audio_sse2.a -Wl,--exclude-libs=libiSACFix.a
-Wl,--exclude-libs=libisac_neon.a -Wl,--exclude-libs=libopus.a
-Wl,--exclude-libs=libvpx.a -target arm-linux-androideabi -Wl,--icf=all
-Wl,-shared,-Bsymbolic
../../third_party/android_tools/ndk//platforms/android-16/arch-arm/usr/lib/crtbegin_so.o
-Wl,--warn-shared-textrel -Wl,-O1 -o lib/libcronet_unittests.cr.so
-Wl,-soname=libcronet_unittests.cr.so @lib/libcronet_unittests.cr.so.rsp && {
readelf -d lib/libcronet_unittests.cr.so | grep SONAME ; nm -gD -f p
lib/libcronet_unittests.cr.so | cut -f1-2 -d' '; } >
lib/libcronet_unittests.cr.so.tmp && if ! cmp -s
lib/libcronet_unittests.cr.so.tmp lib/libcronet_unittests.cr.so.TOC; then mv
lib/libcronet_unittests.cr.so.tmp lib/libcronet_unittests.cr.so.TOC ; fi; fi
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
undefined reference to 'GURL::GURL(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
undefined reference to 'GURL::GURL(GURL const&)'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
undefined reference to 'GURL::~GURL()'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
undefined reference to 'GURL::~GURL()'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_library_loader.o):../../components/cronet/android/cronet_library_loader.cc:function
cronet::(anonymous namespace)::Init(): error: undefined reference to
'url::Initialize()'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_library_loader.o):../../components/cronet/android/cronet_library_loader.cc:cronet::(anonymous
namespace)::kCronetRegisteredMethods: error: undefined reference to
'url::android::RegisterJni(_JNIEnv*)'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
Java_org_chromium_net_CronetUrlRequest_nativeCreateRequestAdapter: error:
undefined reference to 'GURL::GURL(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
Java_org_chromium_net_CronetUrlRequest_nativeCreateRequestAdapter: error:
undefined reference to 'GURL::~GURL()'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
cronet::CronetURLRequestAdapter::CronetURLRequestAdapter(cronet::CronetURLRequestContextAdapter*,
_JNIEnv*, _jobject*, GURL const&, net::RequestPriority): error: undefined
reference to 'GURL::GURL(GURL const&)'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
cronet::CronetURLRequestAdapter::~CronetURLRequestAdapter(): error: undefined
reference to 'GURL::~GURL()'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
cronet::CronetURLRequestAdapter::OnReceivedRedirect(net::URLRequest*,
net::RedirectInfo const&, bool*): error: undefined reference to 'GURL::spec()
const'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.url_request_adapter.o):../../components/cronet/android/url_request_adapter.cc:function
cronet::URLRequestAdapter::URLRequestAdapter(cronet::URLRequestContextAdapter*,
cronet::URLRequestAdapter::URLRequestAdapterDelegate*, GURL,
net::RequestPriority): error: undefined reference to 'GURL::GURL()'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.url_request_adapter.o):../../components/cronet/android/url_request_adapter.cc:function
cronet::URLRequestAdapter::URLRequestAdapter(cronet::URLRequestContextAdapter*,
cronet::URLRequestAdapter::URLRequestAdapterDelegate*, GURL,
net::RequestPriority): error: undefined reference to 'GURL::GURL(GURL const&)'
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.url_request_adapter.o):../../components/cronet/android/url_request_adapter.cc:function
cronet::URLRequestAdapter::URLRequestAdapter(cronet::URLRequestContextAdapter*,
cronet::URLRequestAdapter::URLRequestAdapterDelegate*, GURL,
net::RequestPriority): error: undefined reference to 'GURL::operator=(GURL)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Message was sent while issue was closed.
Description was changed from ========== [Cronet] Add QUIC experimental params This CL plumbs four QUIC experimental params ( quic_store_server_configs_in_properties, quic_delay_tcp_race, quic_max_number_of_lossy_connections, quic_packet_loss_threshold) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 Committed: https://crrev.com/fde0b72c603cd111c36ca4cc416d82a7395bcf6c Cr-Commit-Position: refs/heads/master@{#360454} Committed: https://crrev.com/8ece3aa6845350c1971a3e824bf148f3e8de3253 Cr-Commit-Position: refs/heads/master@{#360875} ========== to ========== [Cronet] Add QUIC experimental params This CL plumbs four QUIC experimental params ( quic_store_server_configs_in_properties, quic_delay_tcp_race, quic_max_number_of_lossy_connections, quic_packet_loss_threshold) from Cronet's setExperimentalOptions API to net::HttpNetworkSession. This CL also adds a unittests target to run the unittests. A followup CL will enable the unittests on the cronet bots. BUG=545118 Committed: https://crrev.com/fde0b72c603cd111c36ca4cc416d82a7395bcf6c Cr-Commit-Position: refs/heads/master@{#360454} Committed: https://crrev.com/8ece3aa6845350c1971a3e824bf148f3e8de3253 Cr-Commit-Position: refs/heads/master@{#360875} ==========
On 2015/11/20 20:34:56, xunjieli wrote:
> Hi Misha, could you take a look at the gyp file changes?
>
> The failure output from the internal bot is pasted below.
> Is this because shared library linking clashes with that of android on chrome?
I
> couldn't get the error to reproduce locally. I made cronet_unittests depend on
> cronet_static instead of cronet_static_small. Is this the right way?
>
> Thanks! PTAL
>
> FAILED: if [ ! -e lib/libcronet_unittests.cr.so -o ! -e
> lib/libcronet_unittests.cr.so.TOC ]; then /b/build/goma/gomacc
> ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-z,now
> -Wl,-z,relro -Wl,--fatal-warnings -Wl,-z,noexecstack -fPIC
>
-B/b/build/slave/clang-clankium-tot-builder/build/src/third_party/binutils/Linux_x64/Release/bin
> -Wl,-z,relro -Wl,-z,now -fuse-ld=gold -fsanitize=address -Wl,--build-id=sha1
> -Wl,--no-undefined
> --sysroot=../../third_party/android_tools/ndk//platforms/android-16/arch-arm
> -nostdlib
>
-L../../third_party/android_tools/ndk//sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
> -Wl,--exclude-libs=libgcc.a -Wl,--exclude-libs=libc++_static.a
> -Wl,--exclude-libs=libcommon_audio.a -Wl,--exclude-libs=libcommon_audio_neon.a
> -Wl,--exclude-libs=libcommon_audio_sse2.a -Wl,--exclude-libs=libiSACFix.a
> -Wl,--exclude-libs=libisac_neon.a -Wl,--exclude-libs=libopus.a
> -Wl,--exclude-libs=libvpx.a -target arm-linux-androideabi -Wl,--icf=all
> -Wl,-shared,-Bsymbolic
>
../../third_party/android_tools/ndk//platforms/android-16/arch-arm/usr/lib/crtbegin_so.o
> -Wl,--warn-shared-textrel -Wl,-O1 -o lib/libcronet_unittests.cr.so
> -Wl,-soname=libcronet_unittests.cr.so @lib/libcronet_unittests.cr.so.rsp && {
> readelf -d lib/libcronet_unittests.cr.so | grep SONAME ; nm -gD -f p
> lib/libcronet_unittests.cr.so | cut -f1-2 -d' '; } >
> lib/libcronet_unittests.cr.so.TOC; else /b/build/goma/gomacc
> ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-z,now
> -Wl,-z,relro -Wl,--fatal-warnings -Wl,-z,noexecstack -fPIC
>
-B/b/build/slave/clang-clankium-tot-builder/build/src/third_party/binutils/Linux_x64/Release/bin
> -Wl,-z,relro -Wl,-z,now -fuse-ld=gold -fsanitize=address -Wl,--build-id=sha1
> -Wl,--no-undefined
> --sysroot=../../third_party/android_tools/ndk//platforms/android-16/arch-arm
> -nostdlib
>
-L../../third_party/android_tools/ndk//sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
> -Wl,--exclude-libs=libgcc.a -Wl,--exclude-libs=libc++_static.a
> -Wl,--exclude-libs=libcommon_audio.a -Wl,--exclude-libs=libcommon_audio_neon.a
> -Wl,--exclude-libs=libcommon_audio_sse2.a -Wl,--exclude-libs=libiSACFix.a
> -Wl,--exclude-libs=libisac_neon.a -Wl,--exclude-libs=libopus.a
> -Wl,--exclude-libs=libvpx.a -target arm-linux-androideabi -Wl,--icf=all
> -Wl,-shared,-Bsymbolic
>
../../third_party/android_tools/ndk//platforms/android-16/arch-arm/usr/lib/crtbegin_so.o
> -Wl,--warn-shared-textrel -Wl,-O1 -o lib/libcronet_unittests.cr.so
> -Wl,-soname=libcronet_unittests.cr.so @lib/libcronet_unittests.cr.so.rsp && {
> readelf -d lib/libcronet_unittests.cr.so | grep SONAME ; nm -gD -f p
> lib/libcronet_unittests.cr.so | cut -f1-2 -d' '; } >
> lib/libcronet_unittests.cr.so.tmp && if ! cmp -s
> lib/libcronet_unittests.cr.so.tmp lib/libcronet_unittests.cr.so.TOC; then mv
> lib/libcronet_unittests.cr.so.tmp lib/libcronet_unittests.cr.so.TOC ; fi; fi
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
> Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
> undefined reference to 'GURL::GURL(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
> Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
> undefined reference to 'GURL::GURL(GURL const&)'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
> Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
> undefined reference to 'GURL::~GURL()'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.chromium_url_request.o):../../components/cronet/android/chromium_url_request.cc:function
> Java_org_chromium_net_ChromiumUrlRequest_nativeCreateRequestAdapter: error:
> undefined reference to 'GURL::~GURL()'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_library_loader.o):../../components/cronet/android/cronet_library_loader.cc:function
> cronet::(anonymous namespace)::Init(): error: undefined reference to
> 'url::Initialize()'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_library_loader.o):../../components/cronet/android/cronet_library_loader.cc:cronet::(anonymous
> namespace)::kCronetRegisteredMethods: error: undefined reference to
> 'url::android::RegisterJni(_JNIEnv*)'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
> Java_org_chromium_net_CronetUrlRequest_nativeCreateRequestAdapter: error:
> undefined reference to 'GURL::GURL(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
> Java_org_chromium_net_CronetUrlRequest_nativeCreateRequestAdapter: error:
> undefined reference to 'GURL::~GURL()'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
>
cronet::CronetURLRequestAdapter::CronetURLRequestAdapter(cronet::CronetURLRequestContextAdapter*,
> _JNIEnv*, _jobject*, GURL const&, net::RequestPriority): error: undefined
> reference to 'GURL::GURL(GURL const&)'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
> cronet::CronetURLRequestAdapter::~CronetURLRequestAdapter(): error: undefined
> reference to 'GURL::~GURL()'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.cronet_url_request_adapter.o):../../components/cronet/android/cronet_url_request_adapter.cc:function
> cronet::CronetURLRequestAdapter::OnReceivedRedirect(net::URLRequest*,
> net::RedirectInfo const&, bool*): error: undefined reference to 'GURL::spec()
> const'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.url_request_adapter.o):../../components/cronet/android/url_request_adapter.cc:function
>
cronet::URLRequestAdapter::URLRequestAdapter(cronet::URLRequestContextAdapter*,
> cronet::URLRequestAdapter::URLRequestAdapterDelegate*, GURL,
> net::RequestPriority): error: undefined reference to 'GURL::GURL()'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.url_request_adapter.o):../../components/cronet/android/url_request_adapter.cc:function
>
cronet::URLRequestAdapter::URLRequestAdapter(cronet::URLRequestContextAdapter*,
> cronet::URLRequestAdapter::URLRequestAdapterDelegate*, GURL,
> net::RequestPriority): error: undefined reference to 'GURL::GURL(GURL const&)'
>
obj/components/libcronet_static_small.a(obj/components/cronet/android/cronet_static_small.url_request_adapter.o):../../components/cronet/android/url_request_adapter.cc:function
>
cronet::URLRequestAdapter::URLRequestAdapter(cronet::URLRequestContextAdapter*,
> cronet::URLRequestAdapter::URLRequestAdapterDelegate*, GURL,
> net::RequestPriority): error: undefined reference to 'GURL::operator=(GURL)'
> clang: error: linker command failed with exit code 1 (use -v to see
invocation)
> ninja: build stopped: subcommand failed.
Reopened the issue. PTAL at Patch #10. Thanks!
Patchset #10 (id:200001) has been deleted
Patchset #10 (id:220001) has been deleted
Hi Misha, the CL got reverted because it broke an internal bot. PTAL at new gyp files changes (Patch #10). Thanks!
On 2015/11/23 16:20:11, xunjieli wrote: > Hi Misha, the CL got reverted because it broke an internal bot. PTAL at new gyp > files changes (Patch #10). Thanks! Looks fine to me. Did you try to build all those targets locally? I've considered adding '../url/url.gyp:url_lib', to new target, but I think your change looks cleaner.
On 2015/11/23 16:27:22, mef wrote: > On 2015/11/23 16:20:11, xunjieli wrote: > > Hi Misha, the CL got reverted because it broke an internal bot. PTAL at new > gyp > > files changes (Patch #10). Thanks! > > Looks fine to me. Did you try to build all those targets locally? Yes, building these targets(cronet_static, cronet_static_small, libcronet, cronet_unittests) work locally. > I've considered adding '../url/url.gyp:url_lib', to new target, but I think your > change looks cleaner.
lgtm
The CQ bit was checked by xunjieli@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from rtenneti@chromium.org Link to the patchset: https://codereview.chromium.org/1448583003/#ps240001 (title: "Fix build")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1448583003/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1448583003/240001
Message was sent while issue was closed.
Committed patchset #10 (id:240001)
Message was sent while issue was closed.
Patchset 10 (id:??) landed as https://crrev.com/f24ee5f5afeb59d2a9134a7b986efb6483629fe5 Cr-Commit-Position: refs/heads/master@{#361138} |
