The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.6k stars 556 forks source link

check_antennas double free segfault #3329

Closed gadfort closed 1 year ago

gadfort commented 1 year ago

Describe the bug

When running check_antennas it results in a double free or corruption segfault. In this case, the net was rst_ni

Here is the backtrace:

[INFO GRT-0043] No OR_DEFAULT vias defined.
double free or corruption (out)

Thread 1 "openroad" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737242349696) at ./nptl/pthread_kill.c:44
44      ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737242349696) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140737242349696) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140737242349696, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff4021476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff40077f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff40686f6 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff41bab8c "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#6  0x00007ffff407fd7c in malloc_printerr (str=str@entry=0x7ffff41bd7b0 "double free or corruption (out)") at ./malloc/malloc.c:5664
#7  0x00007ffff4081ef0 in _int_free (av=0x7ffff41f8c80 <main_arena>, p=0x55556d37c650, have_lock=<optimized out>) at ./malloc/malloc.c:4588
#8  0x00007ffff40844d3 in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3391
#9  0x00005555591e7497 in __gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::deallocate (this=0x7fffffffd1ef, __p=0x55556d37c660, __t=5087) at /usr/include/c++/11/ext/new_allocator.h:145
#10 0x00005555591e5458 in std::allocator_traits<std::allocator<std::__detail::_Hash_node_base*> >::deallocate (__a=..., __p=0x55556d37c660, __n=5087) at /usr/include/c++/11/bits/alloc_traits.h:496
#11 0x0000555559bffa47 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<grt::GSegment, true> > >::_M_deallocate_buckets (this=0x7fffffffd380, __bkts=0x55556d37c660, __bkt_count=5087)
    at /usr/include/c++/11/bits/hashtable_policy.h:1942
#12 0x0000555559bfe32e in std::_Hashtable<grt::GSegment, grt::GSegment, std::allocator<grt::GSegment>, std::__detail::_Identity, std::equal_to<grt::GSegment>, grt::GSegmentHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_deallocate_buckets (this=0x7fffffffd380, __bkts=0x55556d37c660, __bkt_count=5087)
    at /usr/include/c++/11/bits/hashtable.h:449
#13 0x0000555559bfca44 in std::_Hashtable<grt::GSegment, grt::GSegment, std::allocator<grt::GSegment>, std::__detail::_Identity, std::equal_to<grt::GSegment>, grt::GSegmentHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_deallocate_buckets (this=0x7fffffffd380) at /usr/include/c++/11/bits/hashtable.h:454
#14 0x0000555559bfb464 in std::_Hashtable<grt::GSegment, grt::GSegment, std::allocator<grt::GSegment>, std::__detail::_Identity, std::equal_to<grt::GSegment>, grt::GSegmentHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::~_Hashtable (this=0x7fffffffd380, __in_chrg=<optimized out>) at /usr/include/c++/11/bits/hashtable.h:1533
#15 0x0000555559bfabc6 in std::unordered_set<grt::GSegment, grt::GSegmentHash, std::equal_to<grt::GSegment>, std::allocator<grt::GSegment> >::~unordered_set (this=0x7fffffffd380, __in_chrg=<optimized out>)
    at /usr/include/c++/11/bits/unordered_set.h:97
#16 0x0000555559bf82c8 in grt::RepairAntennas::makeNetWire (this=0x55556b842790, db_net=0x5555638afc08, route=std::vector of length 4194, capacity 8192 = {...}, default_vias=std::map with 5 elements = {...})
    at /home/pgadfort/OpenROAD/src/grt/src/RepairAntennas.cpp:185
