<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>46338</bug_id>
          
          <creation_ts>2010-09-22 21:42:51 -0700</creation_ts>
          <short_desc>REGRESSION: in Hotmail, a hang occurs after placing caret in the message body</short_desc>
          <delta_ts>2010-09-23 21:26:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Petersen">c.petersen87</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>harrison</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>283506</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2010-09-22 21:42:51 -0700</bug_when>
    <thetext>1) On 10.6.4  with Safari 5.0.2 installed, launch Webkit NB ( r68077 )
2) Login to your Hotmail account
3) Create a new rich text message
4) Click in the message body of new message and a hang occurs


Analysis of sampling Safari (pid 9482) every 1 millisecond
Call graph:
    3273 Thread_248688   DispatchQueue_1: com.apple.main-thread  (serial)
      3273 0x22ffffffff
        3273 JSC::RegExp::match(JSC::UString const&amp;, int, WTF::Vector&lt;int, 32ul&gt;*)
          805 0x52ced7559394
          435 0x52ced755937d
          433 0x52ced75593b5
          404 0x52ced7559310
          401 0x52ced755939a
          394 0x52ced75593c3
          388 0x52ced755936f
          13 0x52ced7559385
    3273 Thread_248698   DispatchQueue_2: com.apple.libdispatch-manager  (serial)
      3273 start_wqthread
        3273 _pthread_wqthread
          3273 _dispatch_worker_thread2
            3273 _dispatch_queue_invoke
              3273 _dispatch_mgr_invoke
                3273 kevent
    3273 Thread_248700: WebCore: IconDatabase
      3273 thread_start
        3273 _pthread_start
          3273 WebCore::IconDatabase::iconDatabaseSyncThread()
            3273 WebCore::IconDatabase::syncThreadMainLoop()
              3273 _pthread_cond_wait
                3273 __semwait_signal
    3273 Thread_248703: Safari: SafeBrowsingManager
      3273 thread_start
        3273 _pthread_start
          3273 0x10002f9d1
            3273 0x10002fa41
              3273 CFRunLoopRunSpecific
                3273 __CFRunLoopRun
                  3213 mach_msg
                    3213 mach_msg_trap
                  31 0x10004e059
                    31 0x100054492
                      20 0x1000547bf
                        19 0x100054b03
                          19 0x1000327e2
                            19 sqlite3_step
                              19 sqlite3VdbeExec
                                8 sqlite3VdbeExec
                                5 sqlite3BtreeMovetoUnpacked
                                3 sqlite3VdbeIdxRowid
                                  1 sqlite3BtreeParseCellPtr
                                  1 sqlite3VdbeMemRelease
                                  1 sqlite3VdbeSerialGet
                                2 sqlite3VdbeSerialGet
                                1 sqlite3BtreeNext
                                  1 getAndInitPage
                                    1 sqlite3PagerAcquire
                                      1 unixRead
                                        1 pread
                        1 0x100054ac9
                          1 sqlite3_column_int
                      11 0x100054830
                        11 0x100054e9b
                          11 0x1000327e2
                            11 sqlite3_step
                              11 sqlite3VdbeExec
                                5 sqlite3BtreeMovetoUnpacked
                                  3 sqlite3BtreeMovetoUnpacked
                                  1 getAndInitPage
                                    1 sqlite3PagerAcquire
                                      1 unixRead
                                        1 pread
                                  1 sqlite3GetVarint
                                4 sqlite3VdbeExec
                                2 sqlite3VdbeIdxRowid
                  29 __CFRunLoopDoSources0
                    25 MultiplexerSource::perform()
                      24 URLConnectionClient::processEvents()
                        24 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long)
                          24 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long)
                            24 URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*)
                              24 0x10005525c
                                15 0x10005545a
                                  15 0x100056512
                                    15 0x100056897
                                      15 0x10005658e
                                        15 sqlite3_exec
                                          15 sqlite3_step
                                            15 sqlite3VdbeExec
                                              15 sqlite3VdbeHalt
                                                15 sqlite3BtreeCommitPhaseTwo
                                                  15 pager_end_transaction
                                                    9 unixDelete
                                                      9 unlink
                                                        9 __unlink
                                                    6 closeUnixFile
                                                      6 close
                                6 0x1000554c9
                                  6 0x100056b40
                                    6 0x100058eef
                                      6 0x100059037
                                        6 0x1000327e2
                                          6 sqlite3_step
                                            6 sqlite3VdbeExec
                                              6 sqlite3VdbeHalt
                                                6 sqlite3BtreeCommitPhaseOne
                                                  6 sqlite3PagerCommitPhaseOne
                                                    4 unixSync
                                                      4 fsync
                                                    2 syncJournal
                                                      2 unixSync
                                                        2 fsync
                                3 0x10005543a
                                  3 0x1000323e6
                                    3 0x1000327e2
                                      3 sqlite3_step
                                        3 sqlite3VdbeExec
                                          3 sqlite3BtreeBeginTrans
                                            3 sqlite3PagerAcquire
                                              3 sqlite3PcacheFetch
                                                3 pcache1Fetch
                      1 URLConnectionLoader::processEvents()
                        1 URLConnectionLoader::LoaderConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XLoaderEvent, XLoaderEventParams&gt;*, long)
                          1 URLConnectionLoader::loaderScheduleOriginLoad(_CFURLRequest const*)
                            1 HTTPProtocol::createAndOpenStream()
                              1 HTTPProtocol::createStream()
                                1 HTTPProtocol::addCookies(__CFHTTPMessage*, _CFURLRequest const*)
                                  1 _CFHTTPCookieStorageGetDefault
                                    1 CFHTTPCookieStorageCreateFromFile
                                      1 HTTPCookieStorage::initialize(__CFURL const*, OpaqueCFHTTPCookieStorage*)
                                        1 PrivateHTTPCookieStorage::copyStorage(__CFAllocator const*, __CFURL const*)
                                          1 CFDictionaryGetValue
                                            1 CFBasicHashFindBucket
                                              1 ___CFBasicHashFindBucket1
                                                1 __CFURLHash
                                                  1 CFURLCopyLastPathComponent
                                                    1 _rangeOfLastPathComponent
                                                      1 CFStringFindWithOptions
                                                        1 CFStringFindWithOptionsAndLocale
                    4 __CFSocketPerformV0
                      4 __CFSocketDoCallback
                        4 SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, void*)
                          4 SocketStream::socketCallback(__CFSocket*, unsigned long, __CFData const*, void const*)
                            4 SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*)
                              4 _CFStreamSignalEvent
                                4 CFRunLoopContainsSource
                                  4 CFSetContainsValue
                                    4 CFBasicHashGetCountOfKey
                                      4 ___CFBasicHashFindBucket1
    3273 Thread_248704
      3273 thread_start
        3273 _pthread_start
          3273 __NSThread__main__
            3273 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:]
              3273 CFRunLoopRunSpecific
                3273 __CFRunLoopRun
                  3273 mach_msg
                    3273 mach_msg_trap
    3273 Thread_248707
      3273 thread_start
        3273 _pthread_start
          3273 __CFSocketManager
            3273 select$DARWIN_EXTSN
    3273 Thread_248714: Safari: SnapshotStore
      3273 thread_start
        3273 _pthread_start
          3273 0x10004738d
            3273 0x10004750f
              3273 0x1001be851
                3273 WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, double)
                  3273 _pthread_cond_wait
                    3273 __semwait_signal
    3273 Thread_248764: WebCore: LocalStorage
      3273 thread_start
        3273 _pthread_start
          3273 WebCore::LocalStorageThread::threadEntryPoint()
            3273 WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, double)
              3273 _pthread_cond_wait
                3273 __semwait_signal
    3273 Thread_248818
      3273 thread_start
        3273 _pthread_start
          3273 thread_fun
            3273 CA::Render::Server::server_thread(void*)
              3273 mach_msg
                3273 mach_msg_trap
    2705 Thread_248922
      2705 start_wqthread
        2705 _pthread_wqthread
          2705 __workq_kernreturn
    568 Thread_248699
      568 start_wqthread
        568 _pthread_wqthread
          568 __workq_kernreturn
    15 Thread_248933
      15 thread_start
        14 _pthread_start
          14 si_async_launchpad
            14 si_addrinfo
              14 search_addrinfo
                14 _mdns_addrinfo
                  14 _mdns_search
                    14 _mdns_query_mDNSResponder
                      14 kevent
        1 __spin_lock

Total number in stack (recursive counted multiple, when &gt;=5):
        8       _pthread_start
        8       thread_start
        5       sqlite3VdbeExec
        5       sqlite3_step

Sort by top of stack, same collapsed (when &gt;= 5):
        __semwait_signal        9819
        mach_msg_trap        9759
        kevent        3287
        __workq_kernreturn        3273
        select$DARWIN_EXTSN        3273
        0x52ced7559394        805
        0x52ced755937d        435
        0x52ced75593b5        433
        0x52ced7559310        404
        0x52ced755939a        401
        0x52ced75593c3        394
        0x52ced755936f        388
        0x52ced7559385        13
        sqlite3VdbeExec        12
        __unlink        9
        sqlite3BtreeMovetoUnpacked        8
        close        6
        fsync        6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283755</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-23 10:34:40 -0700</bug_when>
    <thetext>There was another fix for hanging in RegExp::match() made in r68100 (for bug 46189).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283784</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2010-09-23 10:59:13 -0700</bug_when>
    <thetext>Thanks, Alexey. I will test this in the next Webkit NB and verify it.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>