Re: fio 2.1.4 intermittently crashes on windows

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

 



A fix for the pthreadGC2/libwinthread issue has just been committed - fio.exe is now statically linked.

-- 
Bruce

Sent from my iPhone

> On Jan 10, 2014, at 9:46 AM, "Elliott, Robert (Server Storage)" <Elliott@xxxxxx> wrote:
> 
> 1. In addition to updating the README, I think os/windows/install.wxs needs to reference libwinpthread-1.dll instead of pthreadGC2.dll, since the wrong .dll is being copied to c:\program files\fio alongside fio.exe.  I re-installed the original 2.1.4 binary, saved that file to a different directory, installed the newly built 2.1.4 with the added assert (whose installation process deletes libwinpthread-1.dll), and put that file back, and it runs.
> 
> os/windows/install.wxs:         <ComponentRef Id="pthreadGC2.dll"/>
> 
> 2. This is where I put the assert in mutex.c:
> void fio_mutex_up(struct fio_mutex *mutex)
> {
>    assert(mutex->magic == FIO_MUTEX_MAGIC);
> 
>    pthread_mutex_lock(&mutex->lock);
>    read_barrier();
> assert(mutex->magic == FIO_MUTEX_MAGIC);    // robrob this is line 150
>    if (!mutex->value && mutex->waiters)
>        pthread_cond_signal(&mutex->cond);
>    mutex->value++;
>    pthread_mutex_unlock(&mutex->lock);
> }
> 
> 3. The assert does not trigger, and the same crash occurs as before.
> 
> C:\Users\Administrator\fio>c:\cygwin64\bin\gdb -args "c:/program files/fio/fio.exe" --filename=rob.t
> mp --size=128m --direct=1 --rw=randread --refill_buffers --norandommap --randrepeat=0 --bs=4k --iode
> pth=16 --numjobs=16 --runtime=60 --group_reporting --name=4ktest --time_based
> GNU gdb (GDB) 7.6.50.20130728-cvs (cygwin-special)
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-pc-cygwin".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> ..
> Reading symbols from /cygdrive/c/program files/fio/fio.exe...done.
> (gdb) run
> Starting program: /cygdrive/c/program files/fio/fio.exe --filename=rob.tmp --size=128m --direct=1 --rw=randread --refill_buffers --norandommap --randrepeat=0 --bs=4k --iodepth=16 --numjobs=16 --runtime=60 --group_reporting --name=4ktest --time_based
> [New Thread 3428.0x13e0]
> fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread'
> option to get rid of this warning.
> 4ktest: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=windowsaio, iodepth=16
> ...
> 4ktest: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=windowsaio, iodepth=16
> fio-2.1.4
> [New Thread 3428.0x10a4]
> Starting 16 threads
> [New Thread 3428.0x1104]
> [New Thread 3428.0x1254]
> [New Thread 3428.0xde8]
> [New Thread 3428.0xeec]
> [New Thread 3428.0xe58]
> [New Thread 3428.0x13e8]
> [New Thread 3428.0x4b8]
> [New Thread 3428.0x13e4]
> [New Thread 3428.0x7bc]
> [New Thread 3428.0x1358]
> [New Thread 3428.0x2f0]
> [New Thread 3428.0x8dc]
> [New Thread 3428.0x38c]
> [New Thread 3428.0x133c]
> [New Thread 3428.0x2c8]
> [New Thread 3428.0x13c0]
> Jobs: 0 (f=0)
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000064943236 in pthread_mutex_unlock ()
>   from /cygdrive/c/program files/fio/libwinpthread-1.dll
> (gdb) bt
> #0  0x0000000064943236 in pthread_mutex_unlock ()
>   from /cygdrive/c/program files/fio/libwinpthread-1.dll
> #1  0x000000000000000f in ?? ()
> #2  0x0000000000422f79 in fio_mutex_up (mutex=0x305b70) at mutex.c:152
> #3  0x0000000000438d71 in run_threads () at backend.c:1812
> #4  0x000000000043918d in fio_backend () at backend.c:1925
> #5  0x000000000044ba31 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)
>    at fio.c:50
> #6  0x00000000004013c5 in __tmainCRTStartup ()
>    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:332
> #7  0x00000000004014e8 in mainCRTStartup ()
>    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:212
> (gdb) f 2
> #2  0x0000000000422f79 in fio_mutex_up (mutex=0x305b70) at mutex.c:152
> 152                     pthread_cond_signal(&mutex->cond);
> (gdb) p mutex
> $1 = (struct fio_mutex *) 0x305b70
> (gdb) p *mutex
> $2 = {lock = 0x1bab1f00d, cond = 0x100000000, value = 0, waiters = 0, magic = 176}
> (gdb)
> 
> 
> 
>> -----Original Message-----
>> From: fio-owner@xxxxxxxxxxxxxxx [mailto:fio-owner@xxxxxxxxxxxxxxx] On
>> Behalf Of Bruce Cran
>> Sent: Friday, 10 January, 2014 12:11 AM
>> To: Sitsofe Wheeler; Elliott, Robert (Server Storage)
>> Cc: fio@xxxxxxxxxxxxxxx
>> Subject: Re: fio 2.1.4 intermittently crashes on windows
>> 
>> 
>>> On 1/9/2014 10:21 PM, Sitsofe Wheeler wrote:
>>> On Fri, Jan 10, 2014 at 12:37:33AM +0000, Elliott, Robert (Server Storage)
>> wrote:
>>>> I installed Cygwin gcc, mingwg64*, make, and a few other packages...
>>>> 
>>>> The built fio.exe ends up complaining about a missing libpthread1-1.dll.
>>>> 
>>>> Where do I find that?  README says where to get pthreadGC2.dll, but
>>>> that's apparently not the right file any more.  Browsing up on that
>>>> FTP site doesn't show it nearby.
>>> You're right - the README is out of date. If you (re)run your Cygwin
>>> setup exe then you can use its package browser to install
>>> mingw[...]-winpthreads .
>> 
>> 
>> Sorry - Cygwin switched from pthreads-win32 to winpthreads a couple of
>> months ago and I forgot to update the README during the last set of
>> changesets.
>> 
>> --
>> Bruce Cran
>> --
>> To unsubscribe from this list: send the line "unsubscribe fio" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux