Closed Bug 228623 Opened 21 years ago Closed 20 years ago

[patch] Bookmark update code causes periodic hangs in camino

Categories

(Camino Graveyard :: Bookmarks, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX
Camino0.9

People

(Reporter: sfraser_bugs, Assigned: sbwoodside)

References

Details

Attachments

(2 files, 2 obsolete files)

I keep having Camino hang on me for periods of about 30 seconds. ThreadViewer
shows this stack:

mach_msg_trap
mach_msg
_lookup_all_secure
_lookup_all
gai_lookupd
getaddrinfo
__SCNetworkReachabilityGetFlags
SCNetworkReachabilityGetFlags
SCNetworkReachabilityByName
-[Bookmark hostIsReachable]
-[Bookmark checkForUpdate]
__NSFireTimer
(runloop stuff)

This is bad. I think Camino should use necko to do bookmark checking, which will
push stuff onto a separate thread, and avoid stalling the UI.
Perhaps this is what was responsible for Camino hanging on me every minute or
two for a few seconds while my internet connection was down this afternoon? 
It's not something that ever happens when the connection is available.  
damnit, we need to fix this. sbwoodside, didn't we test this before landing the
big bookmarks patch?
Assignee: haasd → pinkerton
Target Milestone: --- → Camino0.8
Status: NEW → ASSIGNED
Yes, I did test this with a modem connection. When the connection was
disconnect, it did not try to connect or freeze or hang. I tested on 10.2.
What's the system? What's the type of network connection?
Dual G4 on the end of a DSL line.
i'll look at it.

What OS version?
Assignee: pinkerton → sbwoodside
Status: ASSIGNED → NEW
10.3.2 I think.
I'm unable to reproduce this. I'm running 10.2.8. Maybe it's a panther-only bug?
Here's what I did:
- load up router configuration page
- disconnect PPPoE
- surf pages on my localhost server for a while
- I didn't see any hangs or freezes
This is the kind of bug where you can't expect to be able to reproduce every
networking issue that might affect it. It's enough to know that the problem
occurred to force you to seek alternative implementations. As I mentioned above,
I think necko should be used here, instead of alternative APIs.
This code is mainly in doHTTPUpdateRequest in Bookmark.mm. It's implemented
using Core Foundation network library CFNetwork services. I think CFNetwork is
thread safe so a simpler workaround is probably to stick it on an NSThread and
use cocoa threads to avoid the hang.

I don't know if there is some gain in converting to necko. Necko has both
synchronous and async modes too, so it's the same amount of work to make this
work multithreaded either way I think.

Anyway another idea I had was to implemented a necko async wrapper in cocoa, so
that we could make async necko calls using the obj-c threads api.
Can you still reproduce this hang? I've got a patch that makes HTTP update
checks async. But I have no way to verify if it fixes the problem since I can't
reproduce it .......
Attached patch test patch (obsolete) — Splinter Review
Try this out. I'll need to clean it up if it works.
Attached patch real test patch (obsolete) — Splinter Review
whoops, use this one. disregard the previous. I left in some spurious diffs on
my project file by mistkae.
Attachment #138724 - Attachment is obsolete: true
Attachment #138725 - Flags: review?
Will work on it ASAP, tonight, tomorow night ...
Comment on attachment 138725 [details] [diff] [review]
real test patch

Giving R but needs to be cleaned up . Too much logging is done in the current
patch.
Attachment #138725 - Flags: review? → review+
Attachment #138725 - Flags: review?(josha)
Sbwoodside are you still working on Camino ? do you plan to update your patch ?
Attached file Crash log.
Ok I just had a randow crash while I was dragging a text clipping to a tab to
open  a website. Camino just crashed, plof.

looking at the crash log, it directs me to the bookmark updating code since
there are some direct link in it.

2   org.mozilla.navigator	0x0008b100 -[BookmarkViewController
reloadDataForItem:reloadChildren:] + 0x8c (BookmarkViewController.mm:1198)
3   org.mozilla.navigator	0x0008ba3c -[BookmarkViewController
bookmarkChanged:] + 0x68 (BookmarkViewController.mm:1351)
4   <<00000000>>	0x909f793c 0 + 0x909f793c
5   <<00000000>>	0x901aa680 0 + 0x901aa680
6   <<00000000>>	0x901af090 0 + 0x901af090
7   org.mozilla.navigator	0x0007b064 -[BookmarkItem itemUpdatedNote] +
0xa4 (BookmarkItem.m:234)
8   org.mozilla.navigator	0x0006e5d0 -[Bookmark setNumberOfVisits:] +
0xa0 (Bookmark.mm:203)
9   org.mozilla.navigator	0x0006ebf0 -[Bookmark urlLoadCheck:] + 0x240
(Bookmark.mm:256)
Yeah, I still see periodic hangs (when there are network issues), and see
reports by others on the mailing list. Simon?
Simon W could you update please?
Summary: Bookmark update code causes periodic hangs in camino → [patch] Bookmark update code causes periodic hangs in camino
Blocks: 239387
Pushing back to 0.9, since auto-update will be disabled in 0.8 (and only
re-enableable through a hidden pref).
Target Milestone: Camino0.8 → Camino0.9
Attached patch simple patchSplinter Review
This patch pushes the "hostIsReachable" function onto a background
thread.  If it can find the host, it calls on the main thread the
doHTTPUpdateCheck.  

This patch will break Camino on 10.1, which I believe is OK at
this point.  I think some calls to "RunLoopMessenger" rather than
performSelectorOnMainThread would bring back 10.1 compatability.

Based on the threadviewer results, hostIsReachable is the main
culprit for the intermittant hangs.  I think (but don't know for
sure) the rest of the CFNetwork stuff is well behaved on the
main thread.  If it turns out more CFNetwork stuff is problematic,
the original version of the big bookmark patch had mostly-working
background thread calls for the bookmark updating, so you might
want to look there.

It would be nice if a couple people would try this patch out,
turn on the bookmark checking, and see if the hangs go away.
Attachment #138725 - Attachment is obsolete: true
broken bookmark detection code is getting ripped out, so marking this bug as wontfix
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → WONTFIX
Attachment #138725 - Flags: review?(joshmoz)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: