Closed Bug 61936 Opened 24 years ago Closed 23 years ago

Dropping items from other screen causes Mozilla to "crash"...

Categories

(Core :: XUL, defect, P3)

All
Linux
defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: roland.mainz, Assigned: blizzard)

Details

(Keywords: crash)

On an Unix system (Solaris+Linux) with multihead (two screens) Mozilla M18
"exists" (crash-like) if I drag&drop something from another application (for
example from Netscape 4.x or a selected text within a Motif app. dragged with
the middle mouse).
Last message of Mozilla looks like this:
-- snip --
Enabling Quirk StyleSheet
Enabling Quirk StyleSheet
Document http://puck/medmikrobio/service/ loaded successfully

Gdk-WARNING **: Invalid target index in TOP_LEVEL_ENTER MESSAGE

Gdk-WARNING **: Invalid target index in TOP_LEVEL_ENTER MESSAGE
X Error of failed request:  BadAtom (invalid Atom parameter)
  Major opcode of failed request:  23 (X_GetSelectionOwner)
  Atom id in failed request:  0x0
  Serial number of failed request:  151947
  Current serial number in output stream:  151947
-- snip --

Looks like the usual "GTK+ cannot handle multiple screens"-issue... ;-(

xdpyinfo output:
-- snip --
% xdpyinfo
name of display:    :0.1
version number:    11.0
vendor string:    Sun Microsystems, Inc.
vendor release number:    3610
maximum request size:  262140 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, MSBFirst, 32
image byte order:    MSBFirst
number of supported pixmap formats:    4
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 132
focus:  window 0x680000b, revert to Parent
number of extensions:    28
    AccessX
    Adobe-DPS-Extension
    DOUBLE-BUFFER
    DPMS
    DPSExtension
    Extended-Visual-Information
    GLX
    LBX
    MIT-SCREEN-SAVER
    MIT-SHM
    MIT-SUNDRY-NONSTANDARD
    Multi-Buffering
    RECORD
    SECURITY
    SHAPE
    SUN_ALLPLANES
    SUN_DGA
    SUN_OVL
    SUN_SME
    SYNC
    SolarisIA
    TOG-CUP
    XC-APPGROUP
    XC-MISC
    XIE
    XInputDeviceEvents
    XInputExtension
    XTEST
default screen number:    1
number of screens:    2

screen #0:
  dimensions:    1152x900 pixels (344x269 millimeters)
  resolution:    85x85 dots per inch
  depths (2):    1, 24
  root window id:    0x2c
  depth of root window:    24 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x21
  default number of colormap cells:    256
  preallocated pixels:    black 0, white 16777215
  options:    backing-store YES, save-unders YES
  largest cursor:    unlimited
  current input event mask:    0x78203f
    KeyPressMask             KeyReleaseMask           ButtonPressMask          
    ButtonReleaseMask        EnterWindowMask          LeaveWindowMask          
    ButtonMotionMask         SubstructureNotifyMask   SubstructureRedirectMask 
    FocusChangeMask          PropertyChangeMask       
  number of visuals:    1
  default visual id:  0x22
  visual:
    visual id:    0x22
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits

screen #1:
  dimensions:    1152x900 pixels (344x269 millimeters)
  resolution:    85x85 dots per inch
  depths (2):    1, 8
  root window id:    0x2e
  depth of root window:    8 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x23
  default number of colormap cells:    256
  preallocated pixels:    black 1, white 0
  options:    backing-store YES, save-unders YES
  largest cursor:    unlimited
  current input event mask:    0x78203f
    KeyPressMask             KeyReleaseMask           ButtonPressMask          
    ButtonReleaseMask        EnterWindowMask          LeaveWindowMask          
    ButtonMotionMask         SubstructureNotifyMask   SubstructureRedirectMask 
    FocusChangeMask          PropertyChangeMask       
  number of visuals:    6
  default visual id:  0x24
  visual:
    visual id:    0x24
    class:    PseudoColor
    depth:    8 planes
    available colormap entries:    256
    red, green, blue masks:    0x0, 0x0, 0x0
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x25
    class:    DirectColor
    depth:    8 planes
    available colormap entries:    8 per subfield
    red, green, blue masks:    0x7, 0x38, 0xc0
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x26
    class:    GrayScale
    depth:    8 planes
    available colormap entries:    256
    red, green, blue masks:    0x0, 0x0, 0x0
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x27
    class:    StaticColor
    depth:    8 planes
    available colormap entries:    256
    red, green, blue masks:    0x7, 0x38, 0xc0
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x28
    class:    TrueColor
    depth:    8 planes
    available colormap entries:    8 per subfield
    red, green, blue masks:    0x7, 0x38, 0xc0
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x29
    class:    StaticGray
    depth:    8 planes
    available colormap entries:    256
    red, green, blue masks:    0x0, 0x0, 0x0
    significant bits in color specification:    8 bits
-- snip --
Keywords: crash
over to toolkit.
Assignee: asa → trudelle
Component: Browser-General → XP Toolkit/Widgets
QA Contact: doronr → jrgm
->pinkerton, cc blizzard
Assignee: trudelle → pinkerton
Summary: Droping items from other screen causes Mozilla to "crash"... → Dropping items from other screen causes Mozilla to "crash"...
does it only crash when the other app is on a second screen, or does it crash
regardless, even if both are on the same screen? what about dragging from, say,
bookmarks to navigator (within the same app)?
AFAIK the same GTK+ application cannot span over two logical _screens_ (except
with Xinerama, but that would one _one_ logical screen).
It "crashes" (exit with X error) when I drag&drop items from one screen to
another.

Testing:
- In theory you may test this with Xnest (if someone fixes GTK+ core to avoid
killing Xnest by sending rubbish in the X layer) using the -scrns option
(binaries for Solaris SPARC on demand)...
- Has anyone here an UltraSPARC 5 or UltraSPARC10 ? Both can get up-to four
heads with cheap m64 cards (~$20)), details on demand...

