Go to file
Rami Ylimaki 5b9a52be7e os: Prevent core dump from being truncated.
The problem fixed by this patch can be reproduced on Linux with the
following steps.
- Access NULL pointer intentionally in ProcessOtherEvent on key press.
- Instead of saving core dump to a file, write it into a pipe.
  echo "|/usr/sbin/my-core-dumper" > /proc/sys/kernel/core_pattern
- Dump the core by pressing a key.

While the core is being dumped into the pipe, the smart schedule timer
will cause a pending SIGALRM. Linux kernel stops writing data to the
pipe when there are pending signals. This causes the core dump to be
truncated. On my system I'm expecting a 6 MB dump but the size will be
60 kB instead. The problem is solved if we block the SIGALRM caused by
expired smart schedule timer.

I haven't been able to reproduce this problem in the following cases.
- Save core dump to a file instead of a pipe.
- kill -SEGV `pidof Xorg`
- Press a key to dump core while gdb is attached to Xorg.
- Give option -dumbSched to Xorg.

Also note that the fix works only when NoTrapSignals has the default
value FALSE. The problem can still be reproduced if error signals
aren't trapped. In addition to pending SIGALRM, there is a similar
problem with pending SIGIO from the keyboard driver during core dump.

Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:20:52 -08:00
composite os: Prevent core dump from being truncated. 2010-02-17 23:20:52 -08:00
config udev: Don't filter subsystem "input" 2010-02-15 15:27:42 +10:00
damageext Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
dbe Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
dix dix: move config_init into the DDX. 2010-02-15 09:15:18 +10:00
doc doc: finish the removal of SecurityPolicy file man pages 2010-01-27 14:17:17 -08:00
exa EXA: Restore migration call in exaDoPutImage(). 2010-01-04 08:28:12 -08:00
fb Fix source pictures getting random transforms after 2d6a8f6683. 2010-01-27 14:03:03 -08:00
glx os: Prevent core dump from being truncated. 2010-02-17 23:20:52 -08:00
hw os: Prevent core dump from being truncated. 2010-02-17 23:20:52 -08:00
include os: Introduce OsAbort for proper core dumps. 2010-02-17 23:20:41 -08:00
m4 dolt: add Cygwin to supported platforms 2009-10-13 20:30:22 -07:00
mi Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
miext os: Prevent core dump from being truncated. 2010-02-17 23:20:52 -08:00
os os: Prevent core dump from being truncated. 2010-02-17 23:20:52 -08:00
randr Don't double-swap the RandR PropertyNotify event 2010-02-12 14:55:19 -08:00
record Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
render RENDER: Fix gradient and solid fill pictures with Xinerama, and misc cleanup 2010-01-29 21:38:50 -08:00
test dix: EventToCore needs to copy the root window too. 2010-01-27 14:38:16 -08:00
Xext Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
xfixes Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
Xi Xi: reset the sli pointers after copying device classes. (#25640) 2010-02-15 15:27:41 +10:00
xkb xkb: sed True -> TRUE and False -> FALSE 2010-02-02 10:03:30 +10:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac Bump to 1.7.99.901 -- 1.8 RC1 2010-02-12 13:46:27 -08:00
COPYING Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
cpprules.in man: add missing __datadir__ for Xserver XWin man pages 2010-01-27 14:16:25 -08:00
Makefile.am INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206 2009-11-11 21:44:24 -08:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in Since font modules are dead, don't mention them in xorg-server.pc 2009-07-09 17:21:07 -04:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage