All of lore.kernel.org
 help / color / mirror / Atom feed
* fio 2.1.4 intermittently crashes on windows
@ 2013-12-28  1:42 Todd Dworshak
  2013-12-28  2:12 ` Bruce Cran
  0 siblings, 1 reply; 11+ messages in thread
From: Todd Dworshak @ 2013-12-28  1:42 UTC (permalink / raw)
  To: fio@vger.kernel.org

Hi �

I am having trouble with fio intermittently crashing on Windows 7.

Version is fio 2.1.4 64 bit, downloaded from Windows build site.

Has anyone else seen this?  If I give it fewer files in the job description, it seems to be less prone to crashing.  Since it crashes in pthreads, it looks like this may be some kind of threading bug.

Call stack of fio dump file is as follows:
                kernel32.dll!WerpReportFaultInternal()  + 0x215 bytes  
               kernel32.dll!WerpReportFault()  + 0x77 bytes     
               kernel32.dll!BasepReportFault()  + 0x1f bytes    
               kernel32.dll!UnhandledExceptionFilter()  + 0x1fc bytes  
               ntdll.dll!string "Enabling heap debug options\n"()  + 0xc9c8 bytes             
               ntdll.dll!__C_specific_handler()  + 0x9c bytes     
               ntdll.dll!RtlpExecuteHandlerForException()  + 0xd bytes                
               ntdll.dll!RtlDispatchException()  + 0x38f bytes    
               ntdll.dll!RtlRaiseStatus()  + 0x60 bytes    
               ntdll.dll!string "Enabling heap debug options\n"()  - 0x17a4e bytes           
               ntdll.dll!KiUserExceptionDispatcher()  + 0x2e bytes         
               libwinpthread-1.dll!0000000064943236()               
                [Frames below may be incorrect and/or missing, no symbols loaded for libwinpthread-1.dll]       
               000000000000000a()       
               fio.exe!0000000000421599()       
                fio.exe!0000000000437ce0()       
                fio.exe!000000000043809d()       
                fio.exe!00000000004013a5()       
                fio.exe!00000000004014d8()       
                kernel32.dll!BaseThreadInitThunk()  + 0xd bytes               
               ntdll.dll!RtlUserThreadStart()  + 0x21 bytes          

Job description follows:

[global]
ioengine=windowsaio
buffered=0
rw=read
bs=4m
size=4000m
iodepth=3
runtime=90

[file1]
filename=z\:\test1a.dat
rate=80m

[file2]
filename=z\:\test2a.dat
rate=80m

[file3]
filename=z\:\test3a.dat
rate=80m

[file4]
filename=z\:\test4a.dat
rate=80m

[file5]
filename=z\:\test5a.dat
rate=80m

[file6]
filename=z\:\test6a.dat
rate=80m

[file7]
filename=z\:\test7a.dat
rate=80m

[file8]
filename=z\:\test8a.dat
rate=80m

[file9]
filename=z\:\test9a.dat
rate=80m

[file10]
filename=z\:\test10a.dat
rate=80m

Thanks in advance for any help you can provide.

Todd Dworshak

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: fio 2.1.4 intermittently crashes on windows
  2013-12-28  1:42 fio 2.1.4 intermittently crashes on windows Todd Dworshak
@ 2013-12-28  2:12 ` Bruce Cran
  2014-01-08 22:02   ` Todd Dworshak
  0 siblings, 1 reply; 11+ messages in thread
From: Bruce Cran @ 2013-12-28  2:12 UTC (permalink / raw)
  To: Todd Dworshak, fio@vger.kernel.org

On 12/27/2013 6:42 PM, Todd Dworshak wrote:
> I am having trouble with fio intermittently crashing on Windows 7.
>
> Version is fio 2.1.4 64 bit, downloaded from Windows build site.
>
> Has anyone else seen this?  If I give it fewer files in the job description, it seems to be less prone to crashing.  Since it crashes in pthreads, it looks like this may be some kind of threading bug.

I'll try to replicate the problem here, but in the meantime it would be 
useful if you could try running fio under the Cygwin build of gdb to 
capture a stack trace in fio.exe.

-- 
Bruce

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: fio 2.1.4 intermittently crashes on windows
  2013-12-28  2:12 ` Bruce Cran