Update:
Now I am totally confused...
a) this bug seems to happen on the 2nd screen (DISPLAY=:0.1) but not on the 1st
screen (DISPLAY=:0.0)
b) dragging something from :0.0 to :0.1 causes the described exit due X error;
dragging from :0.1 to :0.0 does not
c) sometimes the Zilla dies like this after :0.1-->:0.0 drag&drop:
-- snip --
Gdk-WARNING **: shmat failed!
nsWidget::~nsWidget() of toplevel: 11 widgets still exist.
WEBSHELL- = 4
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x3802b9b
  Serial number of failed request:  14325
  Current serial number in output stream:  14325
Bus Error - core dumped
-- snip --

-- snip --
(gdb) where
#0  0xfec461dc in t_splay () from /usr/lib/libc.so.1
#1  0xfec4604c in t_delete () from /usr/lib/libc.so.1
#2  0xfec45c64 in realfree () from /usr/lib/libc.so.1
#3  0xfec4648c in _free_unlocked () from /usr/lib/libc.so.1
#4  0xfec463dc in free () from /usr/lib/libc.so.1
#5  0xfd5b1464 in _XFreeDisplayStructure () from /usr/openwin/lib/libX11.so.4
#6  0xfd5aa614 in XCloseDisplay () from /usr/openwin/lib/libX11.so.4
#7  0xfd7262b8 in gdk_exit_func () from /usr/local/lib/libgdk-1.2.so.0
#8  0xfec20260 in _exithandle () from /usr/lib/libc.so.1
#9  0xfec983e8 in exit () from /usr/lib/libc.so.1
#10 0xfd5b1688 in _XDefaultError () from /usr/openwin/lib/libX11.so.4
#11 0xfdc50340 in XIMErrorHandler (dpy=0x9c8e0, event=0xffbed8b0) at
../../../../widget/src/gtk/nsGtkIMEHelper.cpp:1107
#12 0xfd5a75fc in _XError () from /usr/openwin/lib/libX11.so.4
#13 0xfd5999e4 in _XReply () from /usr/openwin/lib/libX11.so.4
#14 0xfd59e098 in XGetWindowProperty () from /usr/openwin/lib/libX11.so.4
#15 0xfd733468 in get_client_window_at_coords_recurse () from
/usr/local/lib/libgdk-1.2.so.0
#16 0xfd733890 in get_client_window_at_coords () from
/usr/local/lib/libgdk-1.2.so.0
#17 0xfd7393f0 in gdk_drag_find_window () from /usr/local/lib/libgdk-1.2.so.0
#18 0xfd96e070 in gtk_drag_update () from /usr/local/lib/libgtk-1.2.so.0
#19 0xfd96e528 in gtk_drag_motion_cb () from /usr/local/lib/libgtk-1.2.so.0
#20 0xfd9d98b0 in gtk_marshal_BOOL__POINTER () from
/usr/local/lib/libgtk-1.2.so.0
#21 0xfda50740 in gtk_handlers_run () from /usr/local/lib/libgtk-1.2.so.0
#22 0xfda4e8cc in gtk_signal_real_emit () from /usr/local/lib/libgtk-1.2.so.0
#23 0xfda49ac4 in gtk_signal_emit () from /usr/local/lib/libgtk-1.2.so.0
#24 0xfdacf7f8 in gtk_widget_event () from /usr/local/lib/libgtk-1.2.so.0
#25 0xfd9d9584 in gtk_propagate_event () from /usr/local/lib/libgtk-1.2.so.0
#26 0xfd9d70f4 in gtk_main_do_event () from /usr/local/lib/libgtk-1.2.so.0
#27 0xfdc3ad04 in handle_gdk_event (event=0x1da658, data=0x0) at
../../../../widget/src/gtk/nsGtkEventHandler.cpp:948
#28 0xfd741478 in gdk_event_dispatch () from /usr/local/lib/libgdk-1.2.so.0
#29 0xfd6b6dd0 in g_main_dispatch () from /usr/local/lib/libglib-1.2.so.0
#30 0xfd6b7bd4 in g_main_iterate () from /usr/local/lib/libglib-1.2.so.0
#31 0xfd6b7f6c in g_main_run () from /usr/local/lib/libglib-1.2.so.0
#32 0xfd9d60a8 in gtk_main () from /usr/local/lib/libgtk-1.2.so.0
#33 0xfdc2ea18 in nsAppShell::Run (this=0x97be8) at
../../../../widget/src/gtk/nsAppShell.cpp:350
#34 0xfe92d378 in nsAppShellService::Run (this=0x95ce8) at
../../../../xpfe/appshell/src/nsAppShellService.cpp:407
#35 0x1b450 in main1 (argc=1, argv=0xffbeea24, nativeApp=0x0) at
../../../xpfe/bootstrap/nsAppRunner.cpp:1016
#36 0x1bea8 in main (argc=1, argv=0xffbeea24) at
../../../xpfe/bootstrap/nsAppRunner.cpp:1260
-- snip --

