Thank you for the insight on the problem. I have re-tested this again without the -d flag, so things are running at full speed. Again, there was no crash with iTunes, or under extemely heavy load all day long. I would call this fixed.
Is there any sort of timeframe for 0.9.x to be officially released? Thanks so much for your efforts, db On Oct 2, 2:04 pm, Amit Singh <[EMAIL PROTECTED]> wrote: > > What was your hunch? Those who are interested in the MacFUSE internals > > may appreciate knowing what the exact fix was. > > The kernel sends the user-space library calls like the following: > > open ... read/write ... fsync ... flush ... release > > After "release", there must not be any calls for that particular file > handle. sshfs implements both fsync and flush through a single backend > function (sshfs_flush). It also does a flush from its release > implementation. In your case, a ton of fsync/flush/release calls were > being generated. These can be served by a pthread each in user space. > The library was launching the pthreads in the correct order (in the > order the calls were received), but that doesn't guarantee the calls > will execute/finish in that order. Once in a while, it was so > happening that a "release" finished before the last flush could > finish. Since release frees the file handle/context, when flush did > finish, it would crash while trying to manipulate the now-freed > memory. > > MacFUSE can send any/all of these calls to user space either > synchronously or asynchronously. In most cases, it has to be > synchronous because it needs to know the reply. Even though fsync is > meant to be synchronous (with respect to some definition of "sync"), > MacFUSE has a different situation (wildly different kernel > architecture) as compared to the Linux FUSE implementation. For > certain reasons (too much detail to repeat here), MacFUSE was sending > asynchronous fsync messages. This caused many in-flight such messages > in user space. Since the library doesn't have any special handling to > enforce in-order execution of fsync/release, we ran into your > situation. My fix was to get rid of the aforementioned "certain > reasons" and make all fsync's synchronous. > > Amit --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "macfuse-devel" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/macfuse-devel?hl=en -~----------~----~----~----~------~----~------~--~---
