Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix race condition #1874

Merged
merged 2 commits into from
Mar 11, 2022
Merged

Fix race condition #1874

merged 2 commits into from
Mar 11, 2022

Conversation

acomodi
Copy link
Contributor

@acomodi acomodi commented Mar 10, 2022

There seem to be yet another race condition that causes an intermittent failure:

- 2h40m: Traceback (most recent call last):
- 2h40m:   File "/root/prjxray/prjxray/utils/bit2fasm.py", line 126, in <module>
- 2h40m:     main()
- 2h40m:   File "/root/prjxray/prjxray/utils/bit2fasm.py", line 122, in main
- 2h40m:     args.canonical)
- 2h40m:   File "/root/prjxray/prjxray/utils/bit2fasm.py", line 50, in bits_to_fasm
- 2h40m:     sort_key=grid.tile_key,
- 2h40m:   File "/root/prjxray/prjxray/third_party/fasm/fasm/output.py", line 386, in merge_and_sort
- 2h40m:     for line in model:
- 2h40m:   File "/root/prjxray/prjxray/prjxray/fasm_disassembler.py", line 131, in find_features_in_bitstream
- 2h40m:     solved_bitdata, bitdata, verbose=verbose):
- 2h40m:   File "/root/prjxray/prjxray/prjxray/fasm_disassembler.py", line 61, in find_features_in_tile
- 2h40m:     tile_segbits = self.grid.get_tile_segbits_at_tilename(tile_name)
- 2h40m:   File "/root/prjxray/prjxray/prjxray/grid.py", line 149, in get_tile_segbits_at_tilename
- 2h40m:     return self.db.get_tile_segbits(gridinfo.tile_type)
- 2h40m:   File "/root/prjxray/prjxray/prjxray/db.py", line 218, in get_tile_segbits
- 2h40m:     self.tile_types[tile_type.upper()])
- 2h40m:   File "/root/prjxray/prjxray/prjxray/tile_segbits.py", line 95, in __init__
- 2h40m:     self.segbits[BlockType.CLB_IO_CLK] = read_segbits(f)
- 2h40m:   File "/root/prjxray/prjxray/prjxray/tile_segbits.py", line 75, in read_segbits
- 2h40m:     segbits[parts[0]] = [parsebit(val) for val in parts[1:]]
- 2h40m:   File "/root/prjxray/prjxray/prjxray/tile_segbits.py", line 75, in <listcomp>
- 2h40m:     segbits[parts[0]] = [parsebit(val) for val in parts[1:]]
- 2h40m:   File "/root/prjxray/prjxray/prjxray/tile_segbits.py", line 56, in parsebit
- 2h40m:     word_bit=int(word_bit_n),
- 2h40m: ValueError: invalid literal for int() with base 10: '1END2'

The above error is most probably a result of a .db file corruption from another process while it is being read to access its information.

@acomodi acomodi force-pushed the fix-race-condition branch 2 times, most recently from 4103390 to 123914b Compare March 10, 2022 12:56
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
@acomodi acomodi merged commit 8ef904d into f4pga:master Mar 11, 2022
@acomodi acomodi deleted the fix-race-condition branch March 11, 2022 09:58
@acomodi acomodi mentioned this pull request Mar 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant