Bug 31056 - User friendly way to report tracebacks
User friendly way to report tracebacks
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC (Generic)
UCS 3.0
Other Linux
: P1 enhancement (vote)
: UCS 3.2
Assigned To: Dirk Wiesenthal
Alexander Kläser
: interim-2
: 31881 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2013-04-15 15:01 CEST by Alexander Kläser
Modified: 2013-11-19 06:42 CET (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional): Usability
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kläser univentionstaff 2013-04-15 15:01:09 CEST
It would be nice to be able to send tracebacks more easily as feedback directly to Univention. A good feature would be the history of the last N actions to be able to understand the context of the error.
Comment 1 Alexander Kläser univentionstaff 2013-07-18 13:47:12 CEST
*** Bug 31881 has been marked as a duplicate of this bug. ***
Comment 2 Dirk Wiesenthal univentionstaff 2013-09-06 19:45:27 CEST
Extended the frontend in
  univention-management-console-frontend 3.0.64-1.701.201309061308
    (looks for a new version of system-info)

Added the logic in
  univention-system-info 4.0.0-1.43.201309061942

And built an internal tool for processing this traceback in
  univention-system-info-traceback 1.0.0-1.1.201309061938
Comment 3 Florian Best univentionstaff 2013-09-10 09:40:04 CEST
Wouldn't it be good for us to not only get the traceback but also the request url (error.url) (and maybe also the request options (error.options.data))? In UDM the tracebacks are often useless.
Comment 4 Dirk Wiesenthal univentionstaff 2013-09-10 09:49:03 CEST
(In reply to Florian Best from comment #3)
> Wouldn't it be good for us to not only get the traceback but also the
> request url (error.url) (and maybe also the request options
> (error.options.data))? In UDM the tracebacks are often useless.

You should be able to somehow get error.url from the traceback. What you do not get are request.options. I agree that these are interesting, but sending those (including username, password, ...) semi-automatically is not an option.

We should see how many use this new feature and evaluate how useful it is with nothing but the traceback (and UCS version).
Comment 5 Dirk Wiesenthal univentionstaff 2013-09-10 09:52:12 CEST
One more point: If this new way of sending tracebacks is used, we can at least estimate which functions in particular are unstable.

If the tracebacks tend to be completely useless, we have to improve the tracebacks in a first step.
Comment 6 Alexander Kläser univentionstaff 2013-09-11 12:44:30 CEST
====================
var systemInfoLib = undefined;
...
if (systemInfoLib === undefined) {
  try {
    systemInfoLib = require('umc/modules/sysinfo/lib');
  } catch(e) {
    systemInfoLib = null;
  }
}
if (systemInfoLib) ...
====================

The following suffices:
====================
var systemInfoLib = require('umc/modules/sysinfo/lib');
if (systemInfoLib) ...
====================
Comment 7 Alexander Kläser univentionstaff 2013-09-11 13:40:51 CEST
Could you send a history of the latest UMC actions along with the traceback?
Comment 8 Stefan Gohmann univentionstaff 2013-09-11 13:54:26 CEST
(In reply to Alexander Kläser from comment #7)
> Could you send a history of the latest UMC actions along with the traceback?

Let's first see if it is really used. If we find that we need more information, then we can make improvements.
Comment 9 Dirk Wiesenthal univentionstaff 2013-09-12 12:10:28 CEST
(In reply to Alexander Kläser from comment #6)
> ====================
> var systemInfoLib = undefined;
> ...
> if (systemInfoLib === undefined) {
>   try {
>     systemInfoLib = require('umc/modules/sysinfo/lib');
>   } catch(e) {
>     systemInfoLib = null;
>   }
> }
> if (systemInfoLib) ...
> ====================
> 
> The following suffices:
> ====================
> var systemInfoLib = require('umc/modules/sysinfo/lib');
> if (systemInfoLib) ...
> ====================

This will not work, as require('umc/modules/sysinfo/lib') throws an exception in case it does not find anything. One could remove the caching of systemInfoLib, though. But this only adds little to readability (at least compared to the proposed, but broken, solution).
Comment 10 Dirk Wiesenthal univentionstaff 2013-09-13 00:01:25 CEST
univention-system-info-traceback up and running.

Note to self: apache restart was not required. No need to wait until midnight...
Comment 11 Alexander Kläser univentionstaff 2013-09-13 11:52:52 CEST
(In reply to Stefan Gohmann from comment #8)
> Let's first see if it is really used. If we find that we need more
> information, then we can make improvements.

OK, good idea.
Comment 12 Dirk Wiesenthal univentionstaff 2013-09-16 14:23:35 CEST
(In reply to Dirk Wiesenthal from comment #2)
> Extended the frontend in
>   univention-management-console-frontend 3.0.64-1.701.201309061308
>     (looks for a new version of system-info)
> 
> Added the logic in
>   univention-system-info 4.0.0-1.43.201309061942
> 
> And built an internal tool for processing this traceback in
>   univention-system-info-traceback 1.0.0-1.1.201309061938

Email arrived as expected.
Comment 13 Alexander Kläser univentionstaff 2013-09-20 16:35:07 CEST
Suggestion for label changes:
"An den Hersteller weiterleiten" → "An Hersteller senden"
"Feedback per E-Mail senden" → "Als E-Mail senden"
"Send feedback email" → "Send as email"
→ this would make them shorter.

I would but convert the "Send as email" link to a button next to the button "Close". "Send to vendor" should be default, and if not possible, "Send as email" should be default (not "Close").

IMHO, it would be nice and transparent to send a copy to the user, as well.

umc/web/traceback/url → or rather umc/sysinfo/traceback/url as it is part of univention-system-info

Otherwise everything works fine, emails arrive via the sysinfo module and via plain email. The fallbacks (a) for a failed send command and (b) in case the sysinfo module is not available are both fine.

Changelog → missing!
Comment 14 Sönke Schwardt-Krummrich univentionstaff 2013-09-23 09:15:05 CEST
(In reply to Alexander Kläser from comment #13)
> Suggestion for label changes:
> "An den Hersteller weiterleiten" → "An Hersteller senden"
Doesn't sound like korrect german because of the missing article. 
What about "Zum Hersteller senden"?
Comment 15 Dirk Wiesenthal univentionstaff 2013-09-23 12:40:55 CEST
(In reply to Alexander Kläser from comment #13)
> Suggestion for label changes:
> "An den Hersteller weiterleiten" → "An Hersteller senden"
> "Feedback per E-Mail senden" → "Als E-Mail senden"
> "Send feedback email" → "Send as email"
> → this would make them shorter.
> 
> I would but convert the "Send as email" link to a button next to the button
> "Close". "Send to vendor" should be default, and if not possible, "Send as
> email" should be default (not "Close").
> 

  Inform vendor / Dem Hersteller melden

  univention-management-console-frontend 3.0.80-1.721.201309231153

> IMHO, it would be nice and transparent to send a copy to the user, as well.

As discussed we should not send emails to arbitrary addresses.

> 
> umc/web/traceback/url → or rather umc/sysinfo/traceback/url as it is part of
> univention-system-info

  univention-system-info 4.0.2-1.47.201309231159

> 
> Otherwise everything works fine, emails arrive via the sysinfo module and
> via plain email. The fallbacks (a) for a failed send command and (b) in case
> the sysinfo module is not available are both fine.
> 
> Changelog → missing!

?? vim changelog-3.2.xml +986
Comment 16 Alexander Kläser univentionstaff 2013-09-23 12:55:51 CEST
(In reply to Dirk Wiesenthal from comment #15)
> > I would but convert the "Send as email" link to a button next to the button
> > "Close". "Send to vendor" should be default, and if not possible, "Send as
> > email" should be default (not "Close").
> 
>   Inform vendor / Dem Hersteller melden
> 
>   univention-management-console-frontend 3.0.80-1.721.201309231153

OK

> > IMHO, it would be nice and transparent to send a copy to the user, as well.
> 
> As discussed we should not send emails to arbitrary addresses.

OK

> > umc/web/traceback/url → or rather umc/sysinfo/traceback/url as it is part of
> > univention-system-info
> 
>   univention-system-info 4.0.2-1.47.201309231159

OK

> > Changelog → missing!
> 
> ?? vim changelog-3.2.xml +986

Ah, looks good :) .

→ VERIFIED
Comment 17 Alexander Kläser univentionstaff 2013-09-23 13:32:36 CEST
Is it possible to change the timeout for sending the traceback from the python backend? If the server does not exist, I get the fallback popup after 80sec. That is a bit long and could be irritating, as the dialog would pop up in a different context. 10-20sec would be fine, I guess.
Comment 18 Dirk Wiesenthal univentionstaff 2013-09-23 17:11:23 CEST
(In reply to Alexander Kläser from comment #17)
> Is it possible to change the timeout for sending the traceback from the
> python backend?

Yes, it is very easy:
  - urllib2.urlopen(request)
  + urllib2.urlopen(request, timeout=10)

Unfortunately urllib2's global handlers were overwritten with some legacy code and now timeout does not work (new in python2.6).

> If the server does not exist, I get the fallback popup after
> 80sec. That is a bit long and could be irritating, as the dialog would pop
> up in a different context. 10-20sec would be fine, I guess.

Fortunately this is not so critical. This happens if there is a 502 BAD GATEWAY. A simple 404 is detected immediately. So this is a configuration error on the server side.

Of course I would like to fix that on the client side by adding a timeout but I do not want to touch this part of the code for now. I opened Bug#32667 for this.
Comment 19 Alexander Kläser univentionstaff 2013-09-23 17:59:11 CEST
OK → VERIFIED
Comment 20 Stefan Gohmann univentionstaff 2013-11-19 06:42:45 CET
UCS 3.2 has been released:
 http://docs.univention.de/release-notes-3.2-en.html
 http://docs.univention.de/release-notes-3.2-de.html

If this error occurs again, please use "Clone This Bug".