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

LLVM error: "Instruction does not dominate all uses!" on Windows #72470

Closed
kryptan opened this issue May 22, 2020 · 31 comments
Closed

LLVM error: "Instruction does not dominate all uses!" on Windows #72470

kryptan opened this issue May 22, 2020 · 31 comments
Assignees
Labels
A-async-await Area: Async & Await A-codegen Area: Code generation A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ ICEBreaker-Cleanup-Crew Helping to "clean up" bugs with minimal examples and bisections ICEBreaker-LLVM Bugs identified for the LLVM ICE-breaker group O-windows-msvc Toolchain: MSVC, Operating system: Windows P-high High priority regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@kryptan
Copy link
Contributor

kryptan commented May 22, 2020

Code

Project is here: https://github.com/kryptan/llvm-error

Compile with cargo test --release on Windows-MSVC (compilation on Linux works fine).

src/lib.rs:

use std::future::Future;
use std::sync::Arc;

pub async fn run() {
    foo(|| async { create() }).await;
    foo(|| async { create() }).await;
}

async fn foo<F>(create: impl Fn() -> F)
where
    F: Future<Output = Struct>,
{
    call_empty::<()>(create().await, "").await;
}

struct Struct {
    _vec: Vec<u8>,
    _arc: Arc<()>,
}

fn create() -> Struct {
    Struct {
        _vec: Vec::new(),
        _arc: Arc::new(()),
    }
}

async fn call_empty<R>(_: Struct, _: &str) {
    empty()
}

fn empty() {}

tests/test.rs:

use std::future::Future;

#[test]
fn test() {
    let _: Box<dyn Future<Output = ()>> = Box::new(llvm_eror::run());
}

Meta

I tried two versions of the compiler (LLVM 9 & LLVM 10):

rustc --version --verbose:

rustc 1.45.0-nightly (9310e3bd4 2020-05-21)
binary: rustc
commit-hash: 9310e3bd4f425f84fc27878ebf2bda1f30935a63
commit-date: 2020-05-21
host: x86_64-pc-windows-msvc
release: 1.45.0-nightly
LLVM version: 10.0

rustc --version --verbose:

rustc 1.45.0-nightly (a74d1862d 2020-05-14)
binary: rustc
commit-hash: a74d1862d4d87a56244958416fd05976c58ca1a8
commit-date: 2020-05-14
host: x86_64-pc-windows-msvc
release: 1.45.0-nightly
LLVM version: 9.0

Error output

Instruction does not dominate all uses!
  %117 = phi i8* [ %117, %111 ], [ %117, %105 ], [ %43, %60 ], [ %43, %58 ], [ %51, %56 ]
  %117 = phi i8* [ %117, %111 ], [ %117, %105 ], [ %43, %60 ], [ %43, %58 ], [ %51, %56 ]
Instruction does not dominate all uses!
  %117 = phi i8* [ %117, %111 ], [ %117, %105 ], [ %43, %60 ], [ %43, %58 ], [ %51, %56 ]
  %117 = phi i8* [ %117, %111 ], [ %117, %105 ], [ %43, %60 ], [ %43, %58 ], [ %51, %56 ]
Instruction does not dominate all uses!
  %228 = phi i8* [ %228, %222 ], [ %228, %216 ], [ %155, %171 ], [ %155, %169 ], [ %162, %167 ]
  %228 = phi i8* [ %228, %222 ], [ %228, %216 ], [ %155, %171 ], [ %155, %169 ], [ %162, %167 ]
Instruction does not dominate all uses!
  %228 = phi i8* [ %228, %222 ], [ %228, %216 ], [ %155, %171 ], [ %155, %169 ], [ %162, %167 ]
  %228 = phi i8* [ %228, %222 ], [ %228, %216 ], [ %155, %171 ], [ %155, %169 ], [ %162, %167 ]
in function _ZN97_$LT$core..future..from_generator..GenFuture$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$4poll17hf4840ccb0415d3e1E
LLVM ERROR: Broken function found, compilation aborted!
error: could not compile `llvm_eror`.
@kryptan kryptan added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels May 22, 2020
@jonas-schievink jonas-schievink added A-async-await Area: Async & Await A-codegen Area: Code generation A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. I-prioritize Issue: Indicates that prioritization has been requested for this issue. O-windows-msvc Toolchain: MSVC, Operating system: Windows E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc labels May 22, 2020
@jonas-schievink
Copy link
Contributor

