Trapping all errors in a stripped client?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Trapping all errors in a stripped client?

Steve Cline
I work on a fat-client application (VW 7.9), distributed as a stripped image with parcels.  I want to trap any error to get the app to "phone home" to let the development team know of the error, as we find that our users do not always report them.  I am trying to find a hook in what I think is the generic error dialog, but without success so far. Here is the error window I see when I introduce a divide-by-zero into the code:



I have searched through the image and the .pst files and do not find the likely strings "System Error" or "Write Report", except as an inexact match in the Wave-Server.pst, which I don't think is the right place.

Can anyone suggest where I should look, or perhaps a better way to structure a "catch everything" error handler?  I could wrap each action/button/menu/validation, but was hoping to find a "catch them all here" solution.

Thanks, Steve
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Nowak, Helge
Dear Steve,

Do you use the Runtime Packager? It replaces calls to open a NotifierView with calls to a RuntimeEmergencyNotifier. More details how to override that you'll find in the "Application Delivery" chapter of the Application Developer's Guide.

HTH
Helge

-----Ursprüngliche Nachricht-----
Von: [hidden email] [mailto:[hidden email]] Im Auftrag von Steve Cline
Gesendet: Dienstag, 19. August 2014 17:41
An: [hidden email]
Betreff: [vwnc] Trapping all errors in a stripped client?

I work on a fat-client application (VW 7.9), distributed as a stripped image with parcels.  I want to trap any error to get the app to "phone home" to let the development team know of the error, as we find that our users do not always report them.  I am trying to find a hook in what I think is the generic error dialog, but without success so far. Here is the error window I see when I introduce a divide-by-zero into the code:

<http://forum.world.st/file/n4773859/SystemError1.png>

I have searched through the image and the .pst files and do not find the likely strings "System Error" or "Write Report", except as an inexact match in the Wave-Server.pst, which I don't think is the right place.

Can anyone suggest where I should look, or perhaps a better way to structure a "catch everything" error handler?  I could wrap each action/button/menu/validation, but was hoping to find a "catch them all here" solution.

Thanks, Steve



--
View this message in context: http://forum.world.st/Trapping-all-errors-in-a-stripped-client-tp4773859.html
Sent from the VisualWorks mailing list archive at Nabble.com.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Steven Kelly
ErrorNotifier or a subclass handles the error, and ErrorDumper or a subclass
logs the error. I guess you want to override ErrorDumper>>openDumpStream to
make it open a socket to your server, rather than a file on disk. It's
probably polite to ask the user first, either for privacy reasons or roaming
bandwidth costs.

This could be a nice opportunity for a goodie, particularly if the server end
is also implemented in VW.

Steve
PS Windows XP look and feel? You might want to take a look at Holger's
wonderful Windows(7|8)LookPolicy packages.

Helge Nowak wrote:

> Do you use the Runtime Packager? It replaces calls to open a
> NotifierView with calls to a RuntimeEmergencyNotifier. More details how
> to override that you'll find in the "Application Delivery" chapter of
> the Application Developer's Guide.
>
> -----Ursprüngliche Nachricht-----
> Von: [hidden email] [mailto:[hidden email]] Im
> Auftrag von Steve Cline
> Gesendet: Dienstag, 19. August 2014 17:41
> An: [hidden email]
> Betreff: [vwnc] Trapping all errors in a stripped client?
>
> I work on a fat-client application (VW 7.9), distributed as a stripped
> image with parcels.  I want to trap any error to get the app to "phone
> home" to let the development team know of the error, as we find that
> our users do not always report them.  I am trying to find a hook in
> what I think is the generic error dialog, but without success so far.
> Here is the error window I see when I introduce a divide-by-zero into
> the code:
>
> <http://forum.world.st/file/n4773859/SystemError1.png>
>
> I have searched through the image and the .pst files and do not find
> the likely strings "System Error" or "Write Report", except as an
> inexact match in the Wave-Server.pst, which I don't think is the right
> place.
>
> Can anyone suggest where I should look, or perhaps a better way to
> structure a "catch everything" error handler?  I could wrap each
> action/button/menu/validation, but was hoping to find a "catch them all
> here" solution.
>
> Thanks, Steve
>
>
>
> --
> View this message in context: http://forum.world.st/Trapping-all-
> errors-in-a-stripped-client-tp4773859.html
> Sent from the VisualWorks mailing list archive at Nabble.com.
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Tom Robinson-4
You might not want to try to transmit the dump to the server when the problem occurs. The application is already in an error condition and may not be up to doing the work of sending the dump. Writing a timestamped dump file to disk, in a known location allows multiple options, including:
  • Sending the dump(s) on application startup, if any exist.
  • Running a background process on the client that checks for dump files every X minutes.
  • Using a process running on the server to check each machine and grab the dump files at night.

On 8/19/14, 10:12 AM, Steven Kelly wrote:
ErrorNotifier or a subclass handles the error, and ErrorDumper or a subclass
logs the error. I guess you want to override ErrorDumper>>openDumpStream to
make it open a socket to your server, rather than a file on disk. It's
probably polite to ask the user first, either for privacy reasons or roaming
bandwidth costs.

This could be a nice opportunity for a goodie, particularly if the server end
is also implemented in VW.

Steve
PS Windows XP look and feel? You might want to take a look at Holger's
wonderful Windows(7|8)LookPolicy packages.

Helge Nowak wrote: 
Do you use the Runtime Packager? It replaces calls to open a
NotifierView with calls to a RuntimeEmergencyNotifier. More details how
to override that you'll find in the "Application Delivery" chapter of
the Application Developer's Guide.

-----Ursprüngliche Nachricht-----
Von: [hidden email] [[hidden email]] Im
Auftrag von Steve Cline
Gesendet: Dienstag, 19. August 2014 17:41
An: [hidden email]
Betreff: [vwnc] Trapping all errors in a stripped client?

I work on a fat-client application (VW 7.9), distributed as a stripped
image with parcels.  I want to trap any error to get the app to "phone
home" to let the development team know of the error, as we find that
our users do not always report them.  I am trying to find a hook in
what I think is the generic error dialog, but without success so far.
Here is the error window I see when I introduce a divide-by-zero into
the code:

<http://forum.world.st/file/n4773859/SystemError1.png>

I have searched through the image and the .pst files and do not find
the likely strings "System Error" or "Write Report", except as an
inexact match in the Wave-Server.pst, which I don't think is the right
place.

Can anyone suggest where I should look, or perhaps a better way to
structure a "catch everything" error handler?  I could wrap each
action/button/menu/validation, but was hoping to find a "catch them all
here" solution.

Thanks, Steve



--
View this message in context: http://forum.world.st/Trapping-all-
errors-in-a-stripped-client-tp4773859.html
Sent from the VisualWorks mailing list archive at Nabble.com.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Maarten Mostert-2
In reply to this post by Steven Kelly
Please find enclosed the Emergency handler as well as the build scripts to integrate them I use to give your app report and continue behaviour.
It is based on work from James …

Obviously you still have to make sure to be allowed write the error.log to a directory where you can, so adding the following methods to EmergencyHandler will do that if you’re on OSX or Windows.

errorFilename
"Return the default log file name to be used for errors. 
By default we use error.log in the current directory, and it needs to be stored as a PortableFilename."

| compStrings |
compStrings := self getMakeLocalAppDataDirectory componentStrings.
compStrings add: 'error.log'.
^LogicalFilename fromComponents: compStrings

getMakeLocalAppDataDirectory

| localAppData |
Screen default platformName asSymbol = #'MS-Windows'
ifTrue: 
[localAppData := (OSSystemSupport concreteClass new
getVariable: 'LOCALAPPDATA') asFilename
asLogicalFileSpecification componentStrings]
ifFalse: 
[Screen default platformName asSymbol = #MacOSX
ifFalse: [Dialog warn: 'I am on UNIX but not OSX'].
localAppData := (OSSystemSupport concreteClass new getVariable: 'HOME')
asFilename asLogicalFileSpecification
componentStrings.
localAppData add: 'Library'].
localAppData add: ‘YourGreatAppNameNotMine’.
(LogicalFilename fromComponents: localAppData) asFilename exists
ifFalse: 
[(LogicalFilename fromComponents: localAppData) asFilename makeDirectory].
^(LogicalFilename fromComponents: localAppData) asLogicalFileSpecification

Hope this helps,…

