Solution #2:
Add option to "restart application" and "restart with error reporting"
I propose adding 2 options to the dialog (in addition to the close/etc button).
"Restart Application" would simply restart the application.
"Restart With Error Reporting" would capture the stdout and stderr from the application and generate an "error report" that could be read (for experienced users) or copy/pasted to a new bug report for the application.
I propose adding 2 options to the dialog (in addition to the close/etc button).
"Restart Application" would simply restart the application.
"Restart With Error Reporting" would capture the stdout and stderr from the application and generate an "error report" that could be read (for experienced users) or copy/pasted to a new bug report for the application.
Solution #3:
Solution #1 with "Try Again" option
This would be similar to solution #2, but would be a single button that would implement the second option every time. It is likely the application will fail for the same reason the second time, so it is reasonable to take the more agressive approach. "Try Again" is also more explicit about what you're doing than simply "restart."
This would be similar to solution #2, but would be a single button that would implement the second option every time. It is likely the application will fail for the same reason the second time, so it is reasonable to take the more agressive approach. "Try Again" is also more explicit about what you're doing than simply "restart."
Solution #4:
As #3 but only from the menu with an option
* When adding an item to the menu, let there be an extra option (on by default) whether option #3 applies.
* If it the option is on, then the solution #3 happens only when the application is launched from the menu, not from anywhere else, and the application fails with a non-zero status within (say) 5 seconds.
* If the option is off, then the current behaviour applies.
This allows you to select programs where you do not want this behaviour to take place.
Rationale for this option:
There is a serious problem, in that the operating system doesn't know whether the application crashed or ended deliberately.
1) There are some applications (admittedly few, often smaller "home-made" scripts) that do not run for a long time and do not require any interaction from the user.
2) How would the operating system know whether the application started and was immediately dismissed by the user? For example, if I start Calculator by accident, and click the close button less than a second later.
3) The operating system would have to distinguish between being started from a terminal or not.
4) What about applications that catch themselves? OpenOffice is one that regularly crashes on my system, but it catches itself. In that case, the proposed solution would be a repeated irritation.
5) What about a program that was started from a script, where the script itself catches the crash?
I understand the rationale behind the proposal, but this would have to be carefully, very carefully, thought through.
* When adding an item to the menu, let there be an extra option (on by default) whether option #3 applies.
* If it the option is on, then the solution #3 happens only when the application is launched from the menu, not from anywhere else, and the application fails with a non-zero status within (say) 5 seconds.
* If the option is off, then the current behaviour applies.
This allows you to select programs where you do not want this behaviour to take place.
Rationale for this option:
There is a serious problem, in that the operating system doesn't know whether the application crashed or ended deliberately.
1) There are some applications (admittedly few, often smaller "home-made" scripts) that do not run for a long time and do not require any interaction from the user.
2) How would the operating system know whether the application started and was immediately dismissed by the user? For example, if I start Calculator by accident, and click the close button less than a second later.
3) The operating system would have to distinguish between being started from a terminal or not.
4) What about applications that catch themselves? OpenOffice is one that regularly crashes on my system, but it catches itself. In that case, the proposed solution would be a repeated irritation.
5) What about a program that was started from a script, where the script itself catches the crash?
I understand the rationale behind the proposal, but this would have to be carefully, very carefully, thought through.
Solution #5:
Details for #1 (response to #4)
The idea is not to just look at how long the application runs for, but to look at the return code for the program. If a program returns 0 it has exited successfully without error. Returning any other number means an error, so the only thing that's needed is to use a wrapper or the like to watch the return codes of things called by anything outside of the terminal (I think that such a dialog appearing from things inside the terminal would be annoying and unproductive for developers and advanced users).
An advantage over using return codes over run time is that this message can also detect crashes and provide error reporting data. When a program crashes or segfaults, it will return a non-zero exit code, so ubuntu would be able to tell if the program ended deliberately or not. If the script is written correctly, then it too will normally return an exit code of 0 when deliberately closed.
A GUI such as the one proposed in solution #1 would work perfectly, and the only other component is a wrapper or some way to read the return codes of applications started from gnome.
The idea is not to just look at how long the application runs for, but to look at the return code for the program. If a program returns 0 it has exited successfully without error. Returning any other number means an error, so the only thing that's needed is to use a wrapper or the like to watch the return codes of things called by anything outside of the terminal (I think that such a dialog appearing from things inside the terminal would be annoying and unproductive for developers and advanced users).
An advantage over using return codes over run time is that this message can also detect crashes and provide error reporting data. When a program crashes or segfaults, it will return a non-zero exit code, so ubuntu would be able to tell if the program ended deliberately or not. If the script is written correctly, then it too will normally return an exit code of 0 when deliberately closed.
A GUI such as the one proposed in solution #1 would work perfectly, and the only other component is a wrapper or some way to read the return codes of applications started from gnome.
Solution #6:
Open terminal with crash details.
Rather than a whole new error reporting system, maybe there should be a trigger to open terminal with the details of the error as soon as a program crashes. This way, those Ubuntu veterans out there can figure out the problem their usual way and fix it then and there, rather than having to quote an error code online or something similar.
Rather than a whole new error reporting system, maybe there should be a trigger to open terminal with the details of the error as soon as a program crashes. This way, those Ubuntu veterans out there can figure out the problem their usual way and fix it then and there, rather than having to quote an error code online or something similar.
Propose your solution
Attachments
No attachments.
Duplicates
Comments
I'm not really in favor of #6, because I think the whole point is to make the system more user-friendly, and not more intimidating for beginner or intermediate users.
Experienced users can still open a terminal, run the application, and determine what's going on from there.
Post your comment