Summary: | x11-base/xorg-server-1.3 and 1.4 consumes 100% CPU, locking the keyboard, apparently triggered by opening an OpenOffice pulldown menu | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Steven Winikoff <smw> |
Component: | [OLD] Server | Assignee: | Gentoo X packagers <x11> |
Status: | RESOLVED FIXED | ||
Severity: | critical | CC: | cems, tetromino |
Priority: | High | Keywords: | Inclusion |
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
URL: | https://bugs.freedesktop.org/show_bug.cgi?id=10525 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | patch using sigaction instead of signal (no glibc-only extensions) |
Description
Steven Winikoff
2007-10-26 03:51:02 UTC
Same issue here, in both openoffice and openoffice-bin. Opening any openoffice menu has a 25% chance of freezing X. Portage 2.1.3.19 (default-linux/amd64/2007.0/desktop, gcc-4.2.2, glibc-2.6.1-r0, 2.6.22-gentoo-r8 x86_64) ================================================================= System uname: 2.6.22-gentoo-r8 x86_64 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz It's on master branch, but it hasn't yet 1.4 branch yet. I asked ajax about that, and I'm waiting to hear back. commit a5b8053606d6e786cdcf6734f271acc05f9cc588 Author: Adam Jackson <ajax@benzedrine.nwnk.net> Date: Tue Sep 11 11:37:06 2007 -0400 Ignore - not just block - SIGALRM around Popen()/Pclose(). Because our "popen" implementation uses stdio, and because nobody's stdio library is capable of surviving signals, we need to make absolutely sure that we hide the SIGALRM from the smart scheduler. Otherwise, when you open a menu in openoffice, and it recompiles XKB to deal with the accelerators, and you popen xkbcomp because we suck, then the scheduler will tell you you're taking forever doing something stupid, and the wait() code will get confused, and input will hang and your CPU usage slams to 100%. Down, not across. Should be fixed in 1.4.0.90, please reopen if it's not. I added this in /etc/portage/package.keywords: # bugs # xorg-1.3.0.0-r5 x11-base/xorg-server x11-libs/pixman x11-libs/libXrender x11-proto/renderproto media-libs/mesa x11-libs/xtrans x11-drivers/xf86-input-keyboard # not asked by portage but required x11-drivers/xf86-input-mouse x11-drivers/xf86-video-ati emerge --sync and emerge -u xorg-server revdep-rebuild -i -p shows only gobby which fails to compile (another bug) The behaviour is the same as 1.3.0.0-r5: I can run X, alone, but starting gdm, xdm or slim locks the keyboard, mouse and X (100% CPU) cannot be killed. Portage 2.1.4.4 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.24-gentoo-r3 i686) ================================================================= System uname: 2.6.24-gentoo-r3 i686 AMD Athlon(tm) XP 2600+ Timestamp of tree: Mon, 14 Apr 2008 20:04:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.4 dev-lang/python: 2.3.5-r3, 2.4.4-r9 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/bind" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer" DISTDIR="/mnt/sata/portage/distfiles" FEATURES="ccache distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo http://mirror.datapipe.net/gentoo http://gentoo.mirrors.pair.com/" LANG="en_US.utf8" LC_ALL="en_US.utf8" LINGUAS="en" MAKEOPTS="-j2" PKGDIR="/mnt/sata/portage/packages" 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="/mnt/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowext 7zip X acpi alsa apache2 bash-completion berkdb bluetooth branding bzip2 bzlib cairo cddb cdr cli cracklib crypt cups dbus divx4linux djvu dri dvd dvdr dvdread emboss esd evo fam firefox flac foomaticdb fortran gdbm gif gnome gphoto2 gpm gstreamer gtk gtk2 hal iconv innodb isdnlog javascript jpeg jpeg2k kdeenablefinal kdexdeltas keyring lcms libnotify logrotate mad matroska midi mmx mmx2 mmxext mng mp3 mpeg msn mudflap ncurses network-cron nls nptl nptlonly nsplugin offensive ogg opengl openmp oscar pam pcre pdf perl php png ppds pppd python qt3support qt4 quicktime readline reflection rtc ruby samba sasl sdl session spl sse ssl startup-notification svg tcpd threads truetype unicode v4l v4l2 vhosts vim-syntax vorbis win32codecs x86 xinetd xml xorg xosd xprint xv xvid xvmc yv12 zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd 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 dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="worker" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="radeon" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY I'll try recompile everything with stable version Created attachment 151747 [details, diff]
patch using sigaction instead of signal (no glibc-only extensions)
Type sighandler_t and function signal() are glibc extensions and as such do not work on systems without glibc (for instance, Darwin/OS X). This patch uses POSIX signal-handling functions and structs instead, for cross-platform compatibility.
(In reply to comment #5) > Created an attachment (id=151747) [edit] > patch using sigaction instead of signal (no glibc-only extensions) > > Type sighandler_t and function signal() are glibc extensions and as such do not > work on systems without glibc (for instance, Darwin/OS X). This patch uses > POSIX signal-handling functions and structs instead, for cross-platform > compatibility. > Apologies for not knowing where to put this patch/the correct format/etc. It's Adam Jackson's patch, updated to use the POSIX sighandlers instead. I forgot to mention that rebuilding system/world worked for me. But that takes a loooong time! (In reply to comment #6) > (In reply to comment #5) > > Created an attachment (id=151747) [edit] > > patch using sigaction instead of signal (no glibc-only extensions) > > > > Type sighandler_t and function signal() are glibc extensions and as such do not > > work on systems without glibc (for instance, Darwin/OS X). This patch uses > > POSIX signal-handling functions and structs instead, for cross-platform > > compatibility. > > > Apologies for not knowing where to put this patch/the correct format/etc. It's > Adam Jackson's patch, updated to use the POSIX sighandlers instead. It needs to go upstream to bugs.freedesktop.org in the xorg product. You can get the latest copy of the xserver source to patch against by running `git clone git://anongit.freedesktop.org/git/xorg/xserver`. |