On Fri, Feb 03, 2012 at 04:01:21PM +0100, mathieu.taillefum...@free.fr wrote: > I think I found where the error is. the original code (before the patch) > contains a very last "if" before the third possible call to > DeliverDeviceEvents which is if(focus) then call the function. After > debugging it again with gdb i found that (with the patch included) the > variable focus is null (it is due to this line focus = > thisDev->focus->win;) and win is not initialized at all and has random > values. That is why I have a segmentation fault. To check that win was not > initialized when i triggered the bug i just put its value to null at this > line WindowPtr win = null. then I trigger the bug and check the value of > win which is null as espected from the previous debugging session. > > So the bug has to components : > - the win variable which in some cases is not initialized (it arrives when > we run focus = thisDev->focus->win; and thisDev->focus->win == null) > - focus is null (thisDev->focus->win is zero in my case). > > It did not happen before because the function DeliverDeviceEvents could > only be called when focus has a non zero value. To fix this bug, two lines > should be modified > > - WindowPtr win -> WindowPtr win = null (by the way the compiler did not > seem to complain) > - DeliverDeviceEvents(....) -> if(win) DeliverDeviceEvents > > I also check the function DeliverDeviceEvents and it seems that the > "if(win)" is not necessary since it is a loop over the win parameter.
thanks, you're right, this is a bug. I've just sent out the patch reverting the commit - since it was supposed to only clean up code but not include any functional changes, this is the simpler way than trying to fix a patch that's just cosmetic anyway. thanks for the debugging, much appreciated! Cheers, Peter > > regards > > Mathieu > > > ----- Mail original ----- > De: "Peter Hutterer" <peter.hutte...@who-t.net> > À: "Mathieu Taillefumier" <mathieu.taillefum...@free.fr> > Cc: "Jeremy Huddleston" <jerem...@apple.com>, xorg@lists.x.org, "Keith > Packard" <kei...@keithp.com> > Envoyé: Jeudi 2 Février 2012 18:43:27 > Objet: Re: [BUG] xinput bug in Xorg 1.12-rc2 > > On Thu, Feb 02, 2012 at 05:00:58PM +0100, Mathieu Taillefumier wrote: > > On 01/31/2012 07:20 PM, Jeremy Huddleston wrote: > > >That's pretty much an entire merge you are blaming now. Are you sure you > > >can't narrow it down further than that? If you're having a build failure, > > >just apply the fix at each step rather than doing a 'git skip' ... > > > > Sorry for the delay. The bisection was nightmarish because I had to > > fix some include files to complete the compilation. Anyway this is > > done now. The first bad commit where the bug appears is this one > > > > 6eff14a789341d366b3013c5aa020e959c954651 > > dix: deduplicate callers of DeliverDeviceEvents in DeliverGrabbedEvents > > > > but since I do not know the code I can not give more informations > > except the gdb session that you already have. > > I'm staring hard at this code but I can't spot an actual functional change > here that could trigger a bug - just as the commit msg said this was just > shuffling code around. > are you sure it's that one? have you tried reverting it to see if the bug > disappears? > > Cheers, > Peter > > > > > Mathieu > > > > Ps : I will modify the bug report with the new information. > > > > > > > > > > > > >On Jan 31, 2012, at 6:05 AM, Mathieu Taillefumier wrote: > > > > > >>Hello, > > >> > > >>thank you for the answer. > > >> > > >>On 01/31/2012 12:28 AM, Jeremy Huddleston wrote: > > >>>I really don't see how 2abe83df686ed64c4f4df711ac3c1fd12131c2e4 could be > > >>>the culprit. It's trivial. > > >>I made a mistake somewhere so to double check I did the bisection again > > >>starting from 1.11.99.1 (working) to 1.11.99.2 (not working). > > >> > > >>The result is that I was unable to bisect the last three steps because of > > >>compilation errors (that are fixed later on). You can find the last > > >>patchs that caused the compilation issue enclosed to the email > > >>(bisect.result). The result from the bisection are in the git.log file. > > >> > > >>>Can you please create a bug report at http://bugs.freedesktop.org to > > >>>track this? > > >>I will do that. > > >> > > >>Mathieu > > >>> > > >>>On Jan 30, 2012, at 4:59 AM, mathieu.taillefum...@free.fr wrote: > > >>> > > >>>>Hello, > > >>>> > > >>>>i encounter a bug in the last rc of the xserver (present before but I > > >>>>was using it so far) when I use it in combination with kdm (and only > > >>>>kdm, I did not try xdm). The server simply crash when kdm is running and > > >>>>I touch any of the keyboard keys but works perfectly fine when I run it > > >>>>from a console. The all stack is from the git repository but the problem > > >>>>originates from the server itself since I can not reproduce it with xorg > > >>>>1.11.4 for instance (with the same stack almost). > > >>>> > > >>>>I am able to reproduce it all the time and I have been spending some > > >>>>time to bisect the problem (changing the server, the rest been fixed). > > >>>>The result of the bisection gave me this: > > >>>> > > >>>>git bisect start > > >>>># bad: [052ca3f22eadd0aa60dd24ac7d5d76137273926f] Bump version to > > >>>>1.11.99.902 (1.12 RC2) > > >>>>git bisect bad 052ca3f22eadd0aa60dd24ac7d5d76137273926f > > >>>># good: [e597f0119cd69b6d9edf86d06d941468f90d8e6d] configure.ac: 1.11.4 > > >>>>git bisect good e597f0119cd69b6d9edf86d06d941468f90d8e6d > > >>>># good: [4ad271d06c5aa42721c0e2e01e17e34a39825c65] xfree86: Bump > > >>>>extension ABI version to 6.0 > > >>>>git bisect good 4ad271d06c5aa42721c0e2e01e17e34a39825c65 > > >>>># good: [34b0e4eee911f8b09a3682a7f1b4c8598ef48b8d] dri2: Register the > > >>>>DRI2DrawableType after server regeneration > > >>>>git bisect good 34b0e4eee911f8b09a3682a7f1b4c8598ef48b8d > > >>>># bad: [2df539c0bc3300ea858f8bc7d52e95e67ff379b8] glx: Only declare > > >>>>GlxExtensionInit in one header file > > >>>>git bisect bad 2df539c0bc3300ea858f8bc7d52e95e67ff379b8 > > >>>># bad: [2abe83df686ed64c4f4df711ac3c1fd12131c2e4] include: add > > >>>>BUG_WARN_MSG for custom error message on bug condition > > >>>>git bisect bad 2abe83df686ed64c4f4df711ac3c1fd12131c2e4 > > >>>># good: [d26fae246d7c451b4d5ffe24fdb959d4bd00b107] glx: don't leak > > >>>>fbconfigs > > >>>>git bisect good d26fae246d7c451b4d5ffe24fdb959d4bd00b107 > > >>>># good: [6acebf9e1298939593b942ec91ae9ec9e74faa19] include: add > > >>>>list_append() > > >>>>git bisect good 6acebf9e1298939593b942ec91ae9ec9e74faa19 > > >>>># good: [4bc2761ad5ec2d0668aec639780ffb136605fbc8] dix: switch the > > >>>>dev->deviceGrab.activeGrab from GrabRec to GrabPtr > > >>>>git bisect good 4bc2761ad5ec2d0668aec639780ffb136605fbc8 > > >>>># good: [d2ebbcdaf6b13d70eee704b1764ff349e1be22a0] Xi: when removing a > > >>>>device, reset ClientPointers where needed > > >>>>git bisect good d2ebbcdaf6b13d70eee704b1764ff349e1be22a0 > > >>>># good: [631516a4aa9858874ee197444cd93d91b97a1089] Xi: check button > > >>>>mapping value _before_ assigning it > > >>>>git bisect good 631516a4aa9858874ee197444cd93d91b97a1089 > > >>>># good: [4fc797f3756611a97767f407e1af0b6a7cf2f1d9] xfree86: include > > >>>>xorg-config.h from xaalocal.h > > >>>>git bisect good 4fc797f3756611a97767f407e1af0b6a7cf2f1d9 > > >>>> > > >>>>so the first bad commit is 2abe83df686ed64c4f4df711ac3c1fd12131c2e4. > > >>>> > > >>>>I also have some information after using gdb from a remote computer. I > > >>>>attach the log file of the debugging session. Since i can reproduce it > > >>>>do not hesitate to ask me for more information. > > >>>> > > >>>>regards > > >>>> > > >>>>Mathieu > > >>>> > > >>>><X.log>_______________________________________________ > > >>>>xorg@lists.x.org: X.Org support > > >>>>Archives: http://lists.freedesktop.org/archives/xorg > > >>>>Info: http://lists.x.org/mailman/listinfo/xorg > > >>>>Your subscription address: jerem...@freedesktop.org > > >>> > > >> > > >><bisect.result><git.log> > > > > > > _______________________________________________ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.x.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com