| Summary: | www-client/chromium-20.0.1132.43 - mystery segfault | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Paul McDermott <pmcdermott98> |
| Component: | Current packages | Assignee: | Chromium Project <chromium> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | x86 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | Output from strace | ||
|
Description
Paul McDermott
2012-07-02 19:58:12 UTC
Please get a back trace. (In reply to comment #1) > Please get a back trace. http://www.gentoo.org/proj/en/qa/backtraces.xml http://code.google.com/p/chromium/wiki/LinuxDebugging Build fails at the linking stage due to exhausted memory when trying to do a back trace: flock out/Release/linker.lock i686-pc-linux-gnu-g++ -pthread -Wl,-z,noexecstack -fPIC -pie -Lout/Release -lpthread -ldl -lm -L/usr/lib -licui18n -licuuc -licudata -lpthread -ldl -lm -m32 -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed -o out/Release/chrome -Wl,--start-group out/Release/obj.target/chrome/chrome/app/chrome_exe_main_gtk.o out/Release/obj.target/chrome/chrome/app/chrome_main.o out/Release/obj.target/chrome/chrome/app/chrome_main_delegate.o out/Release/obj.target/chrome/libcommon.a out/Release/obj.target/chrome/libbrowser.a out/Release/obj.target/chrome/libdebugger.a out/Release/obj.target/chrome/libplugin.a out/Release/obj.target/chrome/librenderer.a out/Release/obj.target/chrome/libutility.a out/Release/obj.target/content/libcontent_app.a out/Release/obj.target/content/libcontent_gpu.a out/Release/obj.target/content/libcontent_ppapi_plugin.a out/Release/obj.target/content/libcontent_worker.a out/Release/obj.target/sync/libsyncapi_core.a out/Release/obj.target/printing/libprinting.a out/Release/obj.target/chrome/libservice.a out/Release/obj.target/chrome/libinstaller_util.a out/Release/obj.target/chrome/libcommon_constants.a out/Release/obj.target/base/libbase.a out/Release/obj.target/base/libbase_static.a out/Release/obj.target/base/allocator/liballocator_extension_thunks.a out/Release/obj.target/third_party/modp_b64/libmodp_b64.a out/Release/obj.target/base/third_party/dynamic_annotations/libdynamic_annotations.a out/Release/obj.target/base/libsymbolize.a out/Release/obj.target/base/libxdg_mime.a out/Release/obj.target/chrome/libcommon_net.a out/Release/obj.target/crypto/libcrcrypto.a out/Release/obj.target/net/third_party/nss/libssl.a out/Release/obj.target/third_party/zlib/libzlib.a out/Release/obj.target/gpu/libgpu_ipc.a out/Release/obj.target/gpu/libcommand_buffer_common.a out/Release/obj.target/gpu/command_buffer/libgles2_utils.a out/Release/obj.target/ipc/libipc.a out/Release/obj.target/net/libnet.a out/Release/obj.target/base/libbase_i18n.a out/Release/obj.target/build/temp_gyp/libgoogleurl.a out/Release/obj.target/sdch/libsdch.a out/Release/obj.target/dbus/libdbus.a out/Release/obj.target/third_party/protobuf/libprotobuf_lite.a out/Release/obj.target/chrome/libmetrics_proto.a out/Release/obj.target/chrome/app/policy/libpolicy.a out/Release/obj.target/chrome/app/policy/libcloud_policy_proto_compile.a out/Release/obj.target/chrome/app/policy/libcloud_policy_backend_header_compile.a out/Release/obj.target/chrome/common/extensions/api/libapi.a out/Release/obj.target/tools/json_schema_compiler/libapi_gen_util.a out/Release/obj.target/content/libcontent_common.a out/Release/obj.target/gpu/libgles2_implementation.a out/Release/obj.target/ui/gfx/gl/libgl_wrapper.a out/Release/obj.target/skia/libskia.a out/Release/obj.target/skia/libskia_opts.a out/Release/obj.target/skia/libskia_opts_ssse3.a out/Release/obj.target/skia/libskia_libtess.a out/Release/obj.target/third_party/sfntly/libsfntly.a out/Release/obj.target/third_party/harfbuzz/libharfbuzz.a out/Release/obj.target/ui/libui.a out/Release/obj.target/gpu/libgles2_cmd_helper.a out/Release/obj.target/gpu/libcommand_buffer_client.a out/Release/obj.target/media/libmedia.a out/Release/obj.target/media/libyuv_convert.a out/Release/obj.target/media/libcpu_features.a out/Release/obj.target/media/libyuv_convert_simd_x86.a out/Release/obj.target/third_party/openmax/libil.a out/Release/obj.target/third_party/ffmpeg/libffmpeg.a out/Release/obj.target/third_party/WebKit/Source/WebKit/chromium/libwebkit.a out/Release/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_dom.a out/Release/obj.target/third_party/WebKit/Source/ThirdParty/glu/libtess.a out/Release/obj.target/third_party/WebKit/Source/JavaScriptCore/JavaScriptCore.gyp/libyarr.a out/Release/obj.target/third_party/WebKit/Source/WTF/WTF.gyp/libwtf.a out/Release/obj.target/third_party/iccjpeg/libiccjpeg.a out/Release/obj.target/third_party/libxml/libxml.a out/Release/obj.target/third_party/ots/libots.a out/Release/obj.target/third_party/sqlite/libsqlite3.a out/Release/obj.target/third_party/angle/src/libtranslator_glsl.a out/Release/obj.target/third_party/angle/src/libtranslator_common.a out/Release/obj.target/third_party/angle/src/libpreprocessor.a out/Release/obj.target/gpu/libgles2_c_lib.a out/Release/obj.target/third_party/leveldatabase/libleveldatabase.a out/Release/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_html.a out/Release/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_platform.a out/Release/obj.target/third_party/WebKit/Source/Platform/Platform.gyp/libwebkit_platform.a out/Release/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_remaining.a out/Release/obj.target/third_party/v8-i18n/build/libv8-i18n.a out/Release/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_rendering.a out/Release/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_bindings.a out/Release/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_svg.a out/Release/obj.target/webkit/support/libappcache.a out/Release/obj.target/webkit/support/libquota.a out/Release/obj.target/sql/libsql.a out/Release/obj.target/webkit/support/libblob.a out/Release/obj.target/webkit/support/libdatabase.a out/Release/obj.target/webkit/support/libfileapi.a out/Release/obj.target/gpu/libcommand_buffer_service.a out/Release/obj.target/ui/surface/libsurface.a out/Release/obj.target/webkit/support/libglue.a out/Release/obj.target/ppapi/libppapi_shared.a out/Release/obj.target/webkit/support/libwebkit_media.a out/Release/obj.target/webkit/support/libwebkit_user_agent.a out/Release/obj.target/remoting/libremoting_client_plugin.a out/Release/obj.target/remoting/libremoting_base.a out/Release/obj.target/third_party/libvpx/libvpx.a out/Release/obj.target/remoting/libremoting_jingle_glue.a out/Release/obj.target/jingle/libjingle_glue.a out/Release/obj.target/third_party/libjingle/libjingle.a out/Release/obj.target/third_party/jsoncpp/libjsoncpp.a out/Release/obj.target/third_party/libjingle/libjingle_p2p.a out/Release/obj.target/jingle/libnotifier.a out/Release/obj.target/remoting/proto/libchromotocol_proto_lib.a out/Release/obj.target/remoting/libremoting_client.a out/Release/obj.target/remoting/libremoting_protocol.a out/Release/obj.target/ppapi/libppapi_cpp_objects.a out/Release/obj.target/chrome/libbrowser_extensions.a out/Release/obj.target/sync/protocol/libsync_proto.a out/Release/obj.target/content/libcontent_browser.a out/Release/obj.target/net/libhttp_server.a out/Release/obj.target/ppapi/libppapi_proxy.a out/Release/obj.target/webkit/support/libdom_storage.a out/Release/obj.target/seccompsandbox/libseccomp_sandbox.a out/Release/obj.target/chrome/libin_memory_url_index_cache_proto.a out/Release/obj.target/third_party/undoview/libundoview.a out/Release/obj.target/chrome/libcert_logger_proto.a out/Release/obj.target/chrome/libsafe_browsing_proto.a out/Release/obj.target/chrome/libsafe_browsing_report_proto.a out/Release/obj.target/chrome/libsyncapi_service.a out/Release/obj.target/sync/libsync.a out/Release/obj.target/chrome/libfeedback_proto.a out/Release/obj.target/chrome/libgdata_proto.a out/Release/obj.target/sync/libsync_notifier.a out/Release/obj.target/third_party/cacheinvalidation/libcacheinvalidation.a out/Release/obj.target/third_party/cacheinvalidation/libcacheinvalidation_proto_cpp.a out/Release/obj.target/third_party/cld/libcld.a out/Release/obj.target/third_party/hunspell/libhunspell.a out/Release/obj.target/third_party/libphonenumber/libphonenumber.a out/Release/obj.target/native_client/src/trusted/service_runtime/libsel.a out/Release/obj.target/native_client/src/trusted/service_runtime/libenv_cleanser.a out/Release/obj.target/native_client/src/trusted/service_runtime/libnacl_error_code.a out/Release/obj.target/native_client/src/shared/gio/libgio.a out/Release/obj.target/native_client/src/shared/platform/libplatform.a out/Release/obj.target/native_client/src/shared/srpc/libnonnacl_srpc.a out/Release/obj.target/native_client/src/trusted/debug_stub/libdebug_stub.a out/Release/obj.target/native_client/src/trusted/gdb_rsp/libgdb_rsp.a out/Release/obj.target/native_client/src/trusted/desc/libnrd_xfer.a out/Release/obj.target/native_client/src/trusted/desc/libdesc_wrapper.a out/Release/obj.target/native_client/src/shared/imc/libimc.a out/Release/obj.target/native_client/src/trusted/nacl_base/libnacl_base.a out/Release/obj.target/native_client/src/trusted/fault_injection/libnacl_fault_inject.a out/Release/obj.target/native_client/src/trusted/gio/libgio_wrapped_desc.a out/Release/obj.target/native_client/src/trusted/interval_multiset/libnacl_interval.a out/Release/obj.target/native_client/src/trusted/perf_counter/libnacl_perf_counter.a out/Release/obj.target/native_client/src/trusted/manifest_name_service_proxy/libmanifest_proxy.a out/Release/obj.target/native_client/src/trusted/threading/libthread_interface.a out/Release/obj.target/native_client/src/trusted/simple_service/libsimple_service.a out/Release/obj.target/native_client/src/trusted/service_runtime/arch/x86/libservice_runtime_x86_common.a out/Release/obj.target/native_client/src/trusted/validator/x86/32/libncvalidate_x86_32.a out/Release/obj.target/native_client/src/trusted/validator/x86/ncval_seg_sfi/libncval_seg_sfi_x86_32.a out/Release/obj.target/native_client/src/trusted/validator/x86/ncval_seg_sfi/libncdis_seg_sfi_x86_32.a out/Release/obj.target/native_client/src/trusted/validator_x86/libnccopy_x86_32.a out/Release/obj.target/native_client/src/trusted/validator/x86/libncval_base_x86_32.a out/Release/obj.target/native_client/src/trusted/service_runtime/arch/x86_32/libservice_runtime_x86_32.a out/Release/obj.target/third_party/libusb/libusb.a out/Release/obj.target/content/libcontent_plugin.a out/Release/obj.target/content/libcontent_renderer.a out/Release/obj.target/webkit/support/libwebkit_gpu.a out/Release/obj.target/third_party/libjingle/libjingle_peerconnection.a out/Release/obj.target/third_party/libsrtp/libsrtp.a out/Release/obj.target/third_party/webrtc/modules/libvideo_capture_module.a out/Release/obj.target/third_party/webrtc/modules/libwebrtc_utility.a out/Release/obj.target/third_party/webrtc/modules/libaudio_coding_module.a out/Release/obj.target/third_party/webrtc/modules/libCNG.a out/Release/obj.target/third_party/webrtc/common_audio/libsignal_processing.a out/Release/obj.target/third_party/webrtc/modules/libG711.a out/Release/obj.target/third_party/webrtc/modules/libG722.a out/Release/obj.target/third_party/webrtc/modules/libiLBC.a out/Release/obj.target/third_party/webrtc/modules/libiSAC.a out/Release/obj.target/third_party/webrtc/modules/libiSACFix.a out/Release/obj.target/third_party/webrtc/modules/libPCM16B.a out/Release/obj.target/third_party/webrtc/modules/libNetEq.a out/Release/obj.target/third_party/webrtc/common_audio/libresampler.a out/Release/obj.target/third_party/webrtc/common_audio/libvad.a out/Release/obj.target/third_party/webrtc/system_wrappers/source/libsystem_wrappers.a out/Release/obj.target/third_party/webrtc/modules/libwebrtc_video_coding.a out/Release/obj.target/third_party/webrtc/modules/libwebrtc_i420.a out/Release/obj.target/third_party/webrtc/modules/libwebrtc_vp8.a out/Release/obj.target/third_party/webrtc/common_video/libwebrtc_libyuv.a out/Release/obj.target/third_party/libyuv/libyuv.a out/Release/obj.target/third_party/webrtc/modules/libvideo_render_module.a out/Release/obj.target/third_party/webrtc/video_engine/libvideo_engine_core.a out/Release/obj.target/third_party/webrtc/common_video/libwebrtc_jpeg.a out/Release/obj.target/third_party/webrtc/modules/libmedia_file.a out/Release/obj.target/third_party/webrtc/modules/librtp_rtcp.a out/Release/obj.target/third_party/webrtc/modules/libudp_transport.a out/Release/obj.target/third_party/webrtc/modules/libvideo_processing.a out/Release/obj.target/third_party/webrtc/modules/libvideo_processing_sse2.a out/Release/obj.target/third_party/webrtc/voice_engine/libvoice_engine_core.a out/Release/obj.target/third_party/webrtc/modules/libaudio_conference_mixer.a out/Release/obj.target/third_party/webrtc/modules/libaudio_processing.a out/Release/obj.target/third_party/webrtc/modules/libaec.a out/Release/obj.target/third_party/webrtc/modules/libapm_util.a out/Release/obj.target/third_party/webrtc/modules/libaec_sse2.a out/Release/obj.target/third_party/webrtc/modules/libaecm.a out/Release/obj.target/third_party/webrtc/modules/libagc.a out/Release/obj.target/third_party/webrtc/modules/libns.a out/Release/obj.target/third_party/webrtc/modules/libaudio_device.a out/Release/obj.target/third_party/smhasher/libmurmurhash3.a out/Release/obj.target/chrome/libnacl.a out/Release/obj.target/native_client/src/trusted/platform_qualify/libplatform_qual_lib.a out/Release/obj.target/content/libcontent_utility.a -Wl,--end-group -lX11 -lXcursor -lX11 -lXrender -lXss -lXext -lrt -ldl -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lXi -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -levent -lsmime3 -lnssutil3 -lnss3 -lplds4 -lplc4 -lnspr4 -lz -licui18n -licuuc -licudata -lv8 -lgconf-2 -lresolv -ldbus-1 -lpthread -lXcomposite -lpng15 -ljpeg -lXfixes -lasound -lwebp -lxml2 -lxslt -lm -lcups -lssl -lcrypto -lcrypt -lgcrypt -lgpg-error -lbz2 -lexpat -lFLAC -lspeex -ludev -lgnome-keyring /usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../i686-pc-linux-gnu/bin/ld: failed to set dynamic section sizes: Memory exhausted collect2: ld returned 1 exit status make: *** [out/Release/chrome] Error 1 * ERROR: www-client/chromium-20.0.1132.43 failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=www-client/chromium-20.0.1132.43'`, * the complete build log and the output of `emerge -pqv '=www-client/chromium-20.0.1132.43'`. * The complete build log is located at '/var/tmp/portage/www-client/chromium-20.0.1132.43/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/www-client/chromium-20.0.1132.43/temp/environment'. * Working directory: '/var/tmp/portage/www-client/chromium-20.0.1132.43/work/chromium-20.0.1132.43' * S: '/var/tmp/portage/www-client/chromium-20.0.1132.43/work/chromium-20.0.1132.43' >>> Failed to emerge www-client/chromium-20.0.1132.43, Log file: >>> '/var/tmp/portage/www-client/chromium-20.0.1132.43/temp/build.log' So, get more RAM? Maybe try getting a back trace without debug symbols. It won't be as useful, but it should cut down on the memory usage for linking. Just perform the same procedure, but leave -g and -ggdb out of your CFLAGS. OK, so I have removed -ggdb from my CFLAGS, leaving -O1 as the only change. I have added 'nostrip' to FEATURES (although now I have removed -ggdb I am not convinced this is required). I have successfully recompiled. Which executable should I run from gdb? Trying /usr/bin/chromium and /usr/bin/chromium-browser gave "/usr/bin/chromium": not in executable format: File format not recognized and "/usr/bin/chromium-browser": not in executable format: File format not recognized (In reply to comment #6) > Which executable should I run from gdb? /usr/lib/chromium-browser/chrome [5011:~]$ gdb /usr/lib/chromium-browser/chrome GNU gdb (Gentoo 7.3.1 p2) 7.3.1 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /usr/lib/chromium-browser/chrome...(no debugging symbols found)...done. (gdb) run Starting program: /usr/lib/chromium-browser/chrome Program received signal SIGSEGV, Segmentation fault. 0xb7fec2ba in ?? () from /lib/ld-linux.so.2 (gdb) Repeat that, but run "bt full" after the segfault happens. [5014:~]$ gdb /usr/lib/chromium-browser/chrome GNU gdb (Gentoo 7.3.1 p2) 7.3.1 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /usr/lib/chromium-browser/chrome...(no debugging symbols found)...done. (gdb) run Starting program: /usr/lib/chromium-browser/chrome Program received signal SIGSEGV, Segmentation fault. 0xb7fec2ba in ?? () from /lib/ld-linux.so.2 (gdb) bt full #0 0xb7fec2ba in ?? () from /lib/ld-linux.so.2 No symbol table info available. #1 0xb7fe3f13 in ?? () from /lib/ld-linux.so.2 No symbol table info available. #2 0xb7ff53b8 in ?? () from /lib/ld-linux.so.2 No symbol table info available. #3 0xb7fe5988 in ?? () from /lib/ld-linux.so.2 No symbol table info available. #4 0xb7fe18f7 in ?? () from /lib/ld-linux.so.2 No symbol table info available. Backtrace stopped: Not enough registers or memory available to unwind further (gdb) Well, that doesn't tell me a whole lot. It does lead me to guess that chromium is crashing when some shared library is being loaded. Perhaps one of them is corrupt. If you have the time and patience, you could get a list of shared libraries using ldd /usr/lib/chromium-browser/chrome, and map those to packages using the qfile command. Then you could rebuild each library until chromium stops segfaulting (hopefully). Another idea would be to run strace /usr/lib/chromium-browser/chrome to see if we can determine which library is being loaded when the segfault happens. Created attachment 317746 [details]
Output from strace
I'm out of ideas for now. Chromium now working again after a recent emerge -auvD world followed by revdep-rebuild. No idea what the root cause was. |