Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 263638 - x11-terms/rxvt-unicode, in some rare case, left a popup which steal the keyboard and mouse focus
Summary: x11-terms/rxvt-unicode, in some rare case, left a popup which steal the keyb...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High minor
Assignee: Jeroen Roovers (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-24 18:00 UTC by Raphaël Droz
Modified: 2009-11-09 13:38 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge.info,4.58 KB, text/plain)
2009-03-24 23:50 UTC, Raphaël Droz
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Raphaël Droz 2009-03-24 18:00:49 UTC
While launching a compilation in urxvtc, I made the menu popup appears (normally : Shift + click middle) shortly after changing from desktop.
But, because of the compilation (CPU usage), the reaction was slow and fluxbox get stuck to desktop change during the seconds needed to come back to a stable state.
But back at the original desktop nothing answered anymore (keyboard and mouse) except the popup (I could (en|dis)able the options if I clicked over the entries of the popup) and (hopefully) ctrl+alt+Fx, but nothing else.
(the compilation continued anyway and I was able to follow the output of the terminal until it was finished)

Killing urxvtc (from tty1) gave back the control over mouse and keyboard when back to tty7.
However the popup was still here, even after having restarted fluxbox.
After the fluxbox restart the popup reacted as a selectable text box.
(It's not a simple graphic artifact)

I guess the close of the perl popup in the urxvt code is maybe misplaced or not fully safe.

The output of xprop over the (almost) dead popup is attached.
Notice that 6273 is the PID of my urxvtd which is still running.

Reproducible: Didn't try




xprop
-----------------------------------------------------
_NET_WM_PID(CARDINAL) = 6273
WM_TRANSIENT_FOR(WINDOW): window id # 0x120000b
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x1b5d0f0
WM_LOCALE_NAME(STRING) = "fr_FR.UTF-8"
WM_CLASS(STRING) = "URxvt.popup", "URxvt"
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
		Initial state is Normal State.
		window id # of group leader: 0x12c550e
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		user specified location: 308, 674
		user specified size: 156 by 380
		program specified minimum size: 9 by 16
		program specified resize increment: 7 by 14
		program specified base size: 2 by 2
		window gravity: NorthWest
WM_CLIENT_MACHINE(STRING) = "b1b1"
WM_COMMAND(STRING) = { "popup", "--perl-lib", "", "--perl-ext-common", "", "-pty-fd", "-1", "-sl", "0", "-b", "1", "-bd", "grey80", "-bl", "-override-redirect", "--transient-for", "18874379", "-display", ":0.0", "-pe", "urxvt-popup" }
_NET_WM_ICON_NAME(UTF8_STRING) = 0x55, 0x52, 0x78, 0x76, 0x74, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70
WM_ICON_NAME(STRING) = "URxvt.popup"
_NET_WM_NAME(UTF8_STRING) = 0x55, 0x52, 0x78, 0x76, 0x74, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x4d, 0x65, 0x6e, 0x75
WM_NAME(STRING) = "URxvt Popup Menu"
-----------------------------------------------------
Proof of the selectability of the popup : a copy/paste of its visible content :
Options
======================
* buffered
  cursorBlink
  cursorUnderline
  hold
  insecure
* intensityStyles
* iso14755_52
* jumpScroll
  mapAlert
  mouseWheelScrollPage
* pastableTabs
* pointerBlank
  scrollTtyKeypress
* scrollTtyOutput
  scrollWithBuffer
* secondaryScroll
  skipBuiltinGlyphs
* skipScroll
  tripleclickwords
  urgentOnBell
  visualBell
* readline
* new selection
-----------------------------------------------------
Comment 1 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-03-24 22:45:58 UTC
Please post your "emerge --info".
Comment 2 Raphaël Droz 2009-03-24 23:50:27 UTC
Created attachment 186158 [details]
emerge --info

Maybe worse to say that it happens while using the nvidia blob even if I stay convinced about rxvt and|or perl module used being the culprit
Comment 3 Slava Gorbunov 2009-09-15 22:47:26 UTC
I've become affected by this bug just after upgrading of xorg-server to version 1.6 (with xorg-server-1.4 rxvt worked fine). After upgrade, pressing ctrl-right mouse button (or ctrl-middle) causes rxvt to grab keyboard and mouse input and hang.

The patch provided here: https://bugs.launchpad.net/ubuntu/+source/rxvt-unicode/+bug/317366/comments/8 solves the problem
Comment 4 Víctor Ostorga (RETIRED) gentoo-dev 2009-10-25 18:30:19 UTC
Thanks for the patch!
Please test and give feedback
Comment 5 Wirt Wolff 2009-10-25 22:29:55 UTC
The patch did not apply cleanly, perhaps I didn't find the correct version? However manually removing ', 1' from the `$self->grab ($self->{data}{event}{time})' code in on_start and on_map_notify did indeed allow popup menus to open and close correctly.

-- einfo --

Portage 2.2_rc46 (default/linux/amd64/10.0/desktop, gcc-4.4.2, glibc-2.10.1-r0, 2.6.31-gentoo-r3 x86_64)
=================================================================
System uname: Linux-2.6.31-gentoo-r3-x86_64-Intel-R-_Core-TM-2_Quad_CPU_@_2.40GHz-with-gentoo-2.0.1
Timestamp of tree: Sun, 25 Oct 2009 00:15:02 +0000
app-shells/bash:     4.0_p33
dev-java/java-config: 2.1.9-r1
dev-lang/python:     2.6.3, 3.1.1-r1
dev-util/cmake:      2.6.4-r3
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.5.2-r1
sys-apps/sandbox:    2.1
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.20
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=core2 -O2"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS=""
FEATURES="assume-digests collision-protect distlocks fixpackages metadata-transfer multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.usu.edu/mirrors/gentoo/ http://prometheus.cs.wmich.edu/gentoo http://gentoo.cites.uiuc.edu/pub/gentoo/ http://gentoo.mirrors.tds.net/gentoo http://gentoo.mirrors.pair.com/ http://files.gentoo.org http://open-systems.ufl.edu/mirrors/gentoo http://gentoo.chem.wisc.edu/gentoo/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j6"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/haskell /usr/local/portage/layman/x11 /usr/local/portage/layman/graaff /usr/local/portage/layman/pro-audio /usr/local/portage /usr/local/portage/layman"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 amr ares bash-completion berkdb binary-drivers branding bzip2 cairo cdr cli consolekit cracklib cups dbus doc dri dts dvd dvdr eds emboss encode evdev evo exif ffmpeg flac foomaticdb fortran gdbm gif glade gpm gstreamer gtk hal hscolour iconv imagemagick ipv6 isdnlog jack java6 jbig jpeg jpeg2k lcms ldap libnotify libsamplerate lm_sensors logrotate mad mikmod mmx modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly nvidia ogg opencore-amr opengl openmp pam pcre pdf perl png postgres ppds pppd python qt3support qt4 quicktime readline reflection sdl session smp spell spl sqlite sse sse2 ssl ssse3 startup-notification svg sysfs tcpd thunar tiff truetype type1 unicode usb vim-syntax vorbis x264 xft xinerama xml xorg xpm xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="ncurses text" USERLAND="GNU" VIDEO_CARDS="nvidia" 
Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
Comment 6 Víctor Ostorga (RETIRED) gentoo-dev 2009-10-26 02:26:18 UTC
Build log and failed patch log would be great
Comment 7 Víctor Ostorga (RETIRED) gentoo-dev 2009-10-26 02:27:59 UTC
Assigning to maintainer
Comment 8 Wirt Wolff 2009-10-26 03:35:28 UTC
(In reply to comment #6)
> Build log and failed patch log would be great

Ugh, sorry, not very development savvy; I didn't even think of collecting info
on the patch failure. Will make time soon to re-install urxvt to ensure starting from portage version of perl script, track down patch, try applying again, maybe even figure out what went wrong, and post details.

It wasn't necessary to rebuild urxvt since this is just a perl script. So 
there's no build log to post. After gave up on trying to apply the patch
(yes, I was too stupid to bookmark which one or where it was from... :/
how embarassing)... Anyway, all I did was manually edit those two lines
in /usr/lib/urxvt/perl/urxvt-popup and start a new urxvt. Popup windows
no longer froze grabbing all input till killed. Probably urxvtc users 
would also need to restart urxvtd, but didn't test that.

Comment 9 Raphaël Droz 2009-10-26 15:32:22 UTC
Just to say that 9.05-r3 is also affected (think about stablereq bug #260199)
The patch solves the problem.

The url of the ubuntu bug comment is wrong, the patch lives here :
http://lists.schmorp.de/pipermail/rxvt-unicode/2009q3/001043.html

And as I didn't looked further than http://lists.schmorp.de/pipermail/rxvt-unicode/2009q3/001056.html (Xorg upstream), does someone knows about a Xorg version fixing the problem ?
Comment 10 Víctor Ostorga (RETIRED) gentoo-dev 2009-10-26 16:22:52 UTC
Patch was applied to(In reply to comment #9)
> Just to say that 9.05-r3 is also affected (think about stablereq bug #260199)
> The patch solves the problem.
> 
> The url of the ubuntu bug comment is wrong, the patch lives here :
> http://lists.schmorp.de/pipermail/rxvt-unicode/2009q3/001043.html
> 
> And as I didn't looked further than
> http://lists.schmorp.de/pipermail/rxvt-unicode/2009q3/001056.html (Xorg
> upstream), does someone knows about a Xorg version fixing the problem ?
> 

Patch was applied to rxvt-unicode-9.06-r1 and rxvt-unicode-9.06-r2
Comment 11 Alex Alexander (RETIRED) gentoo-dev 2009-11-09 02:11:23 UTC
is this solved? :)
Comment 12 Raphaël Droz 2009-11-09 13:35:39 UTC
Yes it is !

(In reply to comment #11)
> is this solved? :)


Comment 13 Alex Alexander (RETIRED) gentoo-dev 2009-11-09 13:38:43 UTC
reopening to mark as fixed then :)