Pgloader: Can't build on Ubuntu 18.04

Created on 23 Jan 2019  路  11Comments  路  Source: dimitri/pgloader

  • [x] did you test a fresh compile from the source tree?
  • [x] did you search for other similar issues?
  • [x ] how can I reproduce the bug?
    Try to build on Ubuntu 18.04
...
[package pgloader.citus]..........................                                                                                                 [3537/4093]
[package pgloader.utils]                                                                                                                                      
debugger invoked on a NAME-CONFLICT in thread                                                                                                                 
#<THREAD "main thread" RUNNING {10005E85B3}>:                                                                                                                 
  EXPORT PGLOADER.CATALOG:FIELD-NAME causes name-conflicts in                                                                                                 
  #<PACKAGE "PGLOADER.PARSER"> between the following symbols:                                                                                                 
    PGLOADER.CATALOG:FIELD-NAME, PGLOADER.PARSER::FIELD-NAME                                                                                                  
See also:                                                                                                                                                     
  The ANSI Standard, Section 11.1.1.2.5                                                                                                                       

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.                                                                                              

restarts (invokable by number or by possibly-abbreviated name):                                                                                               
  0: [KEEP-OLD                     ] Keep PGLOADER.PARSER::FIELD-NAME accessible in PGLOADER.PARSER (shadowing PGLOADER.CATALOG:FIELD-NAME).                  
  1: [TAKE-NEW                     ] Make PGLOADER.CATALOG:FIELD-NAME accessible in PGLOADER.PARSER (uninterning PGLOADER.PARSER::FIELD-NAME).                
  2: [RESOLVE-CONFLICT             ] Resolve conflict.                                                                                                        
  3: [RETRY                        ] Retry                                                                                                                    
                                     compiling #<CL-SOURCE-FILE "pgloader" "src" "package">.                                                                  
  4: [ACCEPT                       ] Continue, treating                                                                                                       
                                     compiling #<CL-SOURCE-FILE "pgloader" "src" "package">                                                                   
                                     as having been successful.                                                                                               
  5:                                 Retry ASDF operation.                                                                                                    
  6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the                                                                                 
                                     configuration.                                                                                                           
  7:                                 Retry ASDF operation.                                                                                                    
  8:                                 Retry ASDF operation after resetting the                                                                                 
                                     configuration.                                                                                                           
  9: [ABORT                        ] Give up on "pgloader"                                                                                                    
 10: [CONTINUE                     ] Ignore runtime option --eval "(ql:quickload \"pgloader\")".                                                              
 11:                                 Skip rest of --eval and --load options.                                                                                  
 12:                                 Skip to toplevel READ/EVAL/PRINT loop.                                                                                   
 13: [EXIT                         ] Exit SBCL (calling #'EXIT, killing the process).                                                                         

(NAME-CONFLICT #<PACKAGE "PGLOADER.PARSER"> EXPORT PGLOADER.CATALOG:FIELD-NAME PGLOADER.CATALOG:FIELD-NAME PGLOADER.PARSER::FIELD-NAME)                       
0]
<-- Hangs indefinitely here

^C <-- Ctrl-C doesn't even work to kill the make process, I had to kill the entire terminal tab!

I tried this on two Ubuntu 18.04 installs - exactly the same thing at exactly the same place.

I only attempted this because the package on apt.postgresql.org appears to be broken for postgresql > 9 on debian/ubuntu (I get the same thing as https://github.com/dimitri/pgloader/issues/248) so was trying to build from source.

Most helpful comment

In case it's helpful to anyone running into this issue when building from source. Here is what worked for me:

# some pre-reqs
apt-get -y install wget make git gawk freetds-dev patch unzip devscripts pandoc libsqlite3-dev gnupg gnupg-agent
# get sbcl latest, build
wget https://downloads.sourceforge.net/project/sbcl/sbcl/1.4.16/sbcl-1.4.16-x86-64-linux-binary.tar.bz2
bzip2 -cd sbcl-1.4.16-x86-64-linux-binary.tar.bz2 | tar xvf -
cd sbcl-1.4.16-x86-64-linux/
sh install.sh
cd ..
# get latest package from pgloader releases
wget https://github.com/dimitri/pgloader/releases/download/v3.6.1/pgloader-bundle-3.6.1.tgz
tar zxvf pgloader-bundle-3.6.1.tgz
cd pgloader-bundle-3.6.1
make
./bin/pgloader --version

You might be able to do without patch unzip devscripts pandoc libsqlite3-dev gnupg gnupg-agent, but I haven't tested it yet.

All 11 comments

I just did make clean pgloader to try and reproduce the problem, but everything runs fine when I do that. Which version of pgloader are you trying to build? with which version of SBCL? Did you try the most recent release bundle at https://github.com/dimitri/pgloader/releases/tag/v3.6.1?

$ make clean pgloader
...
$ ./build/bin/pgloader --version
pgloader version "3.6.eafaf80"
compiled with SBCL 1.4.12

I couldn't get it to build on Debian 9 or 10, getting similar errors as above. Though the bundle worked fine and I now have:

bin/pgloader --version
pgloader version "3.6.1"
compiled with SBCL 1.4.15.debian

@dimitri - I followed the instructions in the Readme.md and tried to install from source master. I read in another issue that you are on Mac and you didn't have time to test on the platform that the issue was for. Did you try to install on Ubuntu 18.04 or on your normal Mac development machine?

It is probably not worth bothering though - I have decided to do my sqlite to postgres interchange manually. I'll close the issue.

In case it's helpful to anyone running into this issue when building from source. Here is what worked for me:

# some pre-reqs
apt-get -y install wget make git gawk freetds-dev patch unzip devscripts pandoc libsqlite3-dev gnupg gnupg-agent
# get sbcl latest, build
wget https://downloads.sourceforge.net/project/sbcl/sbcl/1.4.16/sbcl-1.4.16-x86-64-linux-binary.tar.bz2
bzip2 -cd sbcl-1.4.16-x86-64-linux-binary.tar.bz2 | tar xvf -
cd sbcl-1.4.16-x86-64-linux/
sh install.sh
cd ..
# get latest package from pgloader releases
wget https://github.com/dimitri/pgloader/releases/download/v3.6.1/pgloader-bundle-3.6.1.tgz
tar zxvf pgloader-bundle-3.6.1.tgz
cd pgloader-bundle-3.6.1
make
./bin/pgloader --version

You might be able to do without patch unzip devscripts pandoc libsqlite3-dev gnupg gnupg-agent, but I haven't tested it yet.

I also encountered this issue and it looks like the travis builds are also running into the same issue:
https://travis-ci.org/dimitri/pgloader/jobs/482801309

The workaround posted by grejdi worked for me as well.

@grejdi did not help for me, on ubuntu 18.04:

[package pgloader.utils]..........................
[package pgloader.archive]........................
[package pgloader.parse-date].....................
[package pgloader.connection].....................
[package pgloader.pgsql]..........................
[package pgloader.sources]
debugger invoked on a NAME-CONFLICT in thread
#<THREAD "main thread" RUNNING {10005205B3}>:
  EXPORT PGLOADER.SOURCES::GET-COLUMN-LIST causes name-conflicts in
  #<PACKAGE "PGLOADER.SOURCE.MSSQL"> between the following symbols:
    PGLOADER.SOURCES::GET-COLUMN-LIST, PGLOADER.SOURCE.MSSQL::GET-COLUMN-LIST
See also:
  The ANSI Standard, Section 11.1.1.2.5

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [KEEP-OLD                     ] Keep PGLOADER.SOURCE.MSSQL::GET-COLUMN-LIST accessible in PGLOADER.SOURCE.MSSQL (shadowing PGLOADER.SOURCES::GET-COLUMN-LIST).
  1: [TAKE-NEW                     ] Make PGLOADER.SOURCES::GET-COLUMN-LIST accessible in PGLOADER.SOURCE.MSSQL (uninterning PGLOADER.SOURCE.MSSQL::GET-COLUMN-LIST).
  2: [RESOLVE-CONFLICT             ] Resolve conflict.
  3: [RETRY                        ] Retry
                                     compiling #<CL-SOURCE-FILE "pgloader" "src" "package">.
  4: [ACCEPT                       ] Continue, treating
                                     compiling #<CL-SOURCE-FILE "pgloader" "src" "package">
                                     as having been successful.
  5:                                 Retry ASDF operation.
  6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
  7:                                 Retry ASDF operation.
  8:                                 Retry ASDF operation after resetting the
                                     configuration.
  9: [ABORT                        ] Give up on "pgloader"
 10: [CONTINUE                     ] Ignore runtime option --eval "(ql:quickload \"pgloader\")".
 11:                                 Skip rest of --eval and --load options.
 12:                                 Skip to toplevel READ/EVAL/PRINT loop.
 13: [EXIT                         ] Exit SBCL (calling #'EXIT, killing the process).

(NAME-CONFLICT #<PACKAGE "PGLOADER.SOURCE.MSSQL"> EXPORT PGLOADER.SOURCES::GET-COLUMN-LIST PGLOADER.SOURCES::GET-COLUMN-LIST PGLOADER.SOURCE.MSSQL::GET-COLUMN-LIST)
0] 

Which version of pgloader are you building here? current master's tree or the bundle or something else? And which version of SBCL do you have? I currently fail to reproduce your error with SBCL 1.4.12 and the current source tree.

UPDATE: also tried with SBCL 1.5.2, all good.

$ ./build/bin/pgloader --version
pgloader version "3.6.b8da7dd"
compiled with SBCL 1.5.2

@dimitri current master.
with ubuntu provided SBLC and the same result with sbcl-1.4.16

@dimitri current master on CentOS Linux release 7.6.1810
SBCL 1.4.0-1.el7 installed by bootstrap-centos7.sh
Same error:

(NAME-CONFLICT #<PACKAGE "PGLOADER.SOURCE.MSSQL"> EXPORT PGLOADER.SOURCES::GET-COLUMN-LIST PGLOADER.SOURCES::GET-COLUMN-LIST PGLOADER.SOURCE.MSSQL::GET-COLUMN-LIST)

current master SBCL 1.5.4.66-901d5ab + pgloader current master gives the same error.

Hi, I've the same issue on Fedora 30.

debugger invoked on a NAME-CONFLICT in thread

EXPORT PGLOADER.SOURCES::GET-COLUMN-LIST causes name-conflicts in
# between the following symbols:
PGLOADER.SOURCES::GET-COLUMN-LIST, PGLOADER.SOURCE.MSSQL::GET-COLUMN-LIST

Was this page helpful?
0 / 5 - 0 ratings