Regression from rustc 1.45.0-nightly (bad3bf6 2020-05-09) to rustc 1.45.0-nightly (9912925 2020-05-10)

bad3bf6...9912925

Further bisection might be needed

@jonas-schievink jonas-schievink added regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example labels May 22, 2020
@jonas-schievink
Copy link
Contributor

A smaller reproduction would be useful (if that's possible), marking needs-mcve

@jonas-schievink
Copy link
Contributor

@rustbot ping cleanup

@rustbot rustbot added the ICEBreaker-Cleanup-Crew Helping to "clean up" bugs with minimal examples and bisections label May 23, 2020
@rustbot
Copy link
Collaborator

rustbot commented May 23, 2020

Hey Cleanup Crew ICE-breakers! This bug has been identified as a good
"Cleanup ICE-breaking candidate". In case it's useful, here are some
instructions for tackling these sorts of bugs. Maybe take a look?
Thanks! <3

cc @AminArria @chrissimpkins @contrun @DutchGhost @elshize @ethanboxx @h-michael @HallerPatrick @hdhoang @hellow554 @imtsuki @jakevossen5 @kanru @KarlK90 @LeSeulArtichaut @MAdrianMattocks @matheus-consoli @mental32 @nmccarty @Noah-Kennedy @pard68 @PeytonT @pierreN @Redblueflame @RobbieClarken @RobertoSnap @robjtede @SarthakSingh31 @senden9 @shekohex @sinato @spastorino @turboladen @woshilapin @yerke

@JohnTitor
Copy link
Member

With some bisection, I think this caused by #71840, cc @matthewjasper

@jonas-schievink jonas-schievink removed the E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc label May 25, 2020
@LeSeulArtichaut LeSeulArtichaut added P-critical Critical priority and removed I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels May 26, 2020
@LeSeulArtichaut
Copy link
Contributor

Assigning P-critical, and pinging the LLVM ICE-breaker group as discussed as part of the Prioritization WG process.

@rustbot ping llvm

@rustbot rustbot added the ICEBreaker-LLVM Bugs identified for the LLVM ICE-breaker group label May 26, 2020
@rustbot
Copy link
Collaborator

rustbot commented May 26, 2020

Hey LLVM ICE-breakers! This bug has been identified as a good
"LLVM ICE-breaking candidate". In case it's useful, here are some
instructions for tackling these sorts of bugs. Maybe take a look?
Thanks! <3

cc @comex @CrazyDebugger @cuviper @DutchGhost @hanna-kruppe @hdhoang @heyrutvik @JOE1994 @jryans @mmilenko @nagisa @nikic @Noah-Kennedy @SiavoshZarrasvand @spastorino @vertexclique

@tmandry tmandry added the AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. label May 26, 2020
@pnkfelix
Copy link
Member

self-assigning, with plan to revert injecting PR before it hits beta.

@pnkfelix pnkfelix self-assigned this May 28, 2020
@matthewjasper
Copy link
Contributor

So, investigating this bug some more:

  • Merging everything into 1 crate doesn't give a broken IR error
  • -C codegen-units=1 doesn't give a broken IR error
  • --emit llvm-ir -C no-prepopulate-passes causes an assertion in llvm (if enabled), but works on nightly. llc then happily compiles to asm.

So reverting is the only thing that I can think of to fix this.

@nagisa
Copy link
Member

nagisa commented Jun 6, 2020

So reverting is the only thing that I can think of to fix this.

Is the only quick fix, I guess.

Ultimately this extremely likely to be an issue in LLVM itself – you cannot really construct a IR malformed in a way that would raise this error in lowering to LLVM-IR (I believe almost by construction of the LLVM API), especially because we do not generate phis.

I think the PR in question is worthwhile enough to warrant spending time looking into it, so I would love to see an issue filled with links to all the information we currently have so that it does not get lost as this one is closed by the PR above.

@pnkfelix
Copy link
Member

@xtutu I tried to reproduce the problem in a Windows VM with your temp-rust-debug repository, but I was not able to do so at the commits you highlighted.

There's one more factor I haven't accounted for: Changes to crate dependencies. Can you check-in a Cargo.lock file into temp-rust-debug, one that shows the problem atop 3e9935f4d1b361ac557?

@xtutu
Copy link

xtutu commented Jul 27, 2020

Hi @pnkfelix , I add Cargo.lock now.

@pnkfelix
Copy link
Member

Thanks @xtutu ! I was able to replicate the LLVM assertion now with that Cargo.lock in place! (And of course, I had to remember to do cargo build --release instead of a debug build. 😉 )

@pnkfelix
Copy link
Member

pnkfelix commented Jul 28, 2020

I've narrowed the rust-template crate itself down to this pair of files: a main.rs and a Cargo.toml that specifies the precise version of tokio one needs to use to replicate the problem:

// src/main.rs
use tokio;
use std::error::Error;
use std::sync::Mutex;

#[allow(dead_code)]
enum Msg {
    A(Vec<()>),
    B,
}

#[allow(unused_must_use)]
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let (_, mut rx) = tokio::sync::mpsc::unbounded_channel::<Msg>();
    let entity = Box::new(Mutex::new(()));

    tokio::spawn(async move {
        tokio::select! {
            Some(msg) = rx.recv() => {
                entity.lock();
                drop(msg);
            }
        }
        entity.lock();
    });

    return Ok(());
}
# Cargo.toml
[package]
name = "rust-template"
version = "0.1.0"
authors = ["linyongxing <xtutu0202@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

default-run = "rust-template"

[dependencies]
tokio = { version = "=0.2.21", features = ["rt-core", "macros", "sync"] }

With these two files in a fresh crate, I get this from a release build (still on Windows, keep in mind, with stable rustc 1.44.1 c7087fe):

> cargo build --release
    Updating crates.io index
   Compiling proc-macro2 v1.0.19
   Compiling unicode-xid v0.2.1
   Compiling syn v1.0.36
   Compiling bytes v0.5.6
   Compiling fnv v1.0.7
   Compiling pin-project-lite v0.1.7
   Compiling quote v1.0.7
   Compiling tokio-macros v0.2.5
   Compiling tokio v0.2.21
   Compiling rust-template v0.1.0 (C:\Users\pfxbo\temp-rust-debug\rust-template)
Instruction does not dominate all uses!
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
Instruction does not dominate all uses!
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
Instruction does not dominate all uses!
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
Instruction does not dominate all uses!
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
Instruction does not dominate all uses!
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
Instruction does not dominate all uses!
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
Instruction does not dominate all uses!
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
  %182 = phi i8* [ %92, %91 ], [ %55, %190 ], [ %182, %89 ], [ %182, %85 ], [ %182, %187 ], [ %182, %112 ], [ %182, %108 ], [ %182, %105 ], [ %182, %101 ]
in function _ZN97_$LT$core..future..from_generator..GenFuture$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$4poll17h257417a290b49d85E
LLVM ERROR: Broken function found, compilation aborted!
error: could not compile `rust-template`.

To learn more, run the command again with --verbose.

@yoshuawuyts
Copy link
Member

We've been running into this error using Windows MSVC on our work codebase. I've been able to pin down the regression to the Rust 1.44.0 which was part of #69033. We've not observed this error occurring on Linux, MacOS, FreeBSD, or Windows-GNU.

cc/ @jonas-schievink

Error

Instruction does not dominate all uses!
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
Instruction does not dominate all uses!
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
Instruction does not dominate all uses!
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
Instruction does not dominate all uses!
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
Instruction does not dominate all uses!
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %132197 ], [ %13219, %12944 ]
Instruction does not dominate all uses!
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
  %13219 = phi i8* [ %13219, %13235 ], [ %13219, %13233 ], [ %13219, %13230 ], [ %13219, %13227 ], [ %13219, %13224 ], [ %13219, %13221 ], [ %13219, %12592 ], [ %13219, %12707 ], [ %12837, %12834 ], [ %12831, %12827 ], [ %13219, %12944 ]
