parallaxsw / OpenSTA

GNU General Public License v3.0
52 stars 23 forks source link

ArrayTable critical error #103

Closed robertviramontes closed 1 month ago

robertviramontes commented 1 month ago

I'm working on a script that queries many timing paths (100s to 1000s) with find_timing_paths command. For each path, I specify a startpoint, endpoint, rise_throughs and fall_throughs.

After 100s of queries, OpenSTA reaches a critical error with the ArrayTable: max array table block count exceeded

Unfortunately, I am unable to share a specific test case at the moment. Psuedo-code of what I'm doing:

foreach path $list_of_paths {
  set timing_path [find_timing_paths -from path.startpoint -to path.endpoint -rise_through path.rise_throughs -fall_through path.fall_throughs]
  # report properties of interest on timing_path
}

I see where this is happening, exceeding the block_id_max of ArrayTable, but I am not exactly sure why using find_timing_paths is causing ArrayTable to grow.

As a hack, I was able to use sta::clear_state to reset and then reload design files, but wanted to understand more why I'm running into this limit and if there's a better way to avoid/remedy this limit?

jjcherry56 commented 1 month ago

It is/was basically a memory leak by a ArrayTable allocator caller. fixed by be563b67 issue103 ArrayTable critical error