@+Maarten,




On 19 Aug 2014, at 18:12, Steven Kelly <[hidden email]> wrote:

ErrorNotifier or a subclass handles the error, and ErrorDumper or a subclass
logs the error. I guess you want to override ErrorDumper>>openDumpStream to
make it open a socket to your server, rather than a file on disk. It's
probably polite to ask the user first, either for privacy reasons or roaming
bandwidth costs.

This could be a nice opportunity for a goodie, particularly if the server end
is also implemented in VW.

Steve
PS Windows XP look and feel? You might want to take a look at Holger's
wonderful Windows(7|8)LookPolicy packages.

Helge Nowak wrote:
Do you use the Runtime Packager? It replaces calls to open a
NotifierView with calls to a RuntimeEmergencyNotifier. More details how
to override that you'll find in the "Application Delivery" chapter of
the Application Developer's Guide.

-----Ursprüngliche Nachricht-----
Von: [hidden email] [[hidden email]] Im
Auftrag von Steve Cline
Gesendet: Dienstag, 19. August 2014 17:41
An: [hidden email]
Betreff: [vwnc] Trapping all errors in a stripped client?

I work on a fat-client application (VW 7.9), distributed as a stripped
image with parcels.  I want to trap any error to get the app to "phone
home" to let the development team know of the error, as we find that
our users do not always report them.  I am trying to find a hook in
what I think is the generic error dialog, but without success so far.
Here is the error window I see when I introduce a divide-by-zero into
the code:

<http://forum.world.st/file/n4773859/SystemError1.png>

I have searched through the image and the .pst files and do not find
the likely strings "System Error" or "Write Report", except as an
inexact match in the Wave-Server.pst, which I don't think is the right
place.

Can anyone suggest where I should look, or perhaps a better way to
structure a "catch everything" error handler?  I could wrap each
action/button/menu/validation, but was hoping to find a "catch them all
here" solution.

Thanks, Steve



--
View this message in context: http://forum.world.st/Trapping-all-
errors-in-a-stripped-client-tp4773859.html
Sent from the VisualWorks mailing list archive at Nabble.com.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