@ 2014-01-08 22:02   ` Todd Dworshak
  2014-01-09  1:07     ` Elliott, Robert (Server Storage)
  0 siblings, 1 reply; 11+ messages in thread
From: Todd Dworshak @ 2014-01-08 22:02 UTC (permalink / raw)
  To: 'Bruce Cran', fio@vger.kernel.org

I ran fio in gdb and got the crash.  The stack trace is below.  Not sure if this is a bug in libwinpthread-1.dll or in the way fio is calling it.

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  0x0000000000000009 in ?? ()
#2  0x0000000000421599 in fio_mutex_up (mutex=0x79a2b0) at mutex.c:151
#3  0x0000000000437ce0 in run_threads () at backend.c:1812
#4  0x000000000043809d in fio_backend () at backend.c:1925
#5  0x0000000000449411 in main (argc=<optimized out>, argv=<optimized out>,
    envp=<optimized out>) at fio.c:50
#6  0x00000000004013a5 in __tmainCRTStartup ()
    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:332
#7  0x00000000004014d8 in mainCRTStartup ()
    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:212
(gdb) f 2
#2  0x0000000000421599 in fio_mutex_up (mutex=0x79a2b0) at mutex.c:151
151     mutex.c: No such file or directory.
(gdb) p mutex
$1 = (struct fio_mutex *) 0x79a2b0
(gdb) p *mutex
$2 = {lock = 0x1bab1f00d, cond = 0x100000000, value = 0, waiters = 0,
  magic = 280}

-----Original Message-----
From: Bruce Cran [mailto:bruce@cran.org.uk] 
Sent: Friday, December 27, 2013 9:12 PM
To: Todd Dworshak; fio@vger.kernel.org
Subject: Re: fio 2.1.4 intermittently crashes on windows

On 12/27/2013 6:42 PM, Todd Dworshak wrote:
> I am having trouble with fio intermittently crashing on Windows 7.
>
> Version is fio 2.1.4 64 bit, downloaded from Windows build site.
>
> Has anyone else seen this?  If I give it fewer files in the job description, it seems to be less prone to crashing.  Since it crashes in pthreads, it looks like this may be some kind of threading bug.

I'll try to replicate the problem here, but in the meantime it would be useful if you could try running fio under the Cygwin build of gdb to capture a stack trace in fio.exe.

--
Bruce

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: fio 2.1.4 intermittently crashes on windows
  2014-01-08 22:02   ` Todd Dworshak
@ 2014-01-09  1:07     ` Elliott, Robert (Server Storage)
  2014-01-09  2:32       ` Todd Dworshak
  2014-01-09  6:37       ` Sitsofe Wheeler
  0 siblings, 2 replies; 11+ messages in thread
From: Elliott, Robert (Server Storage) @ 2014-01-09  1:07 UTC (permalink / raw)
  To: Todd Dworshak, 'Bruce Cran', fio@vger.kernel.org

I've seen something similar:
- 2.1.1 on a Windows Server 2008 R2 system: OK
- 2.1.4 on a Windows Server 2008 R2 system: crash
- 2.1.4 on a Windows Server 2012 system: OK

This is this error for 2.1.4 on Windows Server 2008 R2: 
    Faulting application name: fio.exe, version: 0.0.0.0, time stamp: 0x5294c1a1
    Faulting module name: ntdll.dll, version: 6.1.7601.18247, time stamp: 0x521eaf24
    Exception code: 0xc0000026  (STATUS_INVALID_DISPOSITION)
    Fault offset: 0x00000000000cd7e8
    Faulting process id: 0x103c
    Faulting application start time: 0x01cf0bc5133c13bf
    Faulting application path: c:\program files\fio\fio.exe
    Faulting module path: C:\Windows\SYSTEM32\ntdll.dll

Running it under cygwin gdb with the same gdb commands, I get:

Starting program: /cygdrive/c/program files/fio/fio --filename=rob.tmp --size=128m --direct=1 --rw=r
andread --refill_buffers --norandommap --randrepeat=0 --bs=4k --iodepth=16 --numjobs=16 --runtime=60
 --group_reporting --name=4ktest --time_based
