Bug 176641

Summary: The 'impossible' happened
Product: [Developer tools] valgrind Reporter: M Welinder <mwelinder>
Component: memcheckAssignee: Julian Seward <jseward>
Status: RESOLVED DUPLICATE    
Severity: major    
Priority: NOR    
Version: 3.2.3   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: Full valgrind log

Description M Welinder 2008-12-01 17:52:35 UTC
Created attachment 28986 [details]
Full valgrind log

1. In Emacs, please 10000 copies of "xxxxxxxxxx " on one long line.
2. valgrind bash
3. Paste the line from Emacs into bash

==>

valgrind: m_scheduler/scheduler.c:996 (vgPlain_scheduler): the 'impossible' happened.
valgrind: VG_(scheduler), phase 3: run_innerloop detected host state invariant failure
==20519==    at 0x380193CA: report_and_quit (m_libcassert.c:136)
==20519==    by 0x3801963D: vgPlain_assert_fail (m_libcassert.c:200)
==20519==    by 0x3803A262: vgPlain_scheduler (scheduler.c:994)
==20519==    by 0x3804D17F: thread_wrapper (syswrap-linux.c:87)
==20519==    by 0x3804D276: run_a_thread_NORETURN (syswrap-linux.c:120)

This has been observed with valgrind 3.2.3 and 3.3.0

The machine is x86_64.  Bash is 3.1.16(1)-release.  Distribution is
SuSE 10.1.  Valgrind is self-compiled; configure line had only a --prefix
option.
Comment 1 Julian Seward 2008-12-23 17:18:57 UTC
This is a duplicate of another bug that we've closed, but unfortunately
I can't find the original now.  It turns out to be a bug in certain
Linux kernel versions on x86_64, which did not completely accurately
preserve process' floating point state across context switches.  
Valgrind periodically checks that the FPU state (precision?) is what
it set it to, and asserts when it sees an "unexpected" change
(on the basis that it is buggy code generation on Valgrind's part,
whereas in reality the kernel messed up).
Comment 2 M Welinder 2008-12-23 19:30:19 UTC
Probably bug 143888.


*** This bug has been marked as a duplicate of bug 143888 ***