in function _ZN8tiberius3tds6stream5token20TokenStream$LT$S$GT$10try_unfold28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hbf00841fdd51402aE.llvm.12308354007712700541
LLVM ERROR: Broken function found, compilation aborted!
error: could not compile `quaint`.

After this error the usual error of Instruction does not dominate all uses! in GenFuture follows. Instruction does not dominate all uses! is printed multiple times in our codebase.

Tested versions

I've tested a range of versions on several Windows machines. I reliably got the following results:

version result
1.42.0 MSVC Ok
1.43.0 MSVC Ok
1.44.0 MSVC Error
1.44.1 MSVC Error
1.45.0 MSVC Error
1.45.1 MSVC Error

Repro

The main codebase at work is a rather large one and takes a while to compile. I haven't been able to pin this down to a specific dependency or file that triggers this error yet. Luckily our codebase is open source, which allows people to clone and build it. To do so do:

$ git clone git@github.com:prisma/prisma-engines.git
$ cd prisma-engines
$ cargo build --release

I don't believe we have any peer dependencies aside from a Rust MSVC toolchain to compile on Windows.

@jonas-schievink jonas-schievink self-assigned this Jul 31, 2020
@jonas-schievink
Copy link
Contributor

prisma-engines has multiple C dependencies (libsqlite, zlib, libgit2), which means that cross-compiling it rather painful (from Linux to Windows, that is). I did further reduce the code posted by @pnkfelix above though, removing tokio's proc. macros in the process: https://github.com/jonas-schievink/llvm-error

