Friday, September 2, 2011

Wishing for a WER

Some mornings are better than others.

On some mornings, the sky is sunny and clear, the winds calm and the fish biting. On other mornings, the outer bands of Irene are whipping up waterspouts.

On some mornings, the email inbox is empty.

On other mornings, it contains three thousand diagnostic messages recorded by a single copy of Foxhound over a period of seven months...

1	2011-02-24 15:57:38.102 Full Build ----- 703 410c9(410eh1) SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p004': [Sybase][ODBC Driver][SQL Anywhere]Statement interrupted by user [---]
2	2011-02-24 15:57:38.645 Full Build ----- 703 400a1(400eh1) SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p004': [Sybase][ODBC Driver][SQL Anywhere]Statement interrupted by user
3	2011-02-25 00:18:14.182 Full Build 3832a 1000000036 202a3a(202eh1) Connection timeout for target DSN xxx after 18.4s (timeout threshold is 15.0s; see Foxhound Options) - 1000000073
4	2011-02-25 13:03:45.312 Full Build 3832a 1000033533 204.f7(204eh-c7) SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Database server not found [1-xxx]
...
3108	2011-08-31 12:08:35.935 Full Build 3832a 12 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3109	2011-08-31 12:08:35.937 Full Build 3832a 12 180e3(180eh2) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3110	2011-08-31 12:09:49.714 Full Build 3832a 35 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3111	2011-08-31 12:09:49.715 Full Build 3832a 35 180e3(180eh2) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3112	2011-08-31 12:12:40.881 Full Build 3832a 90 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3113	2011-08-31 12:12:40.882 Full Build 3832a 90 180e3(180eh2) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3114	2011-08-31 12:13:53.590 Full Build 3832a 106 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3115	2011-08-31 12:13:53.592 Full Build 3832a 106 180e3(180eh2) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3116	2011-08-31 12:16:21.543 Full Build 3832a 160 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3117	2011-08-31 12:23:22.251 Full Build 3832a 279 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3118	2011-08-31 12:29:06.292 Full Build 3832a 423 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3119	2011-08-31 12:56:07.854 Full Build 3832a 786 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3120	2011-08-31 13:13:00.040 Full Build 3832a 9 182a3(182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3121	2011-08-31 13:13:00.041 Full Build 3832a 9 180e3(180eh2) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3122	2011-08-31 14:28:40.743 Full Build 3832a 1000000022 202a3a(202eh1) Connection timeout for target DSN xxx after 21.5s (timeout threshold is 15.0s; see Foxhound Options) - 1000000023
3123	2011-08-31 14:39:40.291 Full Build 3832a 1000003243 204.j5(204eh-d3) SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p001': [Sybase][ODBC Driver][SQL Anywhere]Connection was terminated [1-xxx]
3124	2011-08-31 14:40:09.599 Full Build 3832a 1000003648 750d9d(750eh1) SQLCODE = -185, SQLSTATE = 21000, ERRORMSG() = SELECT returns more than one row
Of course that would arrive one day after writing about Microsoft's Windows Error Reporting (WER) service and its jaw-dropping ability to receive and analyze 100 billion error reports per day.

Maybe it's punishment for unfairly associating iAnywhere Solution's Crash Report service with Dogbert-as-Tech-Support.

[sigh]


What I really need is my own WER thingie, and an army of programmers.

What I've got, is Wordpad and a to-do list that has grown longer yet again, wiping out the gains made over the past few days...
-- Investigate Build 3832a: Pair of errors, multiple occurrences: Value 46116860184273880000 out of range for destination
3108  2011-08-31 12:08:35.935 Full Build 3832a 12  182a3 (182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination
3109  2011-08-31 12:08:35.937 Full Build 3832a 12  180e3 (180eh2) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination

-- Investigate Build 3832a: Single error, multiple occurrences: Value 46116860184273880000 out of range for destination
3116  2011-08-31 12:16:21.543 Full Build 3832a 160 182a3 (182eh1) SQLCODE = -158, SQLSTATE = 22003, ERRORMSG() = Value 46116860184273880000 out of range for destination

-- Investigate Build 3832a: Statement interrupted by user
1     2011-02-24 15:57:38.102 Full Build ----- 703        410c9    (410eh1)   SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p004': [Sybase][ODBC Driver][SQL Anywhere]Statement interrupted by user [---]
2     2011-02-24 15:57:38.645 Full Build ----- 703        400a1    (400eh1)   SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p004': [Sybase][ODBC Driver][SQL Anywhere]Statement interrupted by user
1018  2011-07-06 11:56:52.457 Full Build ----- 1000073088 204.h6b  (204eh-c9) SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p001': [Sybase][ODBC Driver][SQL Anywhere]Statement interrupted by user [---]
2941  2011-08-25 21:49:20.188 Full Build ----- 1000725360 204.i8   (204eh-d1) SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p002': [Sybase][ODBC Driver][SQL Anywhere]Statement interrupted by user [---]

-- Investigate Build 3832a: The Famous "WTF?" Non-Error Error: SQLCODE = 0
12    2011-04-21 14:31:17.944 Full Build ----- 39717      050a2    (050eh1)   SQLCODE = 0, SQLSTATE = 00000, ERRORMSG() =  [---]
111   2011-06-19 01:33:10.519 Full Build ----- 1000313855 211a1    (211eh1)   SQLCODE = 0, SQLSTATE = 00000, ERRORMSG() =  [---]
132   2011-06-20 18:02:57.524 Full Build ----- 1000397718 211a1    (211eh1)   SQLCODE = 0, SQLSTATE = 00000, ERRORMSG() =  [---]
951   2011-07-05 15:12:06.645 Full Build ----- 2430       310a3    (310eh1)   SQLCODE = 0, SQLSTATE = 00000, ERRORMSG() =  [---]
1014  2011-07-06 11:24:37.258 Full Build ----- 1000000106          (211eh1)   SQLCODE = 0, SQLSTATE = 00000, ERRORMSG() =  [---]
2042  2011-07-29 07:56:44.863 Full Build ----- 1000397677 204.i8   (204eh-d1) SQLCODE = 0, SQLSTATE = 00000, ERRORMSG() =  [---]

-- Investigate Build 3832a: Many occurrences: SELECT returns more than one row
19    2011-04-26 11:00:14.647 Full Build 3832a 1000764625 750d9d   (750eh1)   SQLCODE = -185, SQLSTATE = 21000, ERRORMSG() = SELECT returns more than one row

-- Investigate Build 3832a: Multiple occurrences of most examples: Remote server does not have the ability to support this statement
83    2011-05-29 15:55:56.206 Full Build 3832a 1000000028 204.e4c2 (204eh-c6) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
1110  2011-07-07 02:28:32.580 Full Build 3832a 1000110600 204.e4d1 (204eh-c6) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
1973  2011-07-27 17:06:29.237 Full Build 3832a 1000310067 204.e4e1 (204eh-c6) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
2215  2011-08-01 13:37:14.092 Full Build 3832a 1000561341 204.e4f1 (204eh-c6) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
2250  2011-08-03 04:50:08.216 Full Build 3832a 1000650389 204.e4g1 (204eh-c6) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
1483  2011-07-10 10:20:23.304 Full Build 3832a 1000280647 204.e7   (204eh-c7) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
1706  2011-07-13 11:42:11.235 Full Build 3832a 1000419934 204.e9   (204eh-c7) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
1458  2011-07-10 06:29:22.895 Full Build 3832a 1000272095 204.f7   (204eh-c7) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [1-xxx]
89    2011-06-17 12:33:33.958 Full Build 3832a 1000000027 204.g9   (204eh-d4) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [2-Leia data-warehouse]
1065  2011-07-06 19:38:50.877 Full Build ----- 1000096009 204.h6b  (204eh-c9) SQLCODE = -706, SQLSTATE = WO012, ERRORMSG() = Remote server does not have the ability to support this statement [---]

-- Investigate Build 3832a: Multiple occurrences: Unexpected database number ""
1139  2011-07-07 06:45:32.420 Full Build 3832a 1000120133 204.c4   (204eh-b3) Unexpected database number "" [1-xxx]

-- Investigate Build 3832a: Multiple occurrences: Unexpected ConnCount ""
1462  2011-07-10 07:02:23.225 Full Build 3832a 1000272095 204c5a1a (204eh-b4) Unexpected ConnCount "" [1-xxx]

-- Investigate Build 3832a: Single occurrence: (fatal) @string_target_current_timestamp = ""
2987  2011-08-27 08:01:54.809 Full Build 3832a 1000792423 204.c6   (204eh-b5) (fatal) @string_target_current_timestamp = "" [1-xxx]

-- Investigate Build 3832a: Pair of errors, single occurrence: CREATE PROCEDURE rroad_database_properties failed. followed by SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p001': [empty]
1781  2011-07-16 12:51:43.072 Full Build 3832a 1000592808 702.a2   (702eh4) CREATE PROCEDURE rroad_database_properties failed. SQLSTATE = WO005, ERRORMSG() = Server 'p001':  [1-xxx]
1782  2011-07-16 12:51:43.074 Full Build 3832a 1000592808 204.d6b  (204eh-d7) SQLCODE = -660, SQLSTATE = WO005, ERRORMSG() = Server 'p001':  [1-xxx]
All of these exceptions occurred in code that's 122 builds out of date, but that doesn't matter: they all have to be investigated in case they are new.

Starting with the "SELECT returns more than one row"... that's gotta be something boneheaded, how could it get past Quality Assurance?

Some of them are going to remain mysteries, like "SQLCODE = 0, SQLSTATE = 00000". That one's been haunting me for years... nobody has an answer to the question What does an EXCEPTION for SQLCODE = 0 mean?

The "Value 46116860184273880000 out of range for destination" may already be solved by code changes to ignore bogus property values returned by SQL Anywhere. Or maybe not... it has been a challenge retrofitting edits into an application originally written under the assumption that calls to PROPERTY(), DB_PROPERTY() and CONNECTION_PROPERTY() never ever returned garbage, not once...

not ever...


Some mornings, I feel like a coffee.

Other mornings, I feel like the mug...

Dilbert.com


1 comment:

Anonymous said...

LOL!

Fortunately, as you're associating Stupid Dilbert with your own report service, now you don't have to fear any more punishment:)

Thanks for making my day!
Volker