#17 0x0000555559bf7cad in grt::RepairAntennas::makeNetWires (this=0x55556b842790, routing=std::map with 9488 elements = {...}, max_routing_layer=6) at /home/pgadfort/OpenROAD/src/grt/src/RepairAntennas.cpp:105
#18 0x0000555559b9f97e in grt::GlobalRouter::makeNetWires (this=0x55555f647800) at /home/pgadfort/OpenROAD/src/grt/src/GlobalRouter.cpp:383
#19 0x000055555a60b0b6 in ant::AntennaChecker::checkAntennas (this=0x55555f661df0, net=0x0, verbose=false) at /home/pgadfort/OpenROAD/src/ant/src/AntennaChecker.cc:1737
#20 0x000055555a61baaf in ant::check_antennas (net_name=0x7ffff7fa9038 "", verbose=false) at /home/pgadfort/OpenROAD/build/src/ant/src/CMakeFiles/ant.dir/AntennaCheckerTCL_wrap.cxx:1735
#21 0x000055555a61beda in _wrap_check_antennas (clientData=0x0, interp=0x55555f694590, objc=3, objv=0x55555f6a2c40) at /home/pgadfort/OpenROAD/build/src/ant/src/CMakeFiles/ant.dir/AntennaCheckerTCL_wrap.cxx:1854
#22 0x00007ffff7e36d32 in TclNRRunCallbacks () from /lib/x86_64-linux-gnu/libtcl8.6.so
#23 0x00007ffff7e38028 in ?? () from /lib/x86_64-linux-gnu/libtcl8.6.so
#24 0x00007ffff7e37aa7 in Tcl_EvalEx () from /lib/x86_64-linux-gnu/libtcl8.6.so
#25 0x00007ffff7e38c9a in Tcl_Eval () from /lib/x86_64-linux-gnu/libtcl8.6.so
#26 0x00005555595261de in sta::sourceTclFile (filename=0x7fffffffe313 "../../sc_collected_files/openroad_db7b5b88649b2143f9a805a3e7197c48e1ea0a60/sc_apr.tcl", echo=false, verbose=false, interp=0x55555f694590)
    at /home/pgadfort/OpenROAD/src/sta/app/StaMain.cc:95
#27 0x000055555910d28e in tclAppInit (argc=@0x55555f363498: 2, argv=0x7fffffffe048, init_filename=0x55555c4fe9b7 ".openroad", interp=0x55555f694590) at /home/pgadfort/OpenROAD/src/Main.cc:417
#28 0x000055555910d543 in ord::tclAppInit (interp=0x55555f694590) at /home/pgadfort/OpenROAD/src/Main.cc:445
#29 0x00007ffff7eeab19 in Tcl_MainEx () from /lib/x86_64-linux-gnu/libtcl8.6.so
#30 0x000055555910cbf3 in main (argc=3, argv=0x7fffffffe048) at /home/pgadfort/OpenROAD/src/Main.cc:296

Expected Behavior

Not segfaulting

Environment

Git commit: aa1f8060d856733b82678802809c57bb260b3aac
kernel: Linux 5.15.90.1-microsoft-standard-WSL2
os: Ubuntu 22.04.2 LTS (Jammy Jellyfish)
cmake version 3.25.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: v2.0-8114-gaa1f8060d
-- System name: Linux
-- Compiler: GNU 11.3.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- Found GTest: /home/pgadfort/.local/lib/cmake/GTest/GTestConfig.cmake (found version "1.13.0")
-- The C compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Found SWIG: /usr/bin/swig4.0 (found suitable version "4.0.2", minimum required is "3.0")
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")
-- boost: 1.80.0
-- Found Python3: /usr/include/python3.10 (found version "3.10.6") found components: Development Development.Module Development.Embed
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found Threads: TRUE
-- spdlog: 1.8.1
-- Found BISON: /usr/bin/bison (found version "3.8.2")
-- Found Doxygen: /usr/bin/doxygen (found version "1.9.1") found components: doxygen dot
-- STA version: 2.4.0
-- STA git sha: 555493cba6e476bd2ff0b9a543de7a781276c2b3
-- System name: Linux
-- Compiler: GNU 11.3.0
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3 -DNDEBUG
-- Install prefix: /usr/local
-- Found FLEX: /usr/bin/flex (found version "2.6.4")
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- SSTA: 0
-- STA executable: /home/pgadfort/OpenROAD/src/sta/app/sta
-- GPU is not enabled
-- Found re2: /opt/or-tools/lib/cmake/re2/re2Config.cmake (found version "9.0.0")
-- Found Clp: /opt/or-tools/lib/cmake/Clp/ClpConfig.cmake (found version "1.17.7")
-- Found Cbc: /opt/or-tools/lib/cmake/Cbc/CbcConfig.cmake (found version "2.10.7")
-- Found Eigen3: /usr/local/share/eigen3/cmake/Eigen3Config.cmake (found version "3.4.0")
-- Found SCIP: /opt/or-tools/lib/cmake/scip/scip-config.cmake (found version "8.0.0")
-- GUI is enabled
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Could NOT find VTune (missing: VTune_LIBRARIES VTune_INCLUDE_DIRS)
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found suitable version "1.80.0", minimum required is "1.78")
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization system thread
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")
-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/tmp.r0ipP1j6qk