I'll try to reduce that down further.

@jonas-schievink
Copy link
Contributor

I have now pushed a 2-file repro. I'll leave the rest to our LLVM experts.

@jonas-schievink jonas-schievink removed their assignment Jul 31, 2020
@yoshuawuyts
Copy link
Member

I've filed two test cases on the repro:

It seems that switching the channel impl makes the error disappear. Whereas switching the block_on impl keeps it. According to @jonas-schievink in https://github.com/jonas-schievink/llvm-error/pull/1#issuecomment-668535630 the channel code is quite fragile, and changing any part of it makes the error disappear.

@Aaron1011
Copy link
Member

Does this still reproduce with the latest nightly (LLVM 11)?

@jonas-schievink
Copy link
Contributor

On rustc 1.48.0-nightly (8b4085359 2020-09-23) I can't reproduce this

@Aaron1011
Copy link
Member

A bisect shows that this was fixed by the upgrade to LLVM 11 in #73526. I'm going to try-relanding the original PR.

Aaron1011 added a commit to Aaron1011/rust that referenced this issue Oct 4, 2020
This was fixed with the upgrade to LLVM 11 in rust-lang#73526.
It seems extremely unlikey that this exact issue will ever reoccur,
since slight modifications to the code caused the crash to stop
happening. However, it can't hurt to have a test for it.
bors added a commit to rust-lang-ci/rust that referenced this issue Oct 5, 2020
…jasper

Re-land PR rust-lang#71840 (Rework MIR drop tree lowering)

PR rust-lang#71840 was reverted in rust-lang#72989 to fix an LLVM error (rust-lang#72470). That LLVM error no longer occurs with the recent upgrade to LLVM 11 (rust-lang#73526), so let's try re-landing this PR.

I've cherry-picked the commits from the original PR (with the exception of the commit blessing test output), making as few modifications as possible. I addressed the rebase fallout in separate commits on top of those.

r? `@matthewjasper`
@tmandry
Copy link
Member

tmandry commented Oct 6, 2020

Fixed by #77466.

@tmandry tmandry closed this as completed Oct 6, 2020
tomhoule added a commit to prisma/prisma-engines that referenced this issue Dec 23, 2020
The hope is that the random LLVM failures will stop,
rust-lang/rust#72470 being fixed.
do4gr added a commit to prisma/prisma-engines that referenced this issue Dec 23, 2020
* remove apply migration

* remove listmigrations

* remove calculatedatabasesteps

* remove calculateDatamodel

* remove inferMigrationSteps

* remove migrationProgress

* remove unapplyMigrations

* remove initialize

* start removing old migration persistence

* start removing migrationsteps serialization

* remove steps serialization

* remove partialeq

* Ignore postgis tables when checking for initialized schemas
* Fix sqlite test

* Update windows CI toolchain to 1.48.0

The hope is that the random LLVM failures will stop,
rust-lang/rust#72470 being fixed.

Co-authored-by: Tom Houlé <tom@tomhoule.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-async-await Area: Async & Await A-codegen Area: Code generation A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ ICEBreaker-Cleanup-Crew Helping to "clean up" bugs with minimal examples and bisections ICEBreaker-LLVM Bugs identified for the LLVM ICE-breaker group O-windows-msvc Toolchain: MSVC, Operating system: Windows P-high High priority regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
Archived in project
Development

No branches or pull requests