lederhosen: (Default)
lederhosen ([personal profile] lederhosen) wrote2009-06-25 08:32 pm
Entry tags:

Confusing tech-support responses

"This behaviour is intentional. Also, we fixed it in the next release." - SAS tech support guy in response to my bug report.

(Am coming to the conclusion that SAS EG works really well if you know exactly what your program needs to do and can debug each step perfectly before you create the next one, and... not so well otherwise.)

[identity profile] quatranoctal.livejournal.com 2009-06-25 11:22 am (UTC)(link)
Dare I ask what behaviour? Is it perhaps that fact that the Filter and Query module doesn't behave like any of the other modules, or the way that the relationship between variable names in one particular window and the variables they correspond to is anything but simple?

[identity profile] lederhosen.livejournal.com 2009-06-25 01:52 pm (UTC)(link)
Query Tool. Specifically, a bug that works like this:

Working, debugged code:

A->B => Z

A=code (or other) that produces 2 datasets X,Y
B=Query Tool operation that joins X & Y by specified match variables
Z=final output

Without touching B, modify A to A', a buggy version that breaks X (specifically, in such a manner that it's missing the required match variable. Rerun:

A'->B => error message, B fails because it's missing a variable.

Realise error. Revert A' back to A and rerun:

A->B => Z' (no error messages, and in some cases no warnings)

But even though we've just undone the only thing we changed, Z' is not equal to Z. What happens is that when we attempt to run B on the broken input, it notices that one of the match variables is missing and helpfully deletes the requirement to join with that match variable. If this leaves you with no match variables specified, you'll get a warning about a Cartesian join, but if you had other matches based on variables still in the bad dataset, you won't even get that.

I discovered this the hard way, in a large and complex program where B was quite a few steps downstream from A. Found the original bug and fixed it in a few minutes, then spent hours trying to figure out why it wasn't working any more, because it's not exactly intuitive to look at the bit of the program that I hadn't modified (except indirectly and unknowingly).

[identity profile] nefaria.livejournal.com 2009-06-25 04:14 pm (UTC)(link)
Ooo, we're getting closer to quantum computing where the code changes based on whether you observe it or not!

I plan to retire by then. "Hey you, did you fix that calculation error yet?" "Sorry boss, I ran it through the debugger and its state collapsed. We need a new calculation."
Edited 2009-06-25 16:17 (UTC)