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

Reply via email to