[New Thread 4760.0xe88]
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 4760.0x4c4]
Starting 16 threads
[New Thread 4760.0x1050]
[New Thread 4760.0xf40]
[New Thread 4760.0x1334]
[New Thread 4760.0x948]
[New Thread 4760.0x2b8]
[New Thread 4760.0x11e8]
[New Thread 4760.0x1280]
[New Thread 4760.0x1114]
[New Thread 4760.0xea8]
[New Thread 4760.0x87c]
[New Thread 4760.0xeac]
[New Thread 4760.0x12c8]
[New Thread 4760.0x1190]
[New Thread 4760.0xebc]
[New Thread 4760.0xd48]
[New Thread 4760.0x918]
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  0x0000000000000001 in ?? ()
#2  0x0000000000421599 in fio_mutex_up (mutex=0x2f5b10) at mutex.c:151
#3  0x0000000000437ce0 in run_threads () at backend.c:1812
#4  0x000000000043809d in fio_backend () at backend.c:1925
#5  0x0000000000449411 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)
    at fio.c:50
#6  0x00000000004013a5 in __tmainCRTStartup ()
    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:332
#7  0x00000000004014d8 in mainCRTStartup ()
    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:212
(gdb) f 2
#2  0x0000000000421599 in fio_mutex_up (mutex=0x2f5b10) at mutex.c:151
151     mutex.c: No such file or directory.
(gdb) p mutex
$1 = (struct fio_mutex *) 0x2f5b10
(gdb) p *mutex
$2 = {lock = 0x1bab1f00d, cond = 0x100000000, value = 0, waiters = 0, magic = 172}

---
Rob Elliott    HP Server Storage





