Opened 5 years ago

Closed 5 years ago

#1592 closed defect (fixed)

filter-amix FATE tests errors on win64

Reported by: jamal Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: fate amix win64
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

The tiny_psnr tool is failing with the filter-amix FATE tests in certain configurations.

Here's the gdb output for mine.

$ gdb tests/tiny_psnr.exe
GNU gdb (GDB) 7.1.90.20100730-cvs
Copyright (C) 2010 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-w64-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from D:\msys\1.0\ffmpeg\build/tests/tiny_psnr.exe...done.
(gdb) r ../samples/filter/amix_transition.pcm tests/data/fate/filter-amix-transition f32
Starting program: D:\msys\1.0\ffmpeg\build/tests/tiny_psnr.exe ../samples/filter/amix_transition.pcm tests/data/fate/filter-amix-transition f32
[New Thread 3944.0x11dc]

Program received signal SIGFPE, Arithmetic exception.
0x000000000040152d in log16 (a=0) at D:/msys/1.0/ffmpeg/src/tests/tiny_psnr.c:79
79              return -log16((1LL << 32) / a);
(gdb) bt
#0  0x000000000040152d in log16 (a=0) at D:/msys/1.0/ffmpeg/src/tests/tiny_psnr.c:79
#1  0x0000000000401e3a in run_psnr (f=0x22fe20, len=4, shift=0, skip_bytes=0) at D:/msys/1.0/ffmpeg/src/tests/tiny_psnr.c:201
#2  0x0000000000402219 in main (argc=4, argv=0x322310) at D:/msys/1.0/ffmpeg/src/tests/tiny_psnr.c:255
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x40150d to 0x40154d:
   0x000000000040150d <log16+13>:       movl   $0x0,-0x18(%rbp)
   0x0000000000401514 <log16+20>:       cmpq   $0xffff,0x10(%rbp)
   0x000000000040151c <log16+28>:       ja     0x401541 <log16+65>
   0x000000000040151e <log16+30>:       movabs $0x100000000,%rax
   0x0000000000401528 <log16+40>:       mov    $0x0,%edx
=> 0x000000000040152d <log16+45>:       divq   0x10(%rbp)
   0x0000000000401531 <log16+49>:       mov    %rax,%rcx
   0x0000000000401534 <log16+52>:       callq  0x401500 <log16>
   0x0000000000401539 <log16+57>:       neg    %rax
   0x000000000040153c <log16+60>:       jmpq   0x401607 <log16+263>
   0x0000000000401541 <log16+65>:       shlq   $0x10,0x10(%rbp)
   0x0000000000401546 <log16+70>:       movl   $0x14,-0x14(%rbp)
End of assembler dump.
(gdb) info all-registers
rax            0x100000000      4294967296
rbx            0x330a00 3344896
rcx            0x0      0
rdx            0x0      0
rsi            0x4      4
rdi            0x321e90 3284624
rbp            0x22ed00 0x22ed00
rsp            0x22ecb0 0x22ecb0
r8             0xadad436d591005 48885676079910917
r9             0x0      0
r10            0x0      0
r11            0x246    582
r12            0x322310 3285776
r13            0x0      0
r14            0x0      0
r15            0x0      0
rip            0x40152d 0x40152d <log16+45>
eflags         0x10293  [ CF AF SF IF RF ]
cs             0x33     51
ss             0x293002b        43188267
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x2b0000 2818048
st0            0        (raw 0x00000000000000000000)
st1            0        (raw 0x00000000000000000000)
st2            0        (raw 0x00000000000000000000)
st3            0        (raw 0x00000000000000000000)
st4            0        (raw 0x00000000000000000000)
st5            0        (raw 0x00000000000000000000)
st6            0        (raw 0x00000000000000000000)
st7            0        (raw 0x00000000000000000000)
fctrl          0x37f    895
fstat          0x0      0
ftag           0x0      0
fiseg          0x0      0
fioff          0x0      0
foseg          0x0      0
fooff          0x0      0
fop            0x0      0
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm14          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000}
mxcsr          0x1fa0   [ PE IM DM ZM OM UM PM ]
(gdb)

Change History (3)

comment:1 Changed 5 years ago by jamal

Just in case I'll add that this problem was fixed with commit c99d3e2. tiny_psnr doesn't crash anymore in any platform, but for some reason the tests still fail in win64.

comment:2 Changed 5 years ago by michael

  • Keywords win64 added
  • Summary changed from filter-amix FATE tests errors to filter-amix FATE tests errors on win64

comment:3 Changed 5 years ago by michael

  • Resolution set to fixed
  • Status changed from new to closed

It seems the tests dont fail anymore (fate.ffmpeg.org), maybe one of the msvc fixes fixed it too. If it still fails for you, please reopen

Note: See TracTickets for help on using tickets.