Re: Regression in ptrace (Wine) starting with 2.6.33-rc1

From: Michael Stefaniuc
Date: Thu Feb 11 2010 - 14:50:29 EST


On 02/11/2010 07:22 PM, Frederic Weisbecker wrote:
On Thu, Feb 11, 2010 at 05:33:13PM +0100, Michael Stefaniuc wrote:
2.6.33-rc1 broke ptrace for Wine, specifically the setting of the debug
registers. This is visible in the Wine ntdll exception tests failing on
2.6.33-rcX while they work just fine in 2.6.32.

A regression test resulted in:
72f674d203cd230426437cdcf7dd6f681dad8b0d is the first bad commit
commit 72f674d203cd230426437cdcf7dd6f681dad8b0d
Author: K.Prasad<prasad@xxxxxxxxxxxxxxxxxx>
Date: Mon Jun 1 23:45:48 2009 +0530

hw-breakpoints: modify Ptrace routines to access breakpoint registers

This patch modifies the ptrace code to use the new wrapper routines
around
the
debug/breakpoint registers.

[ Impact: adapt x86 ptrace to the new breakpoint Api ]

Original-patch-by: Alan Stern<stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: K.Prasad<prasad@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Maneesh Soni<maneesh@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Alan Stern<stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Frederic Weisbecker<fweisbec@xxxxxxxxx>

:040000 040000 f72ff4760c3fa1dffcd72494e77bee2c76039505
b60d5fe2088ff635568e800d5759a0b373b5e439 M arch



I have opened also http://bugzilla.kernel.org/show_bug.cgi?id=15273 for
this.

Thanks a lot for your report. Is there an easy way to reproduce
this?
Yes, the bug is 100% reproducible. Even the "stack overflow" bytes are
always constant on my two boxes: 932 bytes on my Atom and 1588 bytes on
my Q9450 with a x86_64 kernel.

Either grab wine-1.1.38 from
http://sourceforge.net/projects/wine/files/Source/ or from git
git clone git://source.winehq.org/git/wine.git
configure
make
cd dlls/ntdll/tests/
make exception.ok

If you build on an x86_64 machine you'll need a pretty complete 32bit
setup too, but configure will let you know. If configure doesn't errors
out but produces warnings, those can be safely ignored. It means the
dependencies are optional and those aren't needed to reproduce this bug.

Oh, there might be an other regression in ptrace too; introduced by a
previous patch in this series. While bisecting i had a later test fail,
something along the lines of "expected 4 exceptions got 0", but the
tests completed. Now the stack corruption mask everything else in the
tests; e.g. comment out the first test and one of the next tests will go
into an infinite loop printing 3 Wine errors over and over again.

thanks
bye
michael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/