On Thu, 14 Sep 2006, D. Michael McIntyre wrote:
> On Wednesday 13 September 2006 10:50 pm, Shelagh Manton wrote:
>
>> Yes indeedy! Unless I'm too impatient? How long should I have waited: I
>> waited about 5 minutes.
>
> No, that's more than adequate.
Indeed. A couple of suggestions to try:
1. Have you seen whether it is possible to switch to a different
virtual console when it locks up?
To try this, press Alt-Ctrl-F2, and see if you get presented with a
login prompt. If you are, then this means that the X-server has
hung, not the kernel. This usually means that a process has
performed an exclusive grab on the X server and then failed to
release it.
If this reveals a login prompt, then you should be able to recover
your system, by first killing rosegarden and rosegarden-sequencer,
by typing:
pkill rosegarden
or
pkill -KILL rosegarden
if the former doesn't work, and/or by killing the X server, and
then by typing Alt-Ctrl-F7 to return to the graphical console. If
this turns out to work, then other useful things to do would be to
reproduce the problem, and then from the other virtual console,
attach to first rosegarden and then rosegarden-sequencer with the
debugger, to see which functions they are executing, and then with
strace, to see what system calls they are making.
For example, first type:
pgrep rosegarden
to see what the process IDs are of rosegarden and
rosegarden-sequencer. If, for example, this revealed that the
process ID of rosegarden was 1234, then to attach the debugger to
the running rosegarden process, you would type:
gdb rosegarden 1234
Once gdb is running, type:
where
and this should list the stack of functions that are being called
(unless debugging symbols have all been stripped).
Similarly, to see what system calls rosegarden is making, you could
type:
strace -p 1234
If rosegarden really is stuck in a system call, then this won't
display anything. If rosegarden is in a loop, however, then there
should be a steady stream of messages, which might be instructive.
Do the same with rosegarden-sequencer.
2. Alternatively, if the kernel really is hanging and you thus can't
get a virtual console, then see if you can start rosegarden from a
terminal that will remain visible when rosegarden appears, and
start rosegarden from it, using strace, so that you can see the
final system calls that rosegarden makes before everything locks
up. You can do this by typing:
strace -f rosegarden
If it proves to be impossible to have the terminal window
unobscured by rosegarden, when the system locks up, then try
sending the output of strace to a file, so that you can look at
this after you reboot. This may or may not work, depending on
whether the kernel manages to write the output of strace to the
file, before it locks up. But it's worth a try. You would do this
by typing:
strace -f -o /tmp/rosegarden.trace rosegarden
Martin
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel