Hello List,
This patch from 2005/03/07 causes a Clipboard regression:
http://www.winehq.org/hypermail/wine-cvs/2005/03/0111.html
Whenever the clipboard is used the process crashes with an X error. To reproduce it just start notepad and right click into the text area:
This also seems to be the cause of X11 errors I am seeing with IrfanView and Textpad. Both apps fail at startup with an X Error, IrfanView is the simpler case:
:~$ WINEDEBUG=clipboard wine C/Program\ Files/IrfanView/i_view32.exe trace:clipboard:X11DRV_CLIPBOARD_InsertClipboardFormat Registering format(49173): L"Rich Text Format" drvData 399 trace:clipboard:X11DRV_CLIPBOARD_InsertClipboardFormat Registering format(49174): L"GIF" drvData 396 trace:clipboard:X11DRV_IsClipboardFormatAvailable (0008) trace:clipboard:X11DRV_EmptyClipboard 0 entries remaining in cache. X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 208 Current serial number in output stream: 209
The offending function seems to be the calls to X11DRV_CLIPBOARD_QueryTargets() in X11DRV_CLIPBOARD_QueryAvailableData().
X11DRV_IsClipboardFormatAvailable() calls X11DRV_CLIPBOARD_UpdateCache() which calls X11DRV_CLIPBOARD_QueryAvailableData() which calls X11DRV_CLIPBOARD_QueryTargets() which throws the X Error.
These apps both work if started in a desktop window.
Ron Jensen
It seems to work fine for me. If you guys could generate trace logs for me with +relay,+clipboard,+event,+tid,+seh I'll take a look.
Thanks,
/Ulrich
On Tue, Mar 15, 2005 at 08:36:50PM -0700, Ron Jensen wrote:
Hello List,
This patch from 2005/03/07 causes a Clipboard regression:
http://www.winehq.org/hypermail/wine-cvs/2005/03/0111.html
Whenever the clipboard is used the process crashes with an X error. To reproduce it just start notepad and right click into the text area:
This also seems to be the cause of X11 errors I am seeing with IrfanView and Textpad. Both apps fail at startup with an X Error, IrfanView is the simpler case:
:~$ WINEDEBUG=clipboard wine C/Program\ Files/IrfanView/i_view32.exe trace:clipboard:X11DRV_CLIPBOARD_InsertClipboardFormat Registering format(49173): L"Rich Text Format" drvData 399 trace:clipboard:X11DRV_CLIPBOARD_InsertClipboardFormat Registering format(49174): L"GIF" drvData 396 trace:clipboard:X11DRV_IsClipboardFormatAvailable (0008) trace:clipboard:X11DRV_EmptyClipboard 0 entries remaining in cache. X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 208 Current serial number in output stream: 209
The offending function seems to be the calls to X11DRV_CLIPBOARD_QueryTargets() in X11DRV_CLIPBOARD_QueryAvailableData().
X11DRV_IsClipboardFormatAvailable() calls X11DRV_CLIPBOARD_UpdateCache() which calls X11DRV_CLIPBOARD_QueryAvailableData() which calls X11DRV_CLIPBOARD_QueryTargets() which throws the X Error.
These apps both work if started in a desktop window.
Ron Jensen
Am Mittwoch, 16. März 2005 15:40 schrieben Sie:
It seems to work fine for me. If you guys could generate trace logs for me with +relay,+clipboard,+event,+tid,+seh I'll take a look.
Nothing really interesting there. I attached the last few lines at the end of this mail. I can send you the whole log if neccessary.
I localized the failing call with the backtrace. It's in dlls/x11drv/clipboard.c, function thread_selection_wnd(). It's in line 331: w = XCreateWindow(thread_display(), root_window, 0, 0, 1, 1, 0, screen_depth, InputOutput, visual, 0, NULL);
The X error is: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 271 Current serial number in output stream: 272
Stefan
Here the part of the log:
0009:Call ntdll.RtlFreeHeap(401f0000,00000000,4023e298) ret=40a82329 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82329 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,00000014) ret=40a81fad 0009:Ret ntdll.RtlAllocateHeap() retval=4023d858 ret=40a81fad 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,00000000) ret=40a82093 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82093 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,0000012c) ret=40a82248 0009:Ret ntdll.RtlAllocateHeap() retval=4023e218 ret=40a82248 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,4023e0f0) ret=40a82329 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82329 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,00000014) ret=40a81fad 0009:Ret ntdll.RtlAllocateHeap() retval=4023e350 ret=40a81fad 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,00000000) ret=40a82093 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82093 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,00000168) ret=40a82248 0009:Ret ntdll.RtlAllocateHeap() retval=40240100 ret=40a82248 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,4023e218) ret=40a82329 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82329 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,00000012) ret=40a81fad 0009:Ret ntdll.RtlAllocateHeap() retval=4023be38 ret=40a81fad 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,00000000) ret=40a82093 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82093 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,000001a4) ret=40a82248 0009:Ret ntdll.RtlAllocateHeap() retval=40240270 ret=40a82248 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,40240100) ret=40a82329 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82329 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,00000000) ret=40a82093 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82093 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,000001e0) ret=40a82248 0009:Ret ntdll.RtlAllocateHeap() retval=40240420 ret=40a82248 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,40240270) ret=40a82329 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82329 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,00000022) ret=40a81fad 0009:Ret ntdll.RtlAllocateHeap() retval=4023e4c8 ret=40a81fad 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,00000000) ret=40a82093 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82093 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,0000003c) ret=40a82248 0009:Ret ntdll.RtlAllocateHeap() retval=4023e218 ret=40a82248 0009:Call ntdll.RtlAllocateHeap(401f0000,00000000,00000002) ret=40a81fad 0009:Ret ntdll.RtlAllocateHeap() retval=4023e618 ret=40a81fad 0009:Call ntdll.RtlFreeHeap(401f0000,00000000,00000000) ret=40a82093 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=40a82093 0009:Call x11drv.IsClipboardFormatAvailable(0000000d) ret=40a21bac 0009:trace:clipboard:X11DRV_IsClipboardFormatAvailable (000D) 0009:trace:clipboard:X11DRV_EmptyClipboard 0 entries remaining in cache. 0009:Call ntdll.RtlEnterCriticalSection(40e6d320) ret=40e47092 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=40e47092 0009:err:x11drv:error_handler X protocol error: serial=215, request_code=1 - breaking into debugger
Stefan,
You are smarter than me! I completely missed this function. I believe the error is because *visual is "0". I replaced visual with "CopyFromParent" and it seems to work now.
On Wed, 2005-03-16 at 20:11 +0100, Stefan Dösinger wrote:
Am Mittwoch, 16. März 2005 15:40 schrieben Sie:
It seems to work fine for me. If you guys could generate trace logs for me with +relay,+clipboard,+event,+tid,+seh I'll take a look.
Nothing really interesting there. I attached the last few lines at the end of this mail. I can send you the whole log if neccessary.
I localized the failing call with the backtrace. It's in dlls/x11drv/clipboard.c, function thread_selection_wnd(). It's in line 331: w = XCreateWindow(thread_display(), root_window, 0, 0, 1, 1, 0, screen_depth, InputOutput, visual, 0, NULL);
The X error is: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 271 Current serial number in output stream: 272
Stefan
The last patch I sent didn't have a full enough path to dlls/x11drv/clipboard.c
On Wed, 2005-03-16 at 14:15 -0700, Ron Jensen wrote:
Stefan,
You are smarter than me! I completely missed this function. I believe the error is because *visual is "0". I replaced visual with "CopyFromParent" and it seems to work now.
On Wed, 2005-03-16 at 20:11 +0100, Stefan Dösinger wrote:
Am Mittwoch, 16. März 2005 15:40 schrieben Sie:
It seems to work fine for me. If you guys could generate trace logs for me with +relay,+clipboard,+event,+tid,+seh I'll take a look.
Nothing really interesting there. I attached the last few lines at the end of this mail. I can send you the whole log if neccessary.
I localized the failing call with the backtrace. It's in dlls/x11drv/clipboard.c, function thread_selection_wnd(). It's in line 331: w = XCreateWindow(thread_display(), root_window, 0, 0, 1, 1, 0, screen_depth, InputOutput, visual, 0, NULL);
The X error is: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 271 Current serial number in output stream: 272
Stefan
The last patch I sent didn't have a full enough path to dlls/x11drv/clipboard.c
On Wed, 2005-03-16 at 14:15 -0700, Ron Jensen wrote:
Stefan,
You are smarter than me! I completely missed this function. I
believe
the error is because *visual is "0". I replaced visual with "CopyFromParent" and it seems to work now.
The patch works nice for me!
Thanks, Stefan