> -----Original Message-----
> From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On
> Behalf Of Todd Dworshak
> Sent: Wednesday, 08 January, 2014 4:02 PM
> To: 'Bruce Cran'; fio@vger.kernel.org
> Subject: RE: fio 2.1.4 intermittently crashes on windows
> 
> I ran fio in gdb and got the crash.  The stack trace is below.  Not sure if this is a
> bug in libwinpthread-1.dll or in the way fio is calling it.
> 
> 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  0x0000000000000009 in ?? ()
> #2  0x0000000000421599 in fio_mutex_up (mutex=0x79a2b0) at mutex.c:151
> #3  0x0000000000437ce0 in run_threads () at backend.c:1812
> #4  0x000000000043809d in fio_backend () at backend.c:1925
> #5  0x0000000000449411 in main (argc=<optimized out>, argv=<optimized
> out>,
>     envp=<optimized out>) at fio.c:50
> #6  0x00000000004013a5 in __tmainCRTStartup ()
>     at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:332
> #7  0x00000000004014d8 in mainCRTStartup ()
>     at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:212
> (gdb) f 2
> #2  0x0000000000421599 in fio_mutex_up (mutex=0x79a2b0) at mutex.c:151
> 151     mutex.c: No such file or directory.
> (gdb) p mutex
> $1 = (struct fio_mutex *) 0x79a2b0
> (gdb) p *mutex
> $2 = {lock = 0x1bab1f00d, cond = 0x100000000, value = 0, waiters = 0,
>   magic = 280}
> 
> -----Original Message-----
> From: Bruce Cran [mailto:bruce@cran.org.uk]
> Sent: Friday, December 27, 2013 9:12 PM
> To: Todd Dworshak; fio@vger.kernel.org
> Subject: Re: fio 2.1.4 intermittently crashes on windows
> 
> On 12/27/2013 6:42 PM, Todd Dworshak wrote:
> > I am having trouble with fio intermittently crashing on Windows 7.
> >
> > Version is fio 2.1.4 64 bit, downloaded from Windows build site.
> >
> > Has anyone else seen this?  If I give it fewer files in the job description, it
> seems to be less prone to crashing.  Since it crashes in pthreads, it looks like
> this may be some kind of threading bug.
> 
> I'll try to replicate the problem here, but in the meantime it would be useful
> if you could try running fio under the Cygwin build of gdb to capture a stack
> trace in fio.exe.
> 
> --
> Bruce
> --
> To unsubscribe from this list: send the line "unsubscribe fio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: fio 2.1.4 intermittently crashes on windows
  2014-01-09  1:07     ` Elliott, Robert (Server Storage)
@ 2014-01-09  2:32       ` Todd Dworshak
  2014-01-09  6:37       ` Sitsofe Wheeler
  1 sibling, 0 replies; 11+ messages in thread
From: Todd Dworshak @ 2014-01-09  2:32 UTC (permalink / raw)
  To: Elliott, Robert (Server Storage), 'Bruce Cran',
	fio@vger.kernel.org

Sounds like we are hitting the same issue.  I am encountering the crash on a Windows 7 box, which pairs up with your crash on Server 2008 R2 (both being basically the same OS).

________________________________________
From: Elliott, Robert (Server Storage) [Elliott@hp.com]
Sent: Wednesday, January 08, 2014 8:07 PM
To: Todd Dworshak; 'Bruce Cran'; fio@vger.kernel.org
Subject: RE: fio 2.1.4 intermittently crashes on windows

I've seen something similar:
- 2.1.1 on a Windows Server 2008 R2 system: OK
- 2.1.4 on a Windows Server 2008 R2 system: crash
- 2.1.4 on a Windows Server 2012 system: OK

This is this error for 2.1.4 on Windows Server 2008 R2:
    Faulting application name: fio.exe, version: 0.0.0.0, time stamp: 0x5294c1a1
    Faulting module name: ntdll.dll, version: 6.1.7601.18247, time stamp: 0x521eaf24
    Exception code: 0xc0000026  (STATUS_INVALID_DISPOSITION)
    Fault offset: 0x00000000000cd7e8
    Faulting process id: 0x103c
    Faulting application start time: 0x01cf0bc5133c13bf
    Faulting application path: c:\program files\fio\fio.exe
    Faulting module path: C:\Windows\SYSTEM32\ntdll.dll

Running it under cygwin gdb with the same gdb commands, I get:

Starting program: /cygdrive/c/program files/fio/fio --filename=rob.tmp --size=128m --direct=1 --rw=r
andread --refill_buffers --norandommap --randrepeat=0 --bs=4k --iodepth=16 --numjobs=16 --runtime=60
 --group_reporting --name=4ktest --time_based
[New Thread 4760.0xe88]
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 4760.0x4c4]
Starting 16 threads
[New Thread 4760.0x1050]
[New Thread 4760.0xf40]
[New Thread 4760.0x1334]
[New Thread 4760.0x948]
[New Thread 4760.0x2b8]
[New Thread 4760.0x11e8]
[New Thread 4760.0x1280]
[New Thread 4760.0x1114]
[New Thread 4760.0xea8]
[New Thread 4760.0x87c]
[New Thread 4760.0xeac]
[New Thread 4760.0x12c8]
[New Thread 4760.0x1190]
[New Thread 4760.0xebc]
[New Thread 4760.0xd48]
[New Thread 4760.0x918]
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  0x0000000000000001 in ?? ()
#2  0x0000000000421599 in fio_mutex_up (mutex=0x2f5b10) at mutex.c:151
#3  0x0000000000437ce0 in run_threads () at backend.c:1812
#4  0x000000000043809d in fio_backend () at backend.c:1925
#5  0x0000000000449411 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)
    at fio.c:50
#6  0x00000000004013a5 in __tmainCRTStartup ()
    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:332
#7  0x00000000004014d8 in mainCRTStartup ()
    at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:212
(gdb) f 2
#2  0x0000000000421599 in fio_mutex_up (mutex=0x2f5b10) at mutex.c:151
151     mutex.c: No such file or directory.
(gdb) p mutex
$1 = (struct fio_mutex *) 0x2f5b10
(gdb) p *mutex
$2 = {lock = 0x1bab1f00d, cond = 0x100000000, value = 0, waiters = 0, magic = 172}

---
Rob Elliott    HP Server Storage





> -----Original Message-----
> From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On
> Behalf Of Todd Dworshak
> Sent: Wednesday, 08 January, 2014 4:02 PM
> To: 'Bruce Cran'; fio@vger.kernel.org
> Subject: RE: fio 2.1.4 intermittently crashes on windows
>
> I ran fio in gdb and got the crash.  The stack trace is below.  Not sure if this is a
> bug in libwinpthread-1.dll or in the way fio is calling it.
>
> 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  0x0000000000000009 in ?? ()
> #2  0x0000000000421599 in fio_mutex_up (mutex=0x79a2b0) at mutex.c:151
> #3  0x0000000000437ce0 in run_threads () at backend.c:1812
> #4  0x000000000043809d in fio_backend () at backend.c:1925
> #5  0x0000000000449411 in main (argc=<optimized out>, argv=<optimized
> out>,
>     envp=<optimized out>) at fio.c:50
> #6  0x00000000004013a5 in __tmainCRTStartup ()
>     at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:332
> #7  0x00000000004014d8 in mainCRTStartup ()
>     at /usr/src/debug/mingw64-x86_64-runtime-3.0.0-1/crt/crtexe.c:212
> (gdb) f 2
> #2  0x0000000000421599 in fio_mutex_up (mutex=0x79a2b0) at mutex.c:151
> 151     mutex.c: No such file or directory.
> (gdb) p mutex
> $1 = (struct fio_mutex *) 0x79a2b0
> (gdb) p *mutex
> $2 = {lock = 0x1bab1f00d, cond = 0x100000000, value = 0, waiters = 0,
>   magic = 280}
>
> -----Original Message-----
> From: Bruce Cran [mailto:bruce@cran.org.uk]
> Sent: Friday, December 27, 2013 9:12 PM
> To: Todd Dworshak; fio@vger.kernel.org
> Subject: Re: fio 2.1.4 intermittently crashes on windows
>
> On 12/27/2013 6:42 PM, Todd Dworshak wrote:
> > I am having trouble with fio intermittently crashing on Windows 7.
> >
> > Version is fio 2.1.4 64 bit, downloaded from Windows build site.
> >
> > Has anyone else seen this?  If I give it fewer files in the job description, it
> seems to be less prone to crashing.  Since it crashes in pthreads, it looks like
> this may be some kind of threading bug.
>
> I'll try to replicate the problem here, but in the meantime it would be useful
> if you could try running fio under the Cygwin build of gdb to capture a stack
> trace in fio.exe.
>
> --
> Bruce
> --
> To unsubscribe from this list: send the line "unsubscribe fio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: fio 2.1.4 intermittently crashes on windows
  2014-01-09  1:07     ` Elliott, Robert (Server Storage)
  2014-01-09  2:32       ` Todd Dworshak
@ 2014-01-09  6:37       ` Sitsofe Wheeler
       [not found]         ` <94D0CD8314A33A4D9D801C0FE68B4029548744AD@G4W3202.americas.hpqcorp.net>
  1 sibling, 1 reply; 11+ messages in thread
From: Sitsofe Wheeler @ 2014-01-09  6:37 UTC (permalink / raw)
  To: Elliott, Robert (Server Storage)
  Cc: Todd Dworshak, 'Bruce Cran', fio@vger.kernel.org

On Thu, Jan 09, 2014 at 01:07:56AM +0000, Elliott, Robert (Server Storage) wrote:
> I've seen something similar:
> - 2.1.4 on a Windows Server 2008 R2 system: crash
> 
> This is this error for 2.1.4 on Windows Server 2008 R2: 

<snip>

> (gdb) f 2
> #2  0x0000000000421599 in fio_mutex_up (mutex=0x2f5b10) at mutex.c:151
> 151     mutex.c: No such file or directory.
> (gdb) p mutex
> $1 = (struct fio_mutex *) 0x2f5b10
> (gdb) p *mutex
> $2 = {lock = 0x1bab1f00d, cond = 0x100000000, value = 0, waiters = 0, magic = 172}

This is crazy - the magic value is 172 rather than 1297437765 but the
fio_mutex_up() function is protected by an assert that checks to see if
the mutex's magic number is wrong. Could you can insert something like
the following after line 149:
assert(mutex->magic == FIO_MUTEX_MAGIC);
to prove that the value has not been stomped on before
pthread_cond_signal is run?

-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: fio 2.1.4 intermittently crashes on windows
       [not found]         ` <94D0CD8314A33A4D9D801C0FE68B4029548744AD@G4W3202.americas.hpqcorp.net>