Other info:
% gtk-config --version
1.2.8
% glib-config --version
1.2.8
ok, this really sounds like some kind of gtk problem. do any other apps have
this problem, or is it just us?

--> blizzard, who will probably have a better idea of the gtk guts and better
access to hardware to test/debug this.
Assignee: pinkerton → blizzard
Please correct me anyone if I am wrong, but...
...GTK+ (1.2.8) does not support multihead (better: working with multiple
DISPLAYs at the same time), trying to do this results in all kinds of _bad_
problems...
I don't know what happens when you try to DND across screens.  I also don't have
the hardware to test it out.
To blizzard: Which hardware do you have access to ?
One possibility is (which I use): get an UltraSPARC 5 and plug a ATI RagePro
(compatible cards are listed in
http://www.belwue.de/aktivitaeten/projekte/SUN-SH-2-SUN-DH.html (yes, I know...
german... sorry)).

I found an older URL covering the theme "does GTK support multiple screens":
http://mail.gnome.org/archives/gtk-list/1998-June/msg00662.html
Question is if this has been changed yet (I am afraid noone touched that issue
yet)... ;-((


I don't have access to any dual head systems.
This is a gtk bug.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → WONTFIX
Will this ever be fixed on GTK+ library side ?
You need to log in before you can comment on or make changes to this bug.