The latest pulled version with this change works on my Windows Server 2008 R2 
system that was crashing with 2-1.4.

---
Rob Elliott    HP Server Storage




> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On
> Behalf Of Jens Axboe
> Sent: Monday, 10 February, 2014 2:57 PM
> To: Sitsofe Wheeler
> Cc: Bruce Cran; [email protected]
> Subject: Re: Mutex destruction, invalid memory accesses, leaks
> 
> On Mon, Feb 10 2014, Sitsofe Wheeler wrote:
> > On Mon, Feb 10, 2014 at 12:25:32PM -0700, Bruce Cran wrote:
> > > On 2/9/2014 12:50 PM, Sitsofe Wheeler wrote:
> > > >
> > > >Yes it's still happening with -git from a moment ago. What is stopping a
> > > >sleeping thread from holding a mutex that is destroyed and then waking
> > > >up on it after the memory has been unmapped?
> > >
> > > In case it *is* a bug in winpthreads-1.dll, are you using version
> > > 3.1.0-1? It was released on the 15th January and there appeared to
> > > be some mutex-related fixes when I looked at the svn log a few weeks
> > > ago.
> >
> > Yes I am using version 3.1.0-1 on Windows 7 installed about a week
> > ago...
> 
> Actually, the previous wont work, and I don't see how to make it work.
> Please try the below instead. Or just re-pull, I'll check it in now.
> 
> 
> diff --git a/backend.c b/backend.c
> index 501c59a..a607134 100644
> --- a/backend.c
> +++ b/backend.c
> @@ -1236,13 +1236,6 @@ static void *thread_main(void *data)
>       dprint(FD_MUTEX, "done waiting on td->mutex\n");
> 
>       /*
> -      * the ->mutex mutex is now no longer used, close it to avoid
> -      * eating a file descriptor
> -      */
> -     fio_mutex_remove(td->mutex);
> -     td->mutex = NULL;
> -
> -     /*
>        * A new gid requires privilege, so we need to do this before setting
>        * the uid.
>        */
> @@ -1521,6 +1514,9 @@ err:
>       fio_mutex_remove(td->rusage_sem);
>       td->rusage_sem = NULL;
> 
> +     fio_mutex_remove(td->mutex);
> +     td->mutex = NULL;
> +
>       td_set_runstate(td, TD_EXITED);
>       return (void *) (uintptr_t) td->error;
>  }
> 
> --
> Jens Axboe
> 
> --
> To unsubscribe from this list: send the line "unsubscribe fio" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to