@ 2014-01-10  5:21           ` Sitsofe Wheeler
  2014-01-10  6:11             ` Bruce Cran
  0 siblings, 1 reply; 11+ messages in thread
From: Sitsofe Wheeler @ 2014-01-10  5:21 UTC (permalink / raw)
  To: Elliott, Robert (Server Storage); +Cc: fio

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 .

-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: fio 2.1.4 intermittently crashes on windows
  2014-01-10  5:21           ` Sitsofe Wheeler
@ 2014-01-10  6:11             ` Bruce Cran
  2014-01-10 16:46               ` Elliott, Robert (Server Storage)
  0 siblings, 1 reply; 11+ messages in thread
From: Bruce Cran @ 2014-01-10  6:11 UTC (permalink / raw)
  To: Sitsofe Wheeler, Elliott, Robert (Server Storage); +Cc: fio


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: fio 2.1.4 intermittently crashes on windows
  2014-01-10  6:11             ` Bruce Cran
@ 2014-01-10 16:46               ` Elliott, Robert (Server Storage)
  2014-01-27 20:46                 ` Sitsofe Wheeler
  2014-01-28 21:08                 ` Bruce Cran
  0 siblings, 2 replies; 11+ messages in thread
From: Elliott, Robert (Server Storage) @ 2014-01-10 16:46 UTC (permalink / raw)
  To: Bruce Cran, Sitsofe Wheeler; +Cc: fio@vger.kernel.org

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@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On
> Behalf Of Bruce Cran
> Sent: Friday, 10 January, 2014 12:11 AM
> To: Sitsofe Wheeler; Elliott, Robert (Server Storage)
> Cc: fio@vger.kernel.org
> 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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: fio 2.1.4 intermittently crashes on windows
  2014-01-10 16:46               ` Elliott, Robert (Server Storage)
