Bug 384630

Summary: The 'impossible' happened (__ubsan_handle_shift_out_of_bounds) as soon as starting anything under valgrind
Product: [Developer tools] valgrind Reporter: Peifeng Yu <pfyu817>
Component: memcheckAssignee: Julian Seward <jseward>
Status: REPORTED ---    
Severity: normal CC: pfyu817
Priority: NOR    
Version First Reported In: 3.13.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Peifeng Yu 2017-09-12 17:58:34 UTC
Compiled source, tried both 3.12.0 and 3.13.0.

OS: RHEL 7.3
Arch: ppc64le
Kernel: 3.10.0
Built with gcc 7.1.0

$ valgrind ls -l

==32450== Memcheck, a memory error detector
==32450== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==32450== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==32450== Command: ls -l
==32450== 
--32450:0:main:ubs In __ubsan_handle_shift_out_of_bounds
valgrind: m_compiler.c:281 (__ubsan_handle_shift_out_of_bounds): the 'impossible' happened.

host stacktrace:
==32450==    at 0x580AD2C8: show_sched_status_wrk (m_libcassert.c:355)
==32450==    by 0x580AD50F: report_and_quit (m_libcassert.c:426)
==32450==    by 0x580AD68B: vgPlain_assert_fail (m_libcassert.c:492)
==32450==    by 0x58098AE7: __ubsan_handle_shift_out_of_bounds (m_compiler.c:281)
==32450==    by 0x58286413: extend_s_16to32 (guest_ppc_toIR.c:559)
==32450==    by 0x58286413: dis_int_store.isra.46 (guest_ppc_toIR.c:7430)
==32450==    by 0x582A230B: disInstr_PPC_WRK.isra.54 (guest_ppc_toIR.c:28350)
==32450==    by 0x582AA4A7: disInstr_PPC (guest_ppc_toIR.c:29533)
==32450==    by 0x5826952B: bb_to_IR (guest_generic_bb_to_IR.c:365)
==32450==    by 0x58233C83: LibVEX_FrontEnd (main_main.c:558)
==32450==    by 0x582346B3: LibVEX_Translate (main_main.c:1173)
==32450==    by 0x580E9023: vgPlain_translate (m_translate.c:1794)
==32450==    by 0x5815F63B: handle_tt_miss (scheduler.c:1056)
==32450==    by 0x5815F63B: vgPlain_scheduler (scheduler.c:1417)
==32450==    by 0x5817E04B: thread_wrapper (syswrap-linux.c:103)
==32450==    by 0x5817E04B: run_a_thread_NORETURN (syswrap-linux.c:156)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable (lwpid 32450)
==32450==    at 0x4001880: _start (in /usr/lib64/ld-2.17.so)


Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.

If that doesn't help, please report this bug to: www.valgrind.org

In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.
Comment 1 Julian Seward 2017-09-12 19:09:27 UTC
This is a build done with --enable-ubsan.  Correct?
Comment 2 Peifeng Yu 2017-09-12 20:02:31 UTC
I'm using the receipt from spack (https://github.com/LLNL/spack/blob/develop/var/spack/repos/builtin/packages/valgrind/package.py). And yes it was built with  --enable-ubsan