To Reproduce

sc_issue_spi_device_job0_route0_20230512-070042.tar.gz

tar xvf sc_issue_spi_device_job0_route0_20230512-070042.tar.gz
cd sc_issue_spi_device_job0_route0_20230512-070042
./run.sh

Relevant log output

OpenROAD v2.0-8053-gf839e309b 
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
Reading liberty file for fast: /home/amirv/sc_tools/siliconcompiler/third_party/pdks/skywater/skywater130/libs/sky130hd/v0_0_2/lib/sky130_fd_sc_hd__ff_100C_1v95.lib.gz
Reading liberty file for slow: /home/amirv/sc_tools/siliconcompiler/third_party/pdks/skywater/skywater130/libs/sky130hd/v0_0_2/lib/sky130_fd_sc_hd__ss_n40C_1v40.lib.gz
Reading liberty file for typical: /home/amirv/sc_tools/siliconcompiler/third_party/pdks/skywater/skywater130/libs/sky130hd/v0_0_2/lib/sky130_fd_sc_hd__tt_025C_1v80.lib.gz
Reading ODB: inputs/spi_device.odb
Reading SDC: inputs/spi_device.sdc
Warning: There are 152 input ports missing set_input_delay.
Warning: There are 102 output ports missing set_output_delay.
Warning: There are 110 unconstrained endpoints.
[INFO ORD-0030] Using 8 thread(s).
##########################################################
# ROUTING
##########################################################
#######################
# Helper functions
#######################
proc insert_fillers {} {
  upvar sc_filler sc_filler
  if { ! ( $sc_filler eq "" ) } {
    filler_placement $sc_filler
  }
  check_placement -verbose
  global_connect
}
#######################
# Add Fillers
#######################
insert_fillers
[INFO DPL-0001] Placed 75931 filler instances.
######################
# Setup detailed route options
######################
if {[dict exists $sc_cfg tool $sc_tool task $sc_task var drt_default_via]} {
  foreach via [dict exists $sc_cfg tool $sc_tool task $sc_task var drt_default_via] {
    detailed_route_set_default_via $via
  }
}
if {[dict exists $sc_cfg tool $sc_tool task $sc_task var drt_unidirectional_layer]} {
  foreach layer [dict exists $sc_cfg tool $sc_tool task $sc_task var drt_unidirectional_layer] {
    detailed_route_set_unidirectional_layer $via
  }
}
######################
# GLOBAL ROUTE
######################
# Pin access
if {$openroad_grt_use_pin_access == "true"} {
  openroad_pin_access_args []
  if {$openroad_drt_process_node != "false"} {
    lappend openroad_pin_access_args "-db_process_node" $openroad_drt_process_node
  }
  pin_access -bottom_routing_layer $sc_minmetal \
    -top_routing_layer $sc_maxmetal \
    {*}$openroad_pin_access_args
}
set sc_grt_arguments []
if {$openroad_grt_allow_congestion == "true"} {
  lappend sc_grt_arguments "-allow_congestion"
}
if {$openroad_grt_allow_overflow == "true"} {
  lappend sc_grt_arguments "-allow_overflow"
}
global_route -guide_file "./route.guide" \
  -congestion_iterations $openroad_grt_overflow_iter \
  -congestion_report_file "reports/${sc_design}_congestion.rpt" \
  -verbose \
  {*}$sc_grt_arguments
