Fwd: Possible Problem in Spawning Warning Messages

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

Fwd: Possible Problem in Spawning Warning Messages

Joseph Kulisics

---------- Forwarded message ----------
From: Joseph Kulisics <[hidden email]>
Date: Mon, Jun 6, 2016 at 6:48 PM
Subject: Fwd: Possible Problem in Spawning Warning Messages
To: [hidden email]


I have additional information on the #general slack channel on June 3. In short, the problem appears to be that the test runner keeps executing instructions after the initial error and opens a window for each subsequent error, which could be a lot of windows if the error is in the middle of a parse. Here are the screen shots and interaction demonstrating the phenomenon. The screen shots corresponding to the discussion are 2, 3, and 4 at the end of the e-mail.


Joseph Kulisics [9:53 PM] Star this message
@emaringolo: Actually, now that I look at it, it looks like the program kept executing after the first error. Is that possible?

Esteban Maringolo [9:54 PM] Star this message
Unless you're forking processes it shouldn't

[9:54] Star this message
Zinc HTTP client runs on the thread you execute it, so it won't fork anything.

Joseph Kulisics [9:55 PM] Star this message
I'm not forking anything, but let me show you the windows:

Joseph Kulisics [9:55 PM] Star this file
uploaded an image: PharoScreenshot.2.png 
Add Comment

Joseph Kulisics [9:56 PM] Star this message
This is the code that was executing. The window is the middle one in the stack.

dionisiydk [9:56 PM] Star this message
It could happen if error is signaled inside announcement processing

Joseph Kulisics [9:56 PM] Star this message
The first line produces the `ZnHttpUnsuccessful` error

Joseph Kulisics [9:57 PM] Star this file
uploaded an image: PharoScreenshot.3.png 
Add Comment

Joseph Kulisics [9:57 PM] Star this message
The error is what opens the bottom window.

[9:58] Star this message
The code in the middle window resumes and produces an error at the second line, which raises the middle window, which is pictured first

Esteban Maringolo [9:58 PM] Star this message
Nothing looks "strange" there

Joseph Kulisics [9:58 PM] Star this message
Finally, the top window is spawned by the last line of code, which attempts to read a result key from a dictionary parsed from JSON

Esteban Maringolo [9:58 PM] Star this message
other than the dashes in the method comment

Joseph Kulisics [9:59 PM] Star this file
uploaded an image: PharoScreenshot.4.png 
Add Comment

Joseph Kulisics [9:59 PM] Star this message
So the single test appears to have raised all three of these windows by continuing to run after the first error

[10:00] Star this message
I couldn't really inspect the stack of windows on the JSON parsing errors because it was just too deep







---------- Forwarded message ----------
From: Joseph Kulisics <[hidden email]>
Date: Fri, Jun 3, 2016 at 9:38 PM
Subject: Possible Problem in Spawning Warning Messages
To: [hidden email]


I post my question/report to the Slack pharo #general channel, and someone advised me to e-mail the list. I've attached the referenced screenshots.

​Here is the interaction:


Joseph Kulisics [9:10 PM] 
Hi. I started using Pharo 5 about a week ago, and I've noticed some peculiar behavior with debugging. When I get an error in a message send, the system now seems to open a warning window for every message in the stack, which can amount to hundreds of messages. In Pharo 4, only one warning opened. In addition, when I select a warning message, I get the debugger with no stack; the stack no longer seems to be aggregated and available to the debugger instance.

Is there a system setting that controls the behavior? I looked around---I tried turning off the Glamorous tools---but nothing seemed to have any effect. The behavior is very difficult to work with. Is there an way to use the interface to at least close all of the warning windows when an error occurs?

Thanks.

Esteban Maringolo [9:12 PM] 
@offray: Yeap, and I'd also like something like jOOQ for Pharo, it could be done using Glorp internals

Offray Vladimir Luna Cárdenas [9:13 PM] 
@emaringolo: what is jOOQ ?

[9:14] 

Esteban Maringolo [9:14 PM] 
Let's continue in #databases

Offray Vladimir Luna Cárdenas [9:14 PM] 
Ohh ok

Esteban Maringolo [9:18 PM] 
Joseph, it seem like every action in the debugger is triggering a new debugger, is that what you mean?

Joseph Kulisics [9:18 PM] 
I'm not really about the description at that low a level. I have a testing suite, and when I click on the icon next to a single test to run it, a failing test will open warning windows.

[9:19] 
In Pharo 4, I got one warning for the failing message send

[9:19] 
Now I seem to get one for each message in the stack

[9:19] 
If I click on the message in the warning window, a debugger opens

Esteban Maringolo [9:19 PM] 
Are you running the tests using the Test Runner?

Joseph Kulisics [9:19 PM] 
But the debugger only has one message in the top pane

[9:20] 
Both with the test runner and clicking the icon next to the test in a browser

[9:20] 
In the test runner, I I click a test in error, I get a slew of warning windows

Joseph Kulisics [9:24 PM] 
uploaded an image: PharoScreenshot.png 
Add Comment

Joseph Kulisics [9:24 PM] 
uploaded an image: PharoScreenshot.1.png 
Add Comment

Joseph Kulisics [9:25 PM] 
The top image shows the stack of windows that opened in response to selecting the test highlighted in the second image

[9:25] 
(I changed a system setting to open a full debugger instead of a warning window in response to an error, but the behavior is identical when warning windows appear first.)

[9:26] 
As I mentioned, the behavior from the TestRunner is the same. The only difference is that the warnings are suppressed until you select a test in error.

[9:26] 
In Pharo 4, I'd have had one window for the error.

[9:27] 
This example isn't too bad---there are only three windows on the stack---but I've had cases where a test triggered a stack of a couple of hundred warning windows

dionisiydk [9:27 PM] 
Could it be that you test fork multiple processes?

Joseph Kulisics [9:27 PM] 
I either have to exit each one, or I have to kill the image

[9:28] 
@dionisiydk: I don't think so. I don't create a new process in the code, but I can't speak for the underlying libraries like Zinc. In any case, as you can see above, the titles of the three windows are different.

[9:29] 
@dionisiydk: In addition, each window in the stack contains exactly one message, but in exploring the data, the messages all appear to deal with the same set of objects used by the tests

[9:31] 
As I mentioned before, I made the switch to Pharo 5 last week. Before last week, the same tests produced a single error message.

[9:31] 
I did reload the underlying libraries as part of moving my software into the new image, so maybe the underlying libraries changed.

Esteban Maringolo [9:33 PM] 
Could you write a mail to the mailing list? `[hidden email]`




PharoScreenshot.2.png (214K) Download Attachment
PharoScreenshot.3.png (140K) Download Attachment
PharoScreenshot.4.png (79K) Download Attachment