|
|
Chromium Code Reviews|
Created:
4 years, 6 months ago by Tom (Use chromium acct) Modified:
4 years, 6 months ago CC:
cbentzel+watch_chromium.org, chromium-reviews, Dirk Pranke Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionAdd calls to g_type_init
Failing tests:
https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1
These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001
This fixes crashes such as the following on 32-bit linux:
[412/714] XmppStreamParserTest.FailOnLooseText (2 ms)
[ RUN ] AccessTokenFetcherTest.ExchangeAuthCodeForAccessToken
(process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()
(process:5533): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed
(process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
(process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()
(process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
(process:5533): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
Received signal 11 SEGV_MAPERR 00000000000c
#0 0x0000b73d7e04 base::debug::StackTrace::StackTrace()
#1 0x0000b73d792b base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x0000b777c410 ([vdso]+0x40f)
#3 0x0000b278cb79 <unknown>
#4 0x0000b278d9a0 gconf_client_get_default
#5 0x0000b68513a4 net::(anonymous namespace)::SettingGetterImplGConf::Init()
#6 0x0000b684c07d net::ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig()
#7 0x0000b687f48d net::ProxyConfigServiceLinux::SetupAndFetchInitialConfig()
#8 0x0000b6878d2e net::ProxyService::CreateSystemProxyConfigService()
#9 0x0000085b912b remoting::URLRequestContextGetter::URLRequestContextGetter()
#10 0x000008ee642a remoting::test::AccessTokenFetcher::CreateNewGaiaOAuthClientInstance()
#11 0x000008ee632e remoting::test::AccessTokenFetcher::GetAccessTokenFromAuthCode()
#12 0x000008395915 remoting::test::AccessTokenFetcherTest_ExchangeAuthCodeForAccessToken_Test::TestBody()
#13 0x000008314310 _ZN7testing8internal12InvokeHelperIvNSt3tr15tupleIJEEEE12InvokeMethodIN8remoting8protocol39MessageReaderTest_ReadFromCallback_TestEMNS8_17MessageReaderTestEFvvEEEvPT_T0_RKS4_
#14 0x0000092c2713 testing::internal::HandleExceptionsInMethodIfSupported<>()
#15 0x0000092b4a03 testing::Test::Run()
#16 0x0000092b5487 testing::TestInfo::Run()
#17 0x0000092b5c40 testing::TestCase::Run()
#18 0x0000092bd5bf testing::internal::UnitTestImpl::RunAllTests()
#19 0x0000092cfc20 testing::internal::HandleSehExceptionsInMethodIfSupported<>()
#20 0x0000092c4133 testing::internal::HandleExceptionsInMethodIfSupported<>()
#21 0x0000092bd1c8 testing::UnitTest::Run()
#22 0x000009204e8d RUN_ALL_TESTS()
#23 0x000009203a09 base::TestSuite::Run()
#24 0x000008139f66 _ZN4base8internal15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEE3RunIPS3_JEEEvOT_DpOT0_
#25 0x000008139e9a _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEEEE8MakeItSoIJPS4_EEEvS7_DpOT_
#26 0x0000081e2f49 _ZN4base8internal7InvokerINS_13IndexSequenceIJLj0EEEENS0_9BindStateINS0_15RunnableAdapterIMNS_9TestSuiteEFivEEEFiPS6_EJNS0_17UnretainedWrapperIS6_EEEEENS0_12InvokeHelperILb0EiS9_EEFivEE3RunEPNS0_13BindStateBaseE
#27 0x000008163b2b base::Callback<>::Run()
#28 0x00000923e949 base::(anonymous namespace)::LaunchUnitTestsInternal()
#29 0x00000923e73b base::LaunchUnitTests()
#30 0x0000081e2bff main
#31 0x0000b27c94d3 __libc_start_main
#32 0x0000080f3b65 <unknown>
gs: 00000033 fs: 00000000 es: 0000007b ds: 0000007b
edi: 0bc1e1f0 esi: 00000000 ebp: bf83be98 esp: bf83b980
ebx: b27a3ff4 edx: 0bc1e1f0 ecx: 00000019 eax: 00000000
trp: 0000000e err: 00000004 ip: b278cb79 cs: 00000073
efl: 00210282 usp: bf83b980 ss: 0000007b
[end of stack trace]
BUG=613329
Committed: https://crrev.com/9d47fa1658395080390c4bbc01545958f209ce30
Cr-Commit-Position: refs/heads/master@{#400065}
Patch Set 1 #
Total comments: 4
Patch Set 2 : Conditionalized call to g_type_init based on version #Patch Set 3 : Remove static call to g_type_init in //net #
Messages
Total messages: 37 (15 generated)
thomasanderson@google.com changed reviewers: + asanka@chromium.org, phajdan.jr@chromium.org
Description was changed from ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 BUG=613329 ========== to ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001 BUG=613329 ==========
The CQ bit was checked by thomasanderson@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2015243002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2015243002/1
Description was changed from ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001 BUG=613329 ========== to ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001 This fixes crashes such as the following on 32-bit linux: [412/714] XmppStreamParserTest.FailOnLooseText (2 ms) [ RUN ] AccessTokenFetcherTest.ExchangeAuthCodeForAccessToken (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed Received signal 11 SEGV_MAPERR 00000000000c #0 0x0000b73d7e04 base::debug::StackTrace::StackTrace() #1 0x0000b73d792b base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x0000b777c410 ([vdso]+0x40f) #3 0x0000b278cb79 <unknown> #4 0x0000b278d9a0 gconf_client_get_default #5 0x0000b68513a4 net::(anonymous namespace)::SettingGetterImplGConf::Init() #6 0x0000b684c07d net::ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig() #7 0x0000b687f48d net::ProxyConfigServiceLinux::SetupAndFetchInitialConfig() #8 0x0000b6878d2e net::ProxyService::CreateSystemProxyConfigService() #9 0x0000085b912b remoting::URLRequestContextGetter::URLRequestContextGetter() #10 0x000008ee642a remoting::test::AccessTokenFetcher::CreateNewGaiaOAuthClientInstance() #11 0x000008ee632e remoting::test::AccessTokenFetcher::GetAccessTokenFromAuthCode() #12 0x000008395915 remoting::test::AccessTokenFetcherTest_ExchangeAuthCodeForAccessToken_Test::TestBody() #13 0x000008314310 _ZN7testing8internal12InvokeHelperIvNSt3tr15tupleIJEEEE12InvokeMethodIN8remoting8protocol39MessageReaderTest_ReadFromCallback_TestEMNS8_17MessageReaderTestEFvvEEEvPT_T0_RKS4_ #14 0x0000092c2713 testing::internal::HandleExceptionsInMethodIfSupported<>() #15 0x0000092b4a03 testing::Test::Run() #16 0x0000092b5487 testing::TestInfo::Run() #17 0x0000092b5c40 testing::TestCase::Run() #18 0x0000092bd5bf testing::internal::UnitTestImpl::RunAllTests() #19 0x0000092cfc20 testing::internal::HandleSehExceptionsInMethodIfSupported<>() #20 0x0000092c4133 testing::internal::HandleExceptionsInMethodIfSupported<>() #21 0x0000092bd1c8 testing::UnitTest::Run() #22 0x000009204e8d RUN_ALL_TESTS() #23 0x000009203a09 base::TestSuite::Run() #24 0x000008139f66 _ZN4base8internal15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEE3RunIPS3_JEEEvOT_DpOT0_ #25 0x000008139e9a _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEEEE8MakeItSoIJPS4_EEEvS7_DpOT_ #26 0x0000081e2f49 _ZN4base8internal7InvokerINS_13IndexSequenceIJLj0EEEENS0_9BindStateINS0_15RunnableAdapterIMNS_9TestSuiteEFivEEEFiPS6_EJNS0_17UnretainedWrapperIS6_EEEEENS0_12InvokeHelperILb0EiS9_EEFivEE3RunEPNS0_13BindStateBaseE #27 0x000008163b2b base::Callback<>::Run() #28 0x00000923e949 base::(anonymous namespace)::LaunchUnitTestsInternal() #29 0x00000923e73b base::LaunchUnitTests() #30 0x0000081e2bff main #31 0x0000b27c94d3 __libc_start_main #32 0x0000080f3b65 <unknown> gs: 00000033 fs: 00000000 es: 0000007b ds: 0000007b edi: 0bc1e1f0 esi: 00000000 ebp: bf83be98 esp: bf83b980 ebx: b27a3ff4 edx: 0bc1e1f0 ecx: 00000019 eax: 00000000 trp: 0000000e err: 00000004 ip: b278cb79 cs: 00000073 efl: 00210282 usp: bf83b980 ss: 0000007b [end of stack trace] BUG=613329 ==========
LGTM
I think you missed one of my questions from the previous CL. Why is this change necessary for remoting tests? Do we need this for remoting itself or is this only a requirement for tests? For comparison, for other tests the responsibility for calling g_type_init() is assumed by the caller. https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... File net/proxy/proxy_config_service_linux.cc (right): https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... net/proxy/proxy_config_service_linux.cc:246: g_type_init(); Assuming this is still necessary, everywhere else we have a static call to g_type_init(), it's conditionalized so that the call only happens on glib versions that require the call. https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... net/proxy/proxy_config_service_linux.cc:822: libgio_loader_.g_type_init(); This call is a bit special since the specific version being loaded may be different from the one that the code builds with. Hence the code can't depend on compile time conditionalization. Could you add a comment explaining this?
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by thomasanderson@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2015243002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2015243002/20001
On 2016/05/27 17:03:28, asanka wrote: > I think you missed one of my questions from the previous CL. > > Why is this change necessary for remoting tests? Do we need this for remoting > itself or is this only a requirement for tests? > > For comparison, for other tests the responsibility for calling g_type_init() is > assumed by the caller. > Based on a quick search in src/remoting, this only seems to be a requirement for the tests since the only place that uses glib is in me2me_native_messaging_host_main.cc, but that already has a call to g_type_init. https://code.google.com/p/chromium/codesearch#chromium/src/remoting/host/setu... https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... File net/proxy/proxy_config_service_linux.cc (right): https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... net/proxy/proxy_config_service_linux.cc:246: g_type_init(); On 2016/05/27 17:03:27, asanka wrote: > Assuming this is still necessary, everywhere else we have a static call to > g_type_init(), it's conditionalized so that the call only happens on glib > versions that require the call. Done. Although I think this call should be harmless because on newer glib versions, it's just a no-op. https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... net/proxy/proxy_config_service_linux.cc:822: libgio_loader_.g_type_init(); On 2016/05/27 17:03:27, asanka wrote: > This call is a bit special since the specific version being loaded may be > different from the one that the code builds with. Hence the code can't depend on > compile time conditionalization. Could you add a comment explaining this? Added a runtime version check instead.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
On 2016/05/27 at 20:41:44, thomasanderson wrote: > On 2016/05/27 17:03:28, asanka wrote: > > I think you missed one of my questions from the previous CL. > > > > Why is this change necessary for remoting tests? Do we need this for remoting > > itself or is this only a requirement for tests? > > > > For comparison, for other tests the responsibility for calling g_type_init() is > > assumed by the caller. > > > > Based on a quick search in src/remoting, this only seems to be a requirement for the tests since the only place that uses glib is in me2me_native_messaging_host_main.cc, but that already has a call to g_type_init. > https://code.google.com/p/chromium/codesearch#chromium/src/remoting/host/setu... Thanks for checking. It seems the correct place to add the g_type_init() call is in the appropriate test runner. On platforms where g_type_init() is a requirement, //net has historically assumed that the caller is responsible for doing so. While g_type_init() is pretty much an obsolete requirement for the most part, adding it to //net now would still leave things in an inconsistent state where the division of responsibilities is ambiguous. > > https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... > File net/proxy/proxy_config_service_linux.cc (right): > > https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... > net/proxy/proxy_config_service_linux.cc:246: g_type_init(); > On 2016/05/27 17:03:27, asanka wrote: > > Assuming this is still necessary, everywhere else we have a static call to > > g_type_init(), it's conditionalized so that the call only happens on glib > > versions that require the call. > > Done. Although I think this call should be harmless because on newer glib versions, it's just a no-op. > > https://codereview.chromium.org/2015243002/diff/1/net/proxy/proxy_config_serv... > net/proxy/proxy_config_service_linux.cc:822: libgio_loader_.g_type_init(); > On 2016/05/27 17:03:27, asanka wrote: > > This call is a bit special since the specific version being loaded may be > > different from the one that the code builds with. Hence the code can't depend on > > compile time conditionalization. Could you add a comment explaining this? > > Added a runtime version check instead.
On 2016/05/31 15:21:35, asanka wrote: > Thanks for checking. It seems the correct place to add the g_type_init() call is > in the appropriate test runner. On platforms where g_type_init() is a > requirement, //net has historically assumed that the caller is responsible for > doing so. While g_type_init() is pretty much an obsolete requirement for the > most part, adding it to //net now would still leave things in an inconsistent > state where the division of responsibilities is ambiguous. I can move the call to g_type_init for the static case into the test runner, however I cannot move the one that is dynamically loaded, because we load the library and make a call that will fail without g_type_init completely within net/proxy/proxy_config_service_linux.cc
On 2016/06/03 at 16:47:37, thomasanderson wrote: > On 2016/05/31 15:21:35, asanka wrote: > > Thanks for checking. It seems the correct place to add the g_type_init() call is > > in the appropriate test runner. On platforms where g_type_init() is a > > requirement, //net has historically assumed that the caller is responsible for > > doing so. While g_type_init() is pretty much an obsolete requirement for the > > most part, adding it to //net now would still leave things in an inconsistent > > state where the division of responsibilities is ambiguous. > > I can move the call to g_type_init for the static case into the test runner, however I cannot move the one that is dynamically loaded, because we load the library and make a call that will fail without g_type_init completely within net/proxy/proxy_config_service_linux.cc That sounds reasonable.
Removed static call to g_type_init in //net It appears the only call to g_type_init we need is the dynamically-loaded one. I double-checked that my glib version is only 2.15 too, so I guess the static one was unnecessary.
lgtm
The CQ bit was checked by thomasanderson@google.com
The patchset sent to the CQ was uploaded after l-g-t-m from phajdan.jr@chromium.org Link to the patchset: https://codereview.chromium.org/2015243002/#ps40001 (title: "Remove static call to g_type_init in //net")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2015243002/40001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by thomasanderson@google.com
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2015243002/40001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by thomasanderson@google.com
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2015243002/40001
Message was sent while issue was closed.
Description was changed from ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001 This fixes crashes such as the following on 32-bit linux: [412/714] XmppStreamParserTest.FailOnLooseText (2 ms) [ RUN ] AccessTokenFetcherTest.ExchangeAuthCodeForAccessToken (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed Received signal 11 SEGV_MAPERR 00000000000c #0 0x0000b73d7e04 base::debug::StackTrace::StackTrace() #1 0x0000b73d792b base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x0000b777c410 ([vdso]+0x40f) #3 0x0000b278cb79 <unknown> #4 0x0000b278d9a0 gconf_client_get_default #5 0x0000b68513a4 net::(anonymous namespace)::SettingGetterImplGConf::Init() #6 0x0000b684c07d net::ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig() #7 0x0000b687f48d net::ProxyConfigServiceLinux::SetupAndFetchInitialConfig() #8 0x0000b6878d2e net::ProxyService::CreateSystemProxyConfigService() #9 0x0000085b912b remoting::URLRequestContextGetter::URLRequestContextGetter() #10 0x000008ee642a remoting::test::AccessTokenFetcher::CreateNewGaiaOAuthClientInstance() #11 0x000008ee632e remoting::test::AccessTokenFetcher::GetAccessTokenFromAuthCode() #12 0x000008395915 remoting::test::AccessTokenFetcherTest_ExchangeAuthCodeForAccessToken_Test::TestBody() #13 0x000008314310 _ZN7testing8internal12InvokeHelperIvNSt3tr15tupleIJEEEE12InvokeMethodIN8remoting8protocol39MessageReaderTest_ReadFromCallback_TestEMNS8_17MessageReaderTestEFvvEEEvPT_T0_RKS4_ #14 0x0000092c2713 testing::internal::HandleExceptionsInMethodIfSupported<>() #15 0x0000092b4a03 testing::Test::Run() #16 0x0000092b5487 testing::TestInfo::Run() #17 0x0000092b5c40 testing::TestCase::Run() #18 0x0000092bd5bf testing::internal::UnitTestImpl::RunAllTests() #19 0x0000092cfc20 testing::internal::HandleSehExceptionsInMethodIfSupported<>() #20 0x0000092c4133 testing::internal::HandleExceptionsInMethodIfSupported<>() #21 0x0000092bd1c8 testing::UnitTest::Run() #22 0x000009204e8d RUN_ALL_TESTS() #23 0x000009203a09 base::TestSuite::Run() #24 0x000008139f66 _ZN4base8internal15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEE3RunIPS3_JEEEvOT_DpOT0_ #25 0x000008139e9a _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEEEE8MakeItSoIJPS4_EEEvS7_DpOT_ #26 0x0000081e2f49 _ZN4base8internal7InvokerINS_13IndexSequenceIJLj0EEEENS0_9BindStateINS0_15RunnableAdapterIMNS_9TestSuiteEFivEEEFiPS6_EJNS0_17UnretainedWrapperIS6_EEEEENS0_12InvokeHelperILb0EiS9_EEFivEE3RunEPNS0_13BindStateBaseE #27 0x000008163b2b base::Callback<>::Run() #28 0x00000923e949 base::(anonymous namespace)::LaunchUnitTestsInternal() #29 0x00000923e73b base::LaunchUnitTests() #30 0x0000081e2bff main #31 0x0000b27c94d3 __libc_start_main #32 0x0000080f3b65 <unknown> gs: 00000033 fs: 00000000 es: 0000007b ds: 0000007b edi: 0bc1e1f0 esi: 00000000 ebp: bf83be98 esp: bf83b980 ebx: b27a3ff4 edx: 0bc1e1f0 ecx: 00000019 eax: 00000000 trp: 0000000e err: 00000004 ip: b278cb79 cs: 00000073 efl: 00210282 usp: bf83b980 ss: 0000007b [end of stack trace] BUG=613329 ========== to ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001 This fixes crashes such as the following on 32-bit linux: [412/714] XmppStreamParserTest.FailOnLooseText (2 ms) [ RUN ] AccessTokenFetcherTest.ExchangeAuthCodeForAccessToken (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed Received signal 11 SEGV_MAPERR 00000000000c #0 0x0000b73d7e04 base::debug::StackTrace::StackTrace() #1 0x0000b73d792b base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x0000b777c410 ([vdso]+0x40f) #3 0x0000b278cb79 <unknown> #4 0x0000b278d9a0 gconf_client_get_default #5 0x0000b68513a4 net::(anonymous namespace)::SettingGetterImplGConf::Init() #6 0x0000b684c07d net::ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig() #7 0x0000b687f48d net::ProxyConfigServiceLinux::SetupAndFetchInitialConfig() #8 0x0000b6878d2e net::ProxyService::CreateSystemProxyConfigService() #9 0x0000085b912b remoting::URLRequestContextGetter::URLRequestContextGetter() #10 0x000008ee642a remoting::test::AccessTokenFetcher::CreateNewGaiaOAuthClientInstance() #11 0x000008ee632e remoting::test::AccessTokenFetcher::GetAccessTokenFromAuthCode() #12 0x000008395915 remoting::test::AccessTokenFetcherTest_ExchangeAuthCodeForAccessToken_Test::TestBody() #13 0x000008314310 _ZN7testing8internal12InvokeHelperIvNSt3tr15tupleIJEEEE12InvokeMethodIN8remoting8protocol39MessageReaderTest_ReadFromCallback_TestEMNS8_17MessageReaderTestEFvvEEEvPT_T0_RKS4_ #14 0x0000092c2713 testing::internal::HandleExceptionsInMethodIfSupported<>() #15 0x0000092b4a03 testing::Test::Run() #16 0x0000092b5487 testing::TestInfo::Run() #17 0x0000092b5c40 testing::TestCase::Run() #18 0x0000092bd5bf testing::internal::UnitTestImpl::RunAllTests() #19 0x0000092cfc20 testing::internal::HandleSehExceptionsInMethodIfSupported<>() #20 0x0000092c4133 testing::internal::HandleExceptionsInMethodIfSupported<>() #21 0x0000092bd1c8 testing::UnitTest::Run() #22 0x000009204e8d RUN_ALL_TESTS() #23 0x000009203a09 base::TestSuite::Run() #24 0x000008139f66 _ZN4base8internal15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEE3RunIPS3_JEEEvOT_DpOT0_ #25 0x000008139e9a _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEEEE8MakeItSoIJPS4_EEEvS7_DpOT_ #26 0x0000081e2f49 _ZN4base8internal7InvokerINS_13IndexSequenceIJLj0EEEENS0_9BindStateINS0_15RunnableAdapterIMNS_9TestSuiteEFivEEEFiPS6_EJNS0_17UnretainedWrapperIS6_EEEEENS0_12InvokeHelperILb0EiS9_EEFivEE3RunEPNS0_13BindStateBaseE #27 0x000008163b2b base::Callback<>::Run() #28 0x00000923e949 base::(anonymous namespace)::LaunchUnitTestsInternal() #29 0x00000923e73b base::LaunchUnitTests() #30 0x0000081e2bff main #31 0x0000b27c94d3 __libc_start_main #32 0x0000080f3b65 <unknown> gs: 00000033 fs: 00000000 es: 0000007b ds: 0000007b edi: 0bc1e1f0 esi: 00000000 ebp: bf83be98 esp: bf83b980 ebx: b27a3ff4 edx: 0bc1e1f0 ecx: 00000019 eax: 00000000 trp: 0000000e err: 00000004 ip: b278cb79 cs: 00000073 efl: 00210282 usp: bf83b980 ss: 0000007b [end of stack trace] BUG=613329 ==========
Message was sent while issue was closed.
Committed patchset #3 (id:40001)
Message was sent while issue was closed.
CQ bit was unchecked
Message was sent while issue was closed.
Description was changed from ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001 This fixes crashes such as the following on 32-bit linux: [412/714] XmppStreamParserTest.FailOnLooseText (2 ms) [ RUN ] AccessTokenFetcherTest.ExchangeAuthCodeForAccessToken (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed Received signal 11 SEGV_MAPERR 00000000000c #0 0x0000b73d7e04 base::debug::StackTrace::StackTrace() #1 0x0000b73d792b base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x0000b777c410 ([vdso]+0x40f) #3 0x0000b278cb79 <unknown> #4 0x0000b278d9a0 gconf_client_get_default #5 0x0000b68513a4 net::(anonymous namespace)::SettingGetterImplGConf::Init() #6 0x0000b684c07d net::ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig() #7 0x0000b687f48d net::ProxyConfigServiceLinux::SetupAndFetchInitialConfig() #8 0x0000b6878d2e net::ProxyService::CreateSystemProxyConfigService() #9 0x0000085b912b remoting::URLRequestContextGetter::URLRequestContextGetter() #10 0x000008ee642a remoting::test::AccessTokenFetcher::CreateNewGaiaOAuthClientInstance() #11 0x000008ee632e remoting::test::AccessTokenFetcher::GetAccessTokenFromAuthCode() #12 0x000008395915 remoting::test::AccessTokenFetcherTest_ExchangeAuthCodeForAccessToken_Test::TestBody() #13 0x000008314310 _ZN7testing8internal12InvokeHelperIvNSt3tr15tupleIJEEEE12InvokeMethodIN8remoting8protocol39MessageReaderTest_ReadFromCallback_TestEMNS8_17MessageReaderTestEFvvEEEvPT_T0_RKS4_ #14 0x0000092c2713 testing::internal::HandleExceptionsInMethodIfSupported<>() #15 0x0000092b4a03 testing::Test::Run() #16 0x0000092b5487 testing::TestInfo::Run() #17 0x0000092b5c40 testing::TestCase::Run() #18 0x0000092bd5bf testing::internal::UnitTestImpl::RunAllTests() #19 0x0000092cfc20 testing::internal::HandleSehExceptionsInMethodIfSupported<>() #20 0x0000092c4133 testing::internal::HandleExceptionsInMethodIfSupported<>() #21 0x0000092bd1c8 testing::UnitTest::Run() #22 0x000009204e8d RUN_ALL_TESTS() #23 0x000009203a09 base::TestSuite::Run() #24 0x000008139f66 _ZN4base8internal15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEE3RunIPS3_JEEEvOT_DpOT0_ #25 0x000008139e9a _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEEEE8MakeItSoIJPS4_EEEvS7_DpOT_ #26 0x0000081e2f49 _ZN4base8internal7InvokerINS_13IndexSequenceIJLj0EEEENS0_9BindStateINS0_15RunnableAdapterIMNS_9TestSuiteEFivEEEFiPS6_EJNS0_17UnretainedWrapperIS6_EEEEENS0_12InvokeHelperILb0EiS9_EEFivEE3RunEPNS0_13BindStateBaseE #27 0x000008163b2b base::Callback<>::Run() #28 0x00000923e949 base::(anonymous namespace)::LaunchUnitTestsInternal() #29 0x00000923e73b base::LaunchUnitTests() #30 0x0000081e2bff main #31 0x0000b27c94d3 __libc_start_main #32 0x0000080f3b65 <unknown> gs: 00000033 fs: 00000000 es: 0000007b ds: 0000007b edi: 0bc1e1f0 esi: 00000000 ebp: bf83be98 esp: bf83b980 ebx: b27a3ff4 edx: 0bc1e1f0 ecx: 00000019 eax: 00000000 trp: 0000000e err: 00000004 ip: b278cb79 cs: 00000073 efl: 00210282 usp: bf83b980 ss: 0000007b [end of stack trace] BUG=613329 ========== to ========== Add calls to g_type_init Failing tests: https://bugs.chromium.org/p/chromium/issues/detail?id=613329#c1 These changes were partitioned from https://codereview.chromium.org/2003753002/#ps40001 This fixes crashes such as the following on 32-bit linux: [412/714] XmppStreamParserTest.FailOnLooseText (2 ms) [ RUN ] AccessTokenFetcherTest.ExchangeAuthCodeForAccessToken (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init() (process:5533): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (process:5533): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed Received signal 11 SEGV_MAPERR 00000000000c #0 0x0000b73d7e04 base::debug::StackTrace::StackTrace() #1 0x0000b73d792b base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x0000b777c410 ([vdso]+0x40f) #3 0x0000b278cb79 <unknown> #4 0x0000b278d9a0 gconf_client_get_default #5 0x0000b68513a4 net::(anonymous namespace)::SettingGetterImplGConf::Init() #6 0x0000b684c07d net::ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig() #7 0x0000b687f48d net::ProxyConfigServiceLinux::SetupAndFetchInitialConfig() #8 0x0000b6878d2e net::ProxyService::CreateSystemProxyConfigService() #9 0x0000085b912b remoting::URLRequestContextGetter::URLRequestContextGetter() #10 0x000008ee642a remoting::test::AccessTokenFetcher::CreateNewGaiaOAuthClientInstance() #11 0x000008ee632e remoting::test::AccessTokenFetcher::GetAccessTokenFromAuthCode() #12 0x000008395915 remoting::test::AccessTokenFetcherTest_ExchangeAuthCodeForAccessToken_Test::TestBody() #13 0x000008314310 _ZN7testing8internal12InvokeHelperIvNSt3tr15tupleIJEEEE12InvokeMethodIN8remoting8protocol39MessageReaderTest_ReadFromCallback_TestEMNS8_17MessageReaderTestEFvvEEEvPT_T0_RKS4_ #14 0x0000092c2713 testing::internal::HandleExceptionsInMethodIfSupported<>() #15 0x0000092b4a03 testing::Test::Run() #16 0x0000092b5487 testing::TestInfo::Run() #17 0x0000092b5c40 testing::TestCase::Run() #18 0x0000092bd5bf testing::internal::UnitTestImpl::RunAllTests() #19 0x0000092cfc20 testing::internal::HandleSehExceptionsInMethodIfSupported<>() #20 0x0000092c4133 testing::internal::HandleExceptionsInMethodIfSupported<>() #21 0x0000092bd1c8 testing::UnitTest::Run() #22 0x000009204e8d RUN_ALL_TESTS() #23 0x000009203a09 base::TestSuite::Run() #24 0x000008139f66 _ZN4base8internal15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEE3RunIPS3_JEEEvOT_DpOT0_ #25 0x000008139e9a _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN18OAuth2TokenService7FetcherEFvvEEEE8MakeItSoIJPS4_EEEvS7_DpOT_ #26 0x0000081e2f49 _ZN4base8internal7InvokerINS_13IndexSequenceIJLj0EEEENS0_9BindStateINS0_15RunnableAdapterIMNS_9TestSuiteEFivEEEFiPS6_EJNS0_17UnretainedWrapperIS6_EEEEENS0_12InvokeHelperILb0EiS9_EEFivEE3RunEPNS0_13BindStateBaseE #27 0x000008163b2b base::Callback<>::Run() #28 0x00000923e949 base::(anonymous namespace)::LaunchUnitTestsInternal() #29 0x00000923e73b base::LaunchUnitTests() #30 0x0000081e2bff main #31 0x0000b27c94d3 __libc_start_main #32 0x0000080f3b65 <unknown> gs: 00000033 fs: 00000000 es: 0000007b ds: 0000007b edi: 0bc1e1f0 esi: 00000000 ebp: bf83be98 esp: bf83b980 ebx: b27a3ff4 edx: 0bc1e1f0 ecx: 00000019 eax: 00000000 trp: 0000000e err: 00000004 ip: b278cb79 cs: 00000073 efl: 00210282 usp: bf83b980 ss: 0000007b [end of stack trace] BUG=613329 Committed: https://crrev.com/9d47fa1658395080390c4bbc01545958f209ce30 Cr-Commit-Position: refs/heads/master@{#400065} ==========
Message was sent while issue was closed.
Patchset 3 (id:??) landed as https://crrev.com/9d47fa1658395080390c4bbc01545958f209ce30 Cr-Commit-Position: refs/heads/master@{#400065} |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
