On Thu, 08 Dec 2016 09:11:51 +1100, Tony Cook wrote: > > https://buildd.debian.org/status/package.php?p=libimager-perl&suite=sid > > > > ... > > Test Summary Report > > ------------------- > > t/150-type/030-double.t (Wstat: 10 Tests: 16 Failed: 0) > > Non-zero wait status: 10 > > Parse errors: Bad plan. You planned 136 tests but ran 16. > > This looks like an unaligned access from the tests that failed, > probably in imgdouble.c. > > Would it be possible to get access to this (or similar) hardware to > debug on?
Difficult :/ > Otherwise a backtrace for a -g build from the crash would be handy: > > perl Makefile.PL OPTIMIZE=-g > make > gdb --args perl -Mblib t/150-type/030-double.t > r > <crash here?> > bt Sure; this is from a mips sid chroot on minker (mips* porterbox): First verify the build failure: $ dpkg-buildpackage -uc -us [..] t/150-type/030-double.t ......... 1..136 ok 1 - use Imager; ok 2 - 1 channel image channel count mismatch ok 3 - 1 channel image bad mask ok 4 - 1 channel image thinks it is virtual # 64 double bits ok 5 - 1 channel image has bits != 64 ok 6 - 1 channel image isn't direct ok 7 - 1 channel image width incorrect ok 8 - 1 channel image height incorrect ok 9 - 3 channel image channel count mismatch ok 10 - 3 channel image bad mask ok 11 - 3 channel image has bits != 64 ok 12 - 3 channel image isn't direct ok 13 - - got right color (0, 0) ok 14 - - got right color (99, 0) ok 15 - - got right color (0, 100) ok 16 - - got right color (99, 100) Failed 120/136 subtests [..] Test Summary Report ------------------- t/150-type/030-double.t (Wstat: 10 Tests: 16 Failed: 0) Non-zero wait status: 10 Parse errors: Bad plan. You planned 136 tests but ran 16. [...] Good. Now on the the debug build and test: $ perl Makefile.PL OPTIMIZE=-g [..] $ make [..] $ gdb --args perl -Mblib t/150-type/030-double.t [..] (gdb) r Starting program: /usr/bin/perl -Mblib t/150-type/030-double.t warning: GDB can't find the start of the function at 0x77fc6b8c. GDB is unable to find the start of the function at 0x77fc6b8c and thus can't determine the size of that function's stack frame. This means that GDB may be unable to access that stack frame, or the frames below it. This problem is most likely caused by an invalid program counter or stack pointer. However, if you think GDB should simply search farther back from 0x77fc6b8c for code which looks like the beginning of a function, you can increase the range of the search using the `set heuristic-fence-post' command. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/mips-linux-gnu/libthread_db.so.1". warning: GDB can't find the start of the function at 0x77fc7648. warning: GDB can't find the start of the function at 0x77fca0e8. warning: GDB can't find the start of the function at 0x77fdb194. 1..136 warning: GDB can't find the start of the function at 0x77fca0e8. warning: GDB can't find the start of the function at 0x77fdb194. warning: GDB can't find the start of the function at 0x77fca0e8. warning: GDB can't find the start of the function at 0x77fdb194. warning: GDB can't find the start of the function at 0x77fca0e8. warning: GDB can't find the start of the function at 0x77fdb194. warning: GDB can't find the start of the function at 0x77fca0e8. warning: GDB can't find the start of the function at 0x77fdb194. ok 1 - use Imager; ok 2 - 1 channel image channel count mismatch ok 3 - 1 channel image bad mask ok 4 - 1 channel image thinks it is virtual # 64 double bits ok 5 - 1 channel image has bits != 64 ok 6 - 1 channel image isn't direct ok 7 - 1 channel image width incorrect ok 8 - 1 channel image height incorrect ok 9 - 3 channel image channel count mismatch ok 10 - 3 channel image bad mask ok 11 - 3 channel image has bits != 64 ok 12 - 3 channel image isn't direct ok 13 - - got right color (0, 0) ok 14 - - got right color (99, 0) ok 15 - - got right color (0, 100) ok 16 - - got right color (99, 100) ok 17 - sanity glin @0 - check colors (0, 0) ok 18 - sanity glin @100 - check colors (0, 100) ok 19 - check after write - check colors (0, 1) ok 20 - couldn't make double image ok 21 - oo didn't give double image ok 22 - not monochrome ok 23 - oo copy didn't give double image ok 24 - fail making 0 width image ok 25 - and correct message ok 26 - fail making 0 height image ok 27 - and correct message ok 28 - fail making -ve width image ok 29 - and correct message ok 30 - fail making -ve height image ok 31 - and correct message ok 32 - fail making 0 channel image ok 33 - and correct message ok 34 - fail making 5 channel image ok 35 - and correct message ok 36 - integer overflow check - 1 channel ok 37 - but same width ok ok 38 - but same height ok ok 39 - check the error message ok 40 - integer overflow check - 3 channel ok 41 - but same width ok ok 42 - but same height ok ok 43 - check the error message # channel mask tests # with ppix ok 44 - set to default mask ok 45 - set to white all channels ok 46 - got right color (0, 0) ok 47 - set channel to exclude channel1 ok 48 - set to grey, no channel 2 ok 49 - got right color (0, 0) # with plin ok 50 - set to default mask ok 51 - set to white all channels ok 52 - got right color (0, 1) ok 53 - set channel to exclude channel1 ok 54 - set to grey, no channel 2 ok 55 - got right color (0, 1) # with ppixf ok 56 - set to default mask ok 57 - set to white all channels ok 58 - ppixf - got right color (0, 2) ok 59 - set channel to exclude channel1 ok 60 - set to grey, no channel 2 ok 61 - ppixf masked - got right color (0, 2) # with plinf ok 62 - set to default mask ok 63 - set to white all channels ok 64 - plinf - got right color (0, 3) ok 65 - set channel to exclude channel1 ok 66 - set to grey, no channel 2 ok 67 - plinf masked - got right color (0, 3) ok 68 - bounds check get (-1, 0) ok 69 - bounds check get (10, 0) ok 70 - bounds check get (0, -1) ok 71 - bounds check get (0, 10) ok 72 - bounds check get (-1, 0) float ok 73 - bounds check get (10, 0) float ok 74 - bounds check get (0, -1) float ok 75 - bounds check get (0, 10) float ok 76 - bounds check set (-1, 0) ok 77 - bounds check set (10, 0) ok 78 - bounds check set (0, -1) ok 79 - bounds check set (0, 10) ok 80 - bounds check set (-1, 0) float ok 81 - bounds check set (10, 0) float ok 82 - bounds check set (0, -1) float ok 83 - bounds check set (0, 10) float # check conversion to double ok 84 - check bits ok 85 - check image data matches ok 86 - make empty image ok 87 - convert empty image to double ok 88 - check message # psamp ok 89 - i_psamp def channels, 3 samples ok 90 - check color written ok 91 - i_psamp def channels, 3 samples, masked ok 92 - check color written ok 93 - i_psamp channels listed, 3 samples, masked ok 94 - check color written ok 95 - i_psamp channels [0, 1], 4 samples ok 96 - check first color written ok 97 - check second color written ok 98 - write a full row ok 99 - check full row ok 100 - i_psamp channels [0, 1, 2], 9 samples, but room for 6 ok 101 - i_psamp channels [0, 1, 3], 3 samples (invalid channel number) ok 102 - check error message ok 103 - i_psamp channels [0, 1, -1], 3 samples (invalid channel number) ok 104 - check error message ok 105 - negative y ok 106 - check error message ok 107 - y overflow ok 108 - check error message ok 109 - negative x ok 110 - check error message ok 111 - x overflow ok 112 - check error message # end psamp tests # psampf ok 113 - i_psampf def channels, 3 samples ok 114 - check color written ok 115 - i_psampf def channels, 3 samples, masked ok 116 - check color written ok 117 - i_psampf channels listed, 3 samples, masked ok 118 - check color written ok 119 - i_psampf channels [0, 1], 4 samples ok 120 - check first color written ok 121 - check second color written ok 122 - write a full row ok 123 - check full row ok 124 - i_psampf channels [0, 1, 2], 9 samples, but room for 6 ok 125 - i_psampf channels [0, 1, 3], 3 samples (invalid channel number) ok 126 - check error message ok 127 - i_psampf channels [0, 1, -1], 3 samples (invalid channel number) ok 128 - check error message ok 129 - negative y ok 130 - check error message ok 131 - y overflow ok 132 - check error message ok 133 - negative x ok 134 - check error message ok 135 - x overflow ok 136 - check error message # end psampf tests [Inferior 1 (process 23106) exited normally] So no crash, no stack. But scary warnings at the top. And I'm afraid that's where my gdb skills end :/ Cheers, gregor -- .''`. https://info.comodo.priv.at/ - Debian Developer https://www.debian.org : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06 `. `' Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe `- NP: Rolling Stones: Going Mad
signature.asc
Description: Digital Signature