EmergencyHandler.zip (9K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Steve Cline
Thanks Helge, Steven, Tom & Maarten - all very helpful clues & suggestions. I am now digging through our home-grown build tool to see if I can find which notifier is used and if we use a modified version or subclass.  Will update as I learn something useful.
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Mark Pirogovsky-3
In reply to this post by Steven Kelly
Hi,
Awhile ago I created generalized error handler which looks like that:



Which I subclassed form the RuntimePackager.RuntimeDebugNotifier.
When user selects send Error report, we generate HTTP Post to our  server which will record the error and generate support request.

I probably can generalize it so it could be made into the goodie...if there is an interest out there.


--Mark



Steven Kelly wrote:
ErrorNotifier or a subclass handles the error, and ErrorDumper or a subclass
logs the error. I guess you want to override ErrorDumper>>openDumpStream to
make it open a socket to your server, rather than a file on disk. It's
probably polite to ask the user first, either for privacy reasons or roaming
bandwidth costs.

This could be a nice opportunity for a goodie, particularly if the server end
is also implemented in VW.

Steve
PS Windows XP look and feel? You might want to take a look at Holger's
wonderful Windows(7|8)LookPolicy packages.

Helge Nowak wrote: 
Do you use the Runtime Packager? It replaces calls to open a
NotifierView with calls to a RuntimeEmergencyNotifier. More details how
to override that you'll find in the "Application Delivery" chapter of
the Application Developer's Guide.

-----Ursprüngliche Nachricht-----
Von: [hidden email] [[hidden email]] Im
Auftrag von Steve Cline
Gesendet: Dienstag, 19. August 2014 17:41
An: [hidden email]
Betreff: [vwnc] Trapping all errors in a stripped client?

I work on a fat-client application (VW 7.9), distributed as a stripped
image with parcels.  I want to trap any error to get the app to "phone
home" to let the development team know of the error, as we find that
our users do not always report them.  I am trying to find a hook in
what I think is the generic error dialog, but without success so far.
Here is the error window I see when I introduce a divide-by-zero into
the code:

<http://forum.world.st/file/n4773859/SystemError1.png>

I have searched through the image and the .pst files and do not find
the likely strings "System Error" or "Write Report", except as an
inexact match in the Wave-Server.pst, which I don't think is the right
place.

Can anyone suggest where I should look, or perhaps a better way to
structure a "catch everything" error handler?  I could wrap each
action/button/menu/validation, but was hoping to find a "catch them all
here" solution.

Thanks, Steve



--
View this message in context: http://forum.world.st/Trapping-all-
errors-in-a-stripped-client-tp4773859.html
Sent from the VisualWorks mailing list archive at Nabble.com.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
____________________________________________________________
4-Day Florida Getaway
Enter the Sweepstakes for a Chance to Win! Hurry, Ends August 31.
http://thirdpartyoffers.netzero.net/TGL3265/53f3b49b4c4013498146dmp06duc



_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Steven Kelly

Thanks Mark, that definitely sounds interesting! I’ve had that on my todo list for many years, but a client with a strict policy against any “phoning home” preventing me from starting.

 

All the best,

Steve

 

BTW: Loose => Lose

 

From: Mark Pirogovsky [mailto:[hidden email]]
Sent: Tuesday, August 19, 2014 11:59 PM
To: [hidden email]
Cc: Steven Kelly; [hidden email]
Subject: Re: [vwnc] Trapping all errors in a stripped client?

 

Hi,
Awhile ago I created generalized error handler which looks like that:



Which I subclassed form the RuntimePackager.RuntimeDebugNotifier.
When user selects send Error report, we generate HTTP Post to our  server which will record the error and generate support request.

I probably can generalize it so it could be made into the goodie...if there is an interest out there.


--Mark


Steven Kelly wrote:

ErrorNotifier or a subclass handles the error, and ErrorDumper or a subclass
logs the error. I guess you want to override ErrorDumper>>openDumpStream to
make it open a socket to your server, rather than a file on disk. It's
probably polite to ask the user first, either for privacy reasons or roaming
bandwidth costs.
 
This could be a nice opportunity for a goodie, particularly if the server end
is also implemented in VW.
 
Steve
PS Windows XP look and feel? You might want to take a look at Holger's
wonderful Windows(7|8)LookPolicy packages.
 
Helge Nowak wrote: 
Do you use the Runtime Packager? It replaces calls to open a
NotifierView with calls to a RuntimeEmergencyNotifier. More details how
to override that you'll find in the "Application Delivery" chapter of
the Application Developer's Guide.
 
-----Ursprüngliche Nachricht-----
Von: [hidden email] [[hidden email]] Im
Auftrag von Steve Cline
Gesendet: Dienstag, 19. August 2014 17:41
An: [hidden email]
Betreff: [vwnc] Trapping all errors in a stripped client?
 
I work on a fat-client application (VW 7.9), distributed as a stripped
image with parcels.  I want to trap any error to get the app to "phone
home" to let the development team know of the error, as we find that
our users do not always report them.  I am trying to find a hook in
what I think is the generic error dialog, but without success so far.
Here is the error window I see when I introduce a divide-by-zero into
the code:
 
<http://forum.world.st/file/n4773859/SystemError1.png>
 
I have searched through the image and the .pst files and do not find
the likely strings "System Error" or "Write Report", except as an
inexact match in the Wave-Server.pst, which I don't think is the right
place.
 
Can anyone suggest where I should look, or perhaps a better way to
structure a "catch everything" error handler?  I could wrap each
action/button/menu/validation, but was hoping to find a "catch them all
here" solution.
 
Thanks, Steve
 
 
 
--
View this message in context: http://forum.world.st/Trapping-all-
errors-in-a-stripped-client-tp4773859.html
Sent from the VisualWorks mailing list archive at Nabble.com.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
 
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
 
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
____________________________________________________________
4-Day Florida Getaway
Enter the Sweepstakes for a Chance to Win! Hurry, Ends August 31.
http://thirdpartyoffers.netzero.net/TGL3265/53f3b49b4c4013498146dmp06duc
 

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Trapping all errors in a stripped client?

Steve Cline
In reply to this post by Steve Cline
Correction - VW 7.8.  But I don't think that will make a difference in the suggestions. I did hear from Cincom that it is not a standard dialog, so our build process must be introducing it in some way.