@ 2014-01-27 20:46                 ` Sitsofe Wheeler
  2014-01-28 21:08                 ` Bruce Cran
  1 sibling, 0 replies; 11+ messages in thread
From: Sitsofe Wheeler @ 2014-01-27 20:46 UTC (permalink / raw)
  To: Elliott, Robert (Server Storage); +Cc: Bruce Cran, fio@vger.kernel.org

On Fri, Jan 10, 2014 at 04:46:05PM +0000, Elliott, Robert (Server Storage) wrote:
 
> 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.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
> Jobs: 0 (f=0)
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000064943236 in pthread_mutex_unlock ()
>    from /cygdrive/c/program files/fio/libwinpthread-1.dll

I've finally had time to reproduce this on a Windows 7 box. I use a
different command line:

./fio.exe --debug=all --filename=fiojob --thread --size=512 --rw=read --bs=512 --ioengine=sync --verify_pattern=0xdeadbeef --name=fiojobname

The problem appears to be that the mutex is being destroyed while it is
still being held by a different thread. Adding return; to the first line
of fio_mutex_remove in mutex.c papers over the problem...

-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: fio 2.1.4 intermittently crashes on windows
  2014-01-10 16:46               ` Elliott, Robert (Server Storage)
  2014-01-27 20:46                 ` Sitsofe Wheeler
@ 2014-01-28 21:08                 ` Bruce Cran
  1 sibling, 0 replies; 11+ messages in thread
From: Bruce Cran @ 2014-01-28 21:08 UTC (permalink / raw)
  To: Elliott, Robert (Server Storage); +Cc: Sitsofe Wheeler, fio@vger.kernel.org

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@hp.com> 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@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On
>> Behalf Of Bruce Cran
>> Sent: Friday, 10 January, 2014 12:11 AM
>> To: Sitsofe Wheeler; Elliott, Robert (Server Storage)
>> Cc: fio@vger.kernel.org
>> 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@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2014-01-28 21:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-28  1:42 fio 2.1.4 intermittently crashes on windows Todd Dworshak
2013-12-28  2:12 ` Bruce Cran
2014-01-08 22:02   ` Todd Dworshak
2014-01-09  1:07     ` Elliott, Robert (Server Storage)
2014-01-09  2:32       ` Todd Dworshak
2014-01-09  6:37       ` Sitsofe Wheeler
     [not found]         ` <94D0CD8314A33A4D9D801C0FE68B4029548744AD@G4W3202.americas.hpqcorp.net>
2014-01-10  5:21           ` Sitsofe Wheeler
2014-01-10  6:11             ` Bruce Cran
2014-01-10 16:46               ` Elliott, Robert (Server Storage)
2014-01-27 20:46                 ` Sitsofe Wheeler
2014-01-28 21:08                 ` Bruce Cran

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.