[Webkit-unassigned] [Bug 28702] New: Workers do not exit after async operations

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Aug 24 22:38:07 PDT 2009


           Summary: Workers do not exit after async operations
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebCore JavaScript
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: atwilson at chromium.org
                CC: dimich at chromium.org, levin at chromium.org

The dedicated worker code has a mechanism in place where DedicatedWorkerContext
reports pending activity back to the parent Worker object every time it
receives a message. The idea is that if the parent worker object is no longer
reachable, and the worker thread goes idle, WebKit will shut down the worker
thread because it has been orphaned.

The problem is that this mechanism
(WorkerMessagingProxy::reportPendingActivity()) only triggers when a message is
received - if the worker performs some async operation, there's nothing to
notify the parent worker object when the async operation completes and the
worker goes idle again unless another message is sent to the worker.

The net result is (effectively) a memory leak - the worker context hangs around
in an unreachable state until the parent page closes, because it appears that
the page always has pending activity.

BTW - the HTML5 spec does not make any guarantees about when an unreachable
Worker is shut down - once a Worker is unreachable, it's up to the UA to decide
whether to shut it down or not.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list