Project

General

Profile

Actions

Bug #465

closed

Wt session crashed after clicking a button twice rapidly to bring up a message box

Added by Anonymous over 13 years ago. Updated over 13 years ago.

Status:
Closed
Priority:
Urgent
Assignee:
Target version:
-
Start date:
08/11/2010
Due date:
% Done:

0%

Estimated time:

Description

A Wt session crashed when clicking on a button twice rapidly to bring up a message box. I have attached a modified version of DialogExample.C to illustrate this bug. This file has the following two modifications:

  1. Enabled server push by adding "enableUpdates(true);" to the constructor, i.e., DialogExample::DialogExample.
  2. Added "sleep(3);" to the beginning of DialogExample::messageBox1.

I also modified wt_config.xml, so that the num-threads attribute is set to 20, and dedicated process is used.

To produce the bug, follow the steps below:

  1. Launch DialogExample.
  2. Click the "One liner" button twice rapidly. (This will call "Wt::WMessageBox::show" to invoke Wt::WDialog::exec that blocks the event loop.)
  3. The session crashed and then restarted a new session.
  4. Observed the following error messages in the Apache error log file:
    [error] decodeSignal(): signal 's2' not exposed
    [error] decodeSignal(): signal 's2' not exposed
    [notice] "Caught SIGCHLD: pid=3433, stat=11"
    [notice] "Deleting session: c1zRLLzMxFzNqE5e"
    [notice] "Spawned dedicated process for RoywUzxxtVIAxFFi: pid=3483"
    [notice] "Wt: initializing session process"

Files

DialogExample.zip (1.98 KB) DialogExample.zip Anonymous, 08/11/2010 10:04 PM
Actions #1

Updated by Thian-Peng Ter over 13 years ago

I should mention that I ran the Wt application on Wt 3.1.2.

Actions #2

Updated by Thian-Peng Ter over 13 years ago

Another thing to add: I ran this using FastCGI.

Actions #3

Updated by Thian-Peng Ter over 13 years ago

I ran this on embedded Linux.

Actions #4

Updated by Thian-Peng Ter over 13 years ago

Let me clarify why I added a 3 seconds sleep. The Wt application that is being written runs on an embedded device. The system on the device may sometimes be slow, depending on the workload of the device. The 3 seconds sleep is there to reflect the slowness and show that clicking the button multiple times causes Wt to crash.

Actions #5

Updated by Thian-Peng Ter over 13 years ago

I found that this bug only occurred if using Firefox or Google Chrome. Internet Explorer 8 worked fine.

Actions #6

Updated by Koen Deforche over 13 years ago

  • Status changed from New to Resolved
  • Assignee set to Koen Deforche
  • Priority changed from High to Urgent

The logic of handling recursive eventloops and an incoming poll request was not compatible. Is fixed !

Actions #7

Updated by Thian-Peng Ter over 13 years ago

Thank you for your timely response. The patch for WebSession.C has been applied and tested. The Wt session no longer crashes! Many thanks!

Actions #8

Updated by Pieter Libin over 13 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF