pgloader icon indicating copy to clipboard operation
pgloader copied to clipboard

assertion failed: state update should occur from waiters' queue

Open adimyth opened this issue 3 years ago • 0 comments

Thanks for contributing to pgloader by reporting an issue! Reporting an issue is the only way we can solve problems, fix bugs, and improve both the software and its user experience in general.

The best bug reports follow those 3 simple steps:

  1. show what you did,
  2. show the result you got,
  3. explain how the result is not what you expected.

In the case of pgloader, here's the information I will need to read in your bug report. Having all of this is a big help, and often means the bug you reported can be fixed very efficiently as soon as I get to it.

Please provide the following information:

  • [x] pgloader --version

    pgloader version "3.6.3~devel"
    compiled with SBCL 2.2.4
    
  • [x] did you test a fresh compile from the source tree?

    Compiling pgloader from sources is documented in the README, it's easy to do, and if patches are to be made to fix your bug, you're going to have to build from sources to get the fix anyway…

  • [x] did you search for other similar issues?

  • [ ] how can I reproduce the bug?

    Incude a self-contained pgloader command file.

    If you're loading from a database, consider attaching a database dump to your issue. For MySQL, use mysqldump. For SQLite, just send over your source file, that's easy. Maybe be the one with your production data, of course, the one with just the sample of data that allows me to reproduce your bug.

    When using a proprietary database system as a source, consider creating a sample database on some Cloud service or somewhere you can then give me access to, and see my email address on my GitHub profile to send me the credentials. Still open a public issue for tracking and as documentation for other users.

./build/bin/pgloader mysql://{MYSQL_USERNAME}:{MYSQL_PASSWORD}@localhost/{MYSQL_DBNAME} postgresql://postgres:{POSTGRES_PASSWORD}@localhost/postgres
  • [x] pgloader output you obtain
2022-05-16T14:11:35.042920+05:30 LOG pgloader version "3.6.3~devel"
2022-05-16T14:11:35.049714+05:30 LOG Data errors in '/private/tmp/pgloader/'
2022-05-16T14:11:35.508242+05:30 LOG Migrating from #<MYSQL-CONNECTION mysql://root@localhost:3306/{MYSQL_DBNAME} {7006FF9A53}>
2022-05-16T14:11:35.508704+05:30 LOG Migrating into #<PGSQL-CONNECTION pgsql://postgres@localhost:5432/postgres {70072A0423}>
assertion failed: state update should occur from waiters' queue
(ThreadContextRegisterState.cpp:947 arm_fpr_state_from_x86_state)
[1]    26982 trace trap  ./build/bin/pgloader mysql://{MYSQL_USERNAME}:{MYSQL_PASSWORD}@localhost/{MYSQL_DBNAME}
  • [ ] data that is being loaded, if relevant
  • [x] How the data is different from what you expected, if relevant
On my Macbook Air with Intel Chip, I was able to perform the migration smoothly, however I run into the above error on my Macbook Pro (M1 Chip)

When running in debug mode, it seems that the data wasn't transferred but the schema was created

There are no errors in the logs either.  Don't understand the issue that's causing this

Set of steps for installation on M1 (using rosetta) -

  1. Enable Rosetta for Terminal on M1 Mac
    /usr/sbin/softwareupdate --install-rosetta --agree-to-license
    
    • Select the app(Terminal) in the Finder.
    • Right click on the app(Terminal) and select Get Info.
    • In General, check the Open using Rosetta check-box.
    • Restart the terminal.
    • Running arch should give i386
  2. Install xcode
    xcode-select --install
    
  3. Uninstall arm64 brew
    which brew # /opt/homebrew
    
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
    
  4. Install intel brew
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    git -C $(brew --repository homebrew/core) checkout master
    
    which brew # /usr/local/bin/brew
    
  5. Install & symlink openssl
    brew install openssl
    
    sudo ln -s /usr/local/opt/openssl@3/lib/libcrypto.dylib /usr/local/lib/libcrypto.dylib
    
    sudo ln -s /usr/local/opt/openssl@3/lib/libssl.dylib /usr/local/lib/libssl.dylib
    
  6. Install pgloader
    brew install sbcl sqlite make curl gawk freetds
    wget https://github.com/dimitri/pgloader/archive/refs/tags/v3.6.3.zip -O pgloader.zip
    unzip pgloader.zip
    cd pgloader-3.6.3
    make pgloader
    
    ./build/bin/pgloader --version
    

adimyth avatar May 16 '22 09:05 adimyth