llvm / llvm/circt

[CI] Most tests fail on Ubuntu 18.04

Open
#1,065 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
2.2k
Forks
524
Avg merge
3d 2h
Merged PRs (30d)
46

Description

I have a Docker-based repro: https://github.com/llvm/circt/blob/crashes-1804/utils/run-docker-1804.sh. Just run `./utils/run-docker-1804.sh`. This is running the LLVM build in the release config w/ asserts enabled and CIRCT in debug. I've attached a log of the crashes: [test_fails.log](https://github.com/llvm/circt/files/6495753/test_fails.log).

```
Failed Tests (210):
CIRCT :: CAPI/ir.c
CIRCT :: Conversion/FIRRTLToHW/errors.mlir
CIRCT :: Conversion/FIRRTLToHW/lower-to-hw-errors.mlir
CIRCT :: Conversion/FIRRTLToHW/lower-to-hw-module.mlir
CIRCT :: Conversion/FIRRTLToHW/lower-to-hw.mlir
CIRCT :: Conversion/FIRRTLToHW/zero-width.mlir
CIRCT :: Conversion/FIRRTLToLLHD/connect.fir
CIRCT :: Conversion/FIRRTLToLLHD/empty_inouts.fir
CIRCT :: Conversion/FIRRTLToLLHD/empty_ins.fir
CIRCT :: Conversion/FIRRTLToLLHD/empty_none.fir
CIRCT :: Conversion/FIRRTLToLLHD/empty_outs.fir
CIRCT :: Conversion/HWToLLHD/errors.mlir
CIRCT :: Conversion/HWToLLHD/structure.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/simple_addi.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_branch.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_buffer.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_cmerge.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_conditional_branch.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_constant.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_fork.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_join.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_lazy_fork.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_load.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_memory.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_merge.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_mux.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_sink.mlir
CIRCT :: Conversion/HandshakeToFIRRTL/test_store.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_arithmetic.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_bitwise.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_entity.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_extract.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_insert.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_memory.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_process_persistence.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_signals.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_simple.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_value_creation.mlir
CIRCT :: Conversion/LLHDToLLVM/convert_wait.mlir
CIRCT :: Conversion/StandardToHandshake/Affine/errors.mlir
CIRCT :: Conversion/StandardToHandshake/Affine/test-affine-for.mlir
CIRCT :: Conversion/StandardToHandshake/Affine/test-affine-load-store.mlir
CIRCT :: Conversion/StandardToHandshake/test1.mlir
CIRCT :: Conversion/StandardToHandshake/test10.mlir
CIRCT :: Conversion/StandardToHandshake/test11.mlir
CIRCT :: Conversion/StandardToHandshake/test12.mlir
CIRCT :: Conversion/StandardToHandshake/test13.mlir
CIRCT :: Conversion/StandardToHandshake/test14.mlir
CIRCT :: Conversion/StandardToHandshake/test15.mlir
CIRCT :: Conversion/StandardToHandshake/test16.mlir
CIRCT :: Conversion/StandardToHandshake/test17.mlir
CIRCT :: Conversion/StandardToHandshake/test18.mlir
CIRCT :: Conversion/StandardToHandshake/test19.mlir
CIRCT :: Conversion/StandardToHandshake/test2.mlir
CIRCT :: Conversion/StandardToHandshake/test20.mlir
CIRCT :: Conversion/StandardToHandshake/test21.mlir
CIRCT :: Conversion/StandardToHandshake/test22.mlir
CIRCT :: Conversion/StandardToHandshake/test23.mlir
CIRCT :: Conversion/StandardToHandshake/test24.mlir
CIRCT :: Conversion/StandardToHandshake/test25.mlir
CIRCT :: Conversion/StandardToHandshake/test26.mlir
CIRCT :: Conversion/StandardToHandshake/test27.mlir
CIRCT :: Conversion/StandardToHandshake/test28.mlir
CIRCT :: Conversion/StandardToHandshake/test29.mlir
CIRCT :: Conversion/StandardToHandshake/test3.mlir
CIRCT :: Conversion/StandardToHandshake/test30.mlir
CIRCT :: Conversion/StandardToHandshake/test31.mlir
CIRCT :: Conversion/StandardToHandshake/test32.mlir
CIRCT :: Conversion/StandardToHandshake/test33.mlir
CIRCT :: Conversion/StandardToHandshake/test34.mlir
CIRCT :: Conversion/StandardToHandshake/test35.mlir
CIRCT :: Conversion/StandardToHandshake/test4.mlir
CIRCT :: Conversion/StandardToHandshake/test5.mlir
CIRCT :: Conversion/StandardToHandshake/test6.mlir
CIRCT :: Conversion/StandardToHandshake/test7.mlir
CIRCT :: Conversion/StandardToHandshake/test8.mlir
CIRCT :: Conversion/StandardToHandshake/test9.mlir
CIRCT :: Conversion/StandardToHandshake/test_canonicalize.mlir
CIRCT :: Conversion/StandardToHandshake/test_insert_buffer.mlir
CIRCT :: Conversion/StandardToHandshake/test_insert_buffer_errors.mlir
CIRCT :: Conversion/StandardToStaticLogic/test_pipeline.mlir
CIRCT :: Dialect/ESI/connectivity.mlir
CIRCT :: Dialect/ESI/errors.mlir
CIRCT :: Dialect/ESI/lowering.mlir
CIRCT :: Dialect/ESI/modwrap.mlir
CIRCT :: Dialect/ESI/wrapif-lowering.mlir
CIRCT :: Dialect/FIRRTL/annotations.fir
CIRCT :: Dialect/FIRRTL/blackbox-memory.mlir
CIRCT :: Dialect/FIRRTL/canonicalization.mlir
CIRCT :: Dialect/FIRRTL/check-widths-errors.mlir
CIRCT :: Dialect/FIRRTL/connect-errors.mlir
CIRCT :: Dialect/FIRRTL/connect.mlir
CIRCT :: Dialect/FIRRTL/const-prop-single-module.mlir
CIRCT :: Dialect/FIRRTL/cse.mlir
CIRCT :: Dialect/FIRRTL/errors.mlir
CIRCT :: Dialect/FIRRTL/expand-whens-errors.mlir
CIRCT :: Dialect/FIRRTL/expand-whens.mlir
CIRCT :: Dialect/FIRRTL/imconstprop.mlir
CIRCT :: Dialect/FIRRTL/infer-widths-errors.mlir
CIRCT :: Dialect/FIRRTL/infer-widths.mlir
CIRCT :: Dialect/FIRRTL/inliner.mlir
CIRCT :: Dialect/FIRRTL/lower-types-errors.mlir
CIRCT :: Dialect/FIRRTL/lower-types.mlir
CIRCT :: Dialect/FIRRTL/parse-basic.fir
CIRCT :: Dialect/FIRRTL/parse-errors.fir
CIRCT :: Dialect/FIRRTL/parse-locations.fir
CIRCT :: Dialect/FIRRTL/test.mlir
CIRCT :: Dialect/HW/basic.mlir
CIRCT :: Dialect/HW/bitwise.mlir
CIRCT :: Dialect/HW/canonicalization.mlir
CIRCT :: Dialect/HW/errors.mlir
CIRCT :: Dialect/HW/greybox.mlir
CIRCT :: Dialect/HW/modules.mlir
CIRCT :: Dialect/HW/svEmitErrors.mlir
CIRCT :: Dialect/HW/typedecls.mlir
CIRCT :: Dialect/HW/types.mlir
CIRCT :: Dialect/Handshake/errors.mlir
CIRCT :: Dialect/LLHD/Canonicalization/arithmetic.mlir
CIRCT :: Dialect/LLHD/Canonicalization/bitwise.mlir
CIRCT :: Dialect/LLHD/Canonicalization/constant.mlir
CIRCT :: Dialect/LLHD/Canonicalization/extract.mlir
CIRCT :: Dialect/LLHD/Canonicalization/memory.mlir
CIRCT :: Dialect/LLHD/Canonicalization/probeCSE.mlir
CIRCT :: Dialect/LLHD/Canonicalization/signalOps.mlir
CIRCT :: Dialect/LLHD/Export/verilog_arithmetic.mlir
CIRCT :: Dialect/LLHD/Export/verilog_bitwise.mlir
CIRCT :: Dialect/LLHD/Export/verilog_entity.mlir
CIRCT :: Dialect/LLHD/Export/verilog_relations.mlir
CIRCT :: Dialect/LLHD/Export/verilog_sig.mlir
CIRCT :: Dialect/LLHD/Export/verilog_sig_errors.mlir
CIRCT :: Dialect/LLHD/IR/arithmetic.mlir
CIRCT :: Dialect/LLHD/IR/array.mlir
CIRCT :: Dialect/LLHD/IR/bitwise.mlir
CIRCT :: Dialect/LLHD/IR/connect-errors.mlir
CIRCT :: Dialect/LLHD/IR/connect.mlir
CIRCT :: Dialect/LLHD/IR/const.mlir
CIRCT :: Dialect/LLHD/IR/entity.mlir
CIRCT :: Dialect/LLHD/IR/extract-errors.mlir
CIRCT :: Dialect/LLHD/IR/extract.mlir
CIRCT :: Dialect/LLHD/IR/insert-errors.mlir
CIRCT :: Dialect/LLHD/IR/insert.mlir
CIRCT :: Dialect/LLHD/IR/inst-errors.mlir
CIRCT :: Dialect/LLHD/IR/inst.mlir
CIRCT :: Dialect/LLHD/IR/memory.mlir
CIRCT :: Dialect/LLHD/IR/proc.mlir
CIRCT :: Dialect/LLHD/IR/reg.mlir
CIRCT :: Dialect/LLHD/IR/signal-errors.mlir
CIRCT :: Dialect/LLHD/IR/signal.mlir
CIRCT :: Dialect/LLHD/IR/time.mlir
CIRCT :: Dialect/LLHD/IR/tuple.mlir
CIRCT :: Dialect/LLHD/IR/wait.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_arbitrary_signal_size.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_array_boundary_check.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_bit_precision_drives.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_formats.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_process.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_reg.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_shifts.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_simple.mlir
CIRCT :: Dialect/LLHD/Simulator/sim_wait.mlir
CIRCT :: Dialect/LLHD/Transforms/earlyCodeMotion.mlir
CIRCT :: Dialect/LLHD/Transforms/memoryToBlockArgument.mlir
CIRCT :: Dialect/LLHD/Transforms/processLowering.mlir
CIRCT :: Dialect/LLHD/Transforms/processLoweringErrors.mlir
CIRCT :: Dialect/LLHD/Transforms/totalFunctionInlining.mlir
CIRCT :: Dialect/MSFT/location.mlir
CIRCT :: Dialect/MSFT/opt-errors.mlir
CIRCT :: Dialect/MSFT/translate-errors.mlir
CIRCT :: Dialect/SV/basic.mlir
CIRCT :: Dialect/SV/canonicalization.mlir
CIRCT :: Dialect/SV/errors.mlir
CIRCT :: Dialect/SV/hw-cleanup.mlir
CIRCT :: Dialect/SV/hw-generator-callout.mlir
CIRCT :: Dialect/SV/hw-legalize-names-errors.mlir
CIRCT :: Dialect/SV/hw-legalize-names.mlir
CIRCT :: Dialect/SV/hw-memsim.mlir
CIRCT :: Dialect/SV/interfaces.mlir
CIRCT :: Dialect/SV/prettify-verilog.mlir
CIRCT :: Dialect/Seq/basic.mlir
CIRCT :: ExportVerilog/hw-dialect.mlir
CIRCT :: ExportVerilog/hw-typedecls.mlir
CIRCT :: ExportVerilog/line-length.mlir
CIRCT :: ExportVerilog/load-dialect.mlir
CIRCT :: ExportVerilog/sv-alwaysff.mlir
CIRCT :: ExportVerilog/sv-dialect.mlir
CIRCT :: ExportVerilog/sv-interfaces.mlir
CIRCT :: ExportVerilog/verilog-basic.mlir
CIRCT :: ExportVerilog/verilog-errors.mlir
CIRCT :: circt-opt/trivial.mlir
CIRCT :: circt-translate/parse_int64.fir
CIRCT :: firtool/firtool.fir
CIRCT :: firtool/firtool.mlir
CIRCT :: firtool/optimizations.fir
CIRCT :: firtool/phase-ordering.fir
CIRCT :: firtool/split-verilog.mlir
CIRCT :: firtool/style.fir
CIRCT :: handshake-runner/call_bb.mlir
CIRCT :: handshake-runner/cdiv-old-std.mlir
CIRCT :: handshake-runner/cdiv-std.mlir
CIRCT :: handshake-runner/complex_bb.mlir
CIRCT :: handshake-runner/floydwarshall-std.mlir
CIRCT :: handshake-runner/histogram-std.mlir
CIRCT :: handshake-runner/loadstore.mlir
CIRCT :: handshake-runner/loop-check-1-std.mlir
CIRCT :: handshake-runner/loop-check-2-std.mlir
CIRCT :: handshake-runner/matmul-check-std.mlir
CIRCT :: handshake-runner/matmul-std.mlir
CIRCT :: handshake-runner/memory_simple_2_std.mlir
CIRCT :: handshake-runner/memory_simple_std.mlir
CIRCT :: handshake-runner/simple_loop.mlir

Testing Time: 1.34s
Unsupported: 4
Passed : 6
Failed : 210
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by running utils/run-docker-1804.sh to reproduce the Ubuntu 18.04 failures, then inspect test_fails.log and the listed failed tests. Compare the release LLVM build with asserts enabled and the debug CIRCT configuration described in the issue. Done means identifying the common cause and restoring the affected test suite to passing on this environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, docker, ubuntu
Domain
ci-cd, operating-systems, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.