CLOSED FIXED 46338
REGRESSION: in Hotmail, a hang occurs after placing caret in the message body
https://bugs.webkit.org/show_bug.cgi?id=46338
Summary REGRESSION: in Hotmail, a hang occurs after placing caret in the message body
Chris Petersen
Reported 2010-09-22 21:42:51 PDT
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&, int, WTF::Vector<int, 32ul>*) 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<XClientEvent, XClientEventParams>*, long) 24 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, 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<XLoaderEvent, XLoaderEventParams>*, 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&, 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&, 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 >=5): 8 _pthread_start 8 thread_start 5 sqlite3VdbeExec 5 sqlite3_step Sort by top of stack, same collapsed (when >= 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
Attachments
Alexey Proskuryakov
Comment 1 2010-09-23 10:34:40 PDT
There was another fix for hanging in RegExp::match() made in r68100 (for bug 46189).
Chris Petersen
Comment 2 2010-09-23 10:59:13 PDT
Thanks, Alexey. I will test this in the next Webkit NB and verify it.
Note You need to log in before you can comment on or make changes to this bug.