DragonFly bugs List (threaded) for 2008-04
DragonFly BSD
DragonFly bugs List (threaded) for 2008-04
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Firefox/Thunderbird and SSL not working with libthread_xu


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 14 Apr 2008 06:11:26 -0700 (PDT)

    I've found the problem.  What is happening is that firefox is 
    fork()ing and this is changing the pages the mutexes are waiting on
    in to copy-on-write.  The causes the page to be reassigned and 
    the original umtx_sleep() no longer matches the umtx_wakeup().

    I also found a couple of races in libthread_xu, but those weren't
    the main issue.

    The ktrace output was wrong, due to some issues with ktrace and
    multi-threaded programs.  It was calling umtx_wakeup().

    I am considering my options.  It can be solved fairly easily by
    polling the memory location once a second to catch COW's.  Unfortunately
    we can't really sleep on virtual addresses, since pages can be mapped
    and I really want the umtx*() calls to work with shared memory. 

    At the moment I do not have a clean solution but I will commit a fix
    later today even if it isn't perfect.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]