More System Outputs
After a lot of poking around, I think the key to solving this is in the Xorg.1.log file, not the Xorg.0.log file. I will attach the whole log file, but here are what I believe to be the relevant lines:
[ 81.360] (II) NVIDIA(0): Validated modes:
[ 81.360] (II) NVIDIA(0): "nvidia-auto-select"
[ 81.360] (II) NVIDIA(0): Virtual screen size determined to be 1680 x 1050
[ 81.388] (--) NVIDIA(0): DPI set to (90, 88); computed from "UseEdidDpi" X config
[ 81.388] (--) NVIDIA(0): option
[ 81.388] (--) Depth 24 pixmap format is 32 bpp
[ 81.388] (II) NVIDIA: Using 768.00 MB of virtual memory for indirect memory access.
[ 81.680] (II) NVIDIA(0): USB emitter - Copyright (c) 2010 NVIDIA Corporation NVIDIA
[ 81.680] (II) NVIDIA(0): stereo controller
[ 282.893] (WW) NVIDIA(0): Failed to create a device corresponding to the 3D Vision Pro
[ 282.894] (WW) NVIDIA(0): dongle.
[ 282.894] (WW) NVIDIA(0): USB stereo dongle initialization failed. Disabling stereo
[ 282.903] (II) NVIDIA(0): Setting mode "nvidia-auto-select"
[ 282.927] (II) Loading extension NV-GLX
[ 282.948] (==) NVIDIA(0): Disabling shared memory pixmaps
[ 282.948] (==) NVIDIA(0): Backing store disabled
[ 282.948] (==) NVIDIA(0): Silken mouse enabled
[ 282.949] (**) NVIDIA(0): DPMS enabled
The gap in time was the time from the screen locking to the time I was able to run strace on the newest Xorg process.
This file is from a different system than the one above, so correlations are not possible. The system I produced this log file on was as simple as I could make it. 64-bit AMD, one active monitor (the second attached but not active) and only users present were created on that system.
Work Around Script
I was able to produce an ugly, but viable workaround for this problem, which I will also attach (FreeX11.sh.gz). The script find the newest Xorg process's PID number, passes that to strace and then kills strace. It needs the program timeout (on Debian provided by package “timelimit”) and the “feild” parameter (-f) on cut will need tweaking for your system (my 64-bit systems want -f2 and my 32-bit systems want -f1). Also, if one is not running this on Debian, the paths for the programs will likely need to be adjusted.
This script is run via crontab every 10 seconds.
Here is the line that does the work:
(/bin/ps -A | /bin/grep Xorg | /usr/bin/tail -1 | /usr/bin/cut -f2 -d" ") | /usr/bin/timeout 1s /usr/bin/xargs /usr/bin/strace -p