[Bug go/61620] New: FAIL: go.test/test/fixedbugs/bug242.go execution, -O2 -g

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Jun 26 15:16:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61620

            Bug ID: 61620
           Summary: FAIL: go.test/test/fixedbugs/bug242.go execution,  -O2
                    -g
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: ubizjak at gmail dot com
                CC: cmang at google dot com

Execute of go.test/test/fixedbugs/bug242.go fails on i686-linux-gnu with "fatal
error: freeing too small block".

[uros@localhost test]$ LD_LIBRARY_PATH=. gdb ./bug242.x             
GNU gdb (GDB) Fedora 7.7.1-13.fc20
Copyright (C) 2014 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-redhat-linux-gnu".
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 ./bug242.x...done.
(gdb) r
Starting program: /home/uros/test/bug242.x 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0xf756acc0 (LWP 5016)]
fatal error: freeing too small block

goroutine 16 [running]:
runtime_dopanic
        /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:129
runtime_throw
        /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:167
__go_free
        /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366
__go_map_delete
        /home/uros/gcc-svn/trunk/libgo/runtime/go-map-delete.c:50
runtime.mapdelete
        /home/uros/gcc-svn/trunk/libgo/runtime/map.goc:47
main.main
       
/home/uros/gcc-svn/trunk/gcc/testsuite/go.test/test/fixedbugs/bug242.go:96
runtime_main
        /home/uros/gcc-svn/trunk/libgo/runtime/proc.c:571
panic during panic

goroutine 16 [running]:
runtime_dopanic
        /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:129
runtime_startpanic
        /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:98
runtime_throw
        /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:165
runtime_mallocgc
        /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:115
__go_alloc
        /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:333
callback
        /home/uros/gcc-svn/trunk/libgo/runtime/go-caller.c:47
dwarf_lookup_pc
        /home/uros/gcc-svn/trunk/libbacktrace/dwarf.c:2838
dwarf_fileline
        /home/uros/gcc-svn/trunk/libbacktrace/dwarf.c:2877
backtrace_pcinfo
        /home/uros/gcc-svn/trunk/libbacktrace/fileline.c:176
__go_file_line
        /home/uros/gcc-svn/trunk/libgo/runtime/go-caller.c:125
runtime_printcreatedby
        /home/uros/gcc-svn/trunk/libgo/runtime/proc.c:636
runtime_dopanic
        /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:130
runtime_throw
        /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:167
__go_free
        /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366
__go_map_delete
        /home/uros/gcc-svn/trunk/libgo/runtime/go-map-delete.c:50
runtime.mapdelete
        /home/uros/gcc-svn/trunk/libgo/runtime/map.goc:47
main.main
       
/home/uros/gcc-svn/trunk/gcc/testsuite/go.test/test/fixedbugs/bug242.go:96
runtime_main
        /home/uros/gcc-svn/trunk/libgo/runtime/proc.c:571
stack trace unavailable
[Thread 0xf756acc0 (LWP 5016) exited]
[Inferior 1 (process 5012) exited with code 04]


Breakpoint in runtime_dopanic:

Breakpoint 1, runtime_dopanic (unused=0) at
/home/uros/gcc-svn/trunk/libgo/runtime/panic.c:114
114     {
(gdb) bt
#0  runtime_dopanic (unused=0) at
/home/uros/gcc-svn/trunk/libgo/runtime/panic.c:114
#1  0xf7978ddf in runtime_throw (s=0xf7c90526 "freeing too small block") at
/home/uros/gcc-svn/trunk/libgo/runtime/panic.c:167
#2  0xf7981f7d in __go_free (v=0x18204018) at
/home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366
#3  0xf796a8a4 in __go_map_delete (map=0x18200000, key=0xf6f1cf39) at
/home/uros/gcc-svn/trunk/libgo/runtime/go-map-delete.c:50
#4  0xf7982d35 in runtime.mapdelete (h=0x18200000, key=0xf6f1cf39 "\r") at
/home/uros/gcc-svn/trunk/libgo/runtime/map.goc:47
#5  0x08049eb6 in main.main () at
/home/uros/gcc-svn/trunk/gcc/testsuite/go.test/test/fixedbugs/bug242.go:96
(gdb) f 2
#2  0xf7981f7d in __go_free (v=0x18204018) at
/home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366
366                     runtime_throw("freeing too small block");
(gdb) list
361             size = s->elemsize;
362             sizeclass = s->sizeclass;
363             // Objects that are smaller than TinySize can be allocated
using tiny alloc,
364             // if then such object is combined with an object with
finalizer, we will crash.
365             if(size < TinySize)
366                     runtime_throw("freeing too small block");
367
368             if(raceenabled)
369                     runtime_racefree(v);
370
(gdb) p size
$1 = 8
(gdb) p TinySize
$2 = TinySize
(gdb)



More information about the Gcc-bugs mailing list