[INFO GRT-0020] Min routing layer: met1
[INFO GRT-0021] Max routing layer: met5
[INFO GRT-0022] Global adjustment: 0%
[INFO GRT-0023] Grid origin: (0, 0)
[INFO GRT-0043] No OR_DEFAULT vias defined.
[INFO GRT-0088] Layer li1     Track-Pitch = 0.4600  line-2-Via Pitch: 0.3400
[INFO GRT-0088] Layer met1    Track-Pitch = 0.3400  line-2-Via Pitch: 0.3400
[INFO GRT-0088] Layer met2    Track-Pitch = 0.4600  line-2-Via Pitch: 0.3500
[INFO GRT-0088] Layer met3    Track-Pitch = 0.6800  line-2-Via Pitch: 0.6150
[INFO GRT-0088] Layer met4    Track-Pitch = 0.9200  line-2-Via Pitch: 1.0400
[INFO GRT-0088] Layer met5    Track-Pitch = 3.4000  line-2-Via Pitch: 3.1100
[INFO GRT-0019] Found 153 clock nets.
[INFO GRT-0001] Minimum degree: 2
[INFO GRT-0002] Maximum degree: 1746
[INFO GRT-0003] Macros: 1
[INFO GRT-0004] Blockages: 29187

[INFO GRT-0053] Routing resources analysis:
          Routing      Original      Derated      Resource
Layer     Direction    Resources     Resources    Reduction (%)
---------------------------------------------------------------
li1        Vertical            0             0          0.00%
met1       Horizontal     414720        147163          64.52%
met2       Vertical       311040        146451          52.92%
met3       Horizontal     207360        101785          50.91%
met4       Vertical       124416         44046          64.60%
met5       Horizontal      41472         20878          49.66%
---------------------------------------------------------------

[INFO GRT-0101] Running extra iterations to remove overflow.
[INFO GRT-0197] Via related to pin nodes: 44512
[INFO GRT-0198] Via related Steiner nodes: 2123
[INFO GRT-0199] Via filling finished.
[INFO GRT-0111] Final number of vias: 52599
[INFO GRT-0112] Final usage 3D: 242887

[INFO GRT-0096] Final congestion report:
Layer         Resource        Demand        Usage (%)    Max H / Max V / Total Overflow
---------------------------------------------------------------------------------------
li1                  0             0            0.00%             0 /  0 /  0
met1            147163         37099           25.21%             0 /  0 /  0
met2            146451         35611           24.32%             0 /  0 /  0
met3            101785          7563            7.43%             0 /  0 /  0
met4             44046          4388            9.96%             0 /  0 /  0
met5             20878           429            2.05%             0 /  0 /  0
---------------------------------------------------------------------------------------
Total           460323         85090           18.48%             0 /  0 /  0

[INFO GRT-0018] Total wirelength: 793941 um
[INFO GRT-0014] Routed nets: 9488
######################
# Report and Repair Antennas
######################
estimate_parasitics -global_routing
if {[check_antennas -report_file "reports/${sc_design}_antenna.rpt"] != 0} {
  if {[llength [dict get $sc_cfg library $sc_mainlib asic cells antenna]] != 0} {
    set sc_antenna [lindex [dict get $sc_cfg library $sc_mainlib asic cells antenna] 0]
    # Remove filler cells before attempting to repair antennas
    remove_fillers
    repair_antenna $sc_antenna \
      -iterations $openroad_ant_iterations \
      -ratio_margin $openroad_ant_margin
    # Add filler cells back
    insert_fillers
    # Check antennas again to get final report
    check_antennas -report_file "reports/${sc_design}_antenna_post_repair.rpt"
  }
}
[INFO GRT-0043] No OR_DEFAULT vias defined.
double free or corruption (out)
Signal 6 received
Stack trace:

Screenshots

No response

Additional Context

No response

luis201420 commented 1 year ago

Hi @gadfort, I've been looking into your bug for the last week but it seems to be fixed in the latest versions of OR (commit grt: do not create virtual wires on first routing layer). Could you run the test again with the most recent version of OR and confirm that the bug is gone? I will be waiting for your confirmation

gadfort commented 1 year ago

@luis201420 I don't see the issue anymore. Thanks for checking. I'll close the issue.