Opened 10 years ago

Closed 10 years ago

#43949 closed defect (worksforme)

gmp install fails with :debug:extract Error code: NONE

Reported by: brookemgilbert@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.3.0
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: gmp

Description

Hello, I am having a problem installing gmp. I noticed this because it was causing gcc install to fail (as gmp is a dependency). It appears to fail when extracting the archive, however I can manually extract the .tar.gz with no problem. Output is below; I will attach the .log file.

$ sudo port install gmp
--->  Extracting gmp
Error: org.macports.extract for port gmp returned: 
Please see the log file for port gmp for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gmp/gmp/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port gmp failed

Attachments (4)

macports_bugreport_attachment.txt (2.4 KB) - added by brookemgilbert@… 10 years ago.
main.log
main.log_clean_attempt.txt (3.3 KB) - added by brookemgilbert@… 10 years ago.
main.log after 'port clean gmp'
macports_boost__main.log (6.6 KB) - added by brookemgilbert@… 10 years ago.
main.log for boost failure during 'update outdated'
macports_boost__stdout.txt (3.3 KB) - added by brookemgilbert@… 10 years ago.
stdout leading to boost failure

Download all attachments as: .zip

Change History (17)

Changed 10 years ago by brookemgilbert@…

main.log

comment:1 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

That's a surprisingly cryptic error message. But, the log does show this was not a clean attempt, so please "sudo port clean gmp", then try again and attach the new log if it fails again.

Changed 10 years ago by brookemgilbert@…

Attachment: main.log_clean_attempt.txt added

main.log after 'port clean gmp'

comment:2 in reply to:  1 Changed 10 years ago by brookemgilbert@…

Replying to ryandesign@…:

That's a surprisingly cryptic error message. But, the log does show this was not a clean attempt, so please "sudo port clean gmp", then try again and attach the new log if it fails again.

Ah I already tried that. But here's output anyway. Attached new log as main.log_clean_attempt.txt. Everything's the same, if I'm not mistaken. Cheers for the quick response.

$ sudo port clean gmp
Password:
--->  Cleaning gmp
[1]   Done                    /Applications/Emacs.app/Contents/MacOS/Emacs-10.7 /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gmp/gmp/main.log
[2]-  Done                    /Applications/Emacs.app/Contents/MacOS/Emacs-10.7 /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gmp/gmp/main.log

$ sudo port install gmp
Warning: Your DNS servers incorrectly claim to know the address of nonexistent hosts. This may cause checksum mismatches for some ports. See this page for more information: <https://trac.macports.org/wiki/MisbehavingServers>
--->  Fetching distfiles for gmp
--->  Verifying checksums for gmp
--->  Extracting gmp
Error: org.macports.extract for port gmp returned: 
Please see the log file for port gmp for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gmp/gmp/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port gmp failed

comment:3 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Thanks, that's a clean log. It shows the output from all phases, including the fetch phase, which your previous log did not include because it had already been completed previously.

It shows this message:

:warn:archivefetch Your DNS servers incorrectly claim to know the address of nonexistent hosts. This may cause checksum mismatches for some ports. See this page for more information: <https://trac.macports.org/wiki/MisbehavingServers>

You should have also seen that message in the terminal. It is possible that because of this problem with your DNS servers, the correct file was not downloaded, and it therefore cannot be extracted. Though that should not be the case, since the checksum phase passed, meaning the file you got should be the correct one. But let's take a look at the file that got downloaded. What do you get for these commands:

ls -l /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
file /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
openssl dgst -sha256 /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2

comment:4 in reply to:  3 ; Changed 10 years ago by brookemgilbert@…

Replying to ryandesign@…:

Thanks, that's a clean log. It shows the output from all phases, including the fetch phase, which your previous log did not include because it had already been completed previously.

It shows this message:

:warn:archivefetch Your DNS servers incorrectly claim to know the address of nonexistent hosts. This may cause checksum mismatches for some ports. See this page for more information: <https://trac.macports.org/wiki/MisbehavingServers>

I looked into that a while back and read this topic about it. I think the problem is that my ISP automatically redirects me to a search page if I request a nonexistent address. I don't think that's under my control, but if it's important I could call them to see if they can turn it off...

What do you get for these commands:

ls -l /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
file /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
openssl dgst -sha256 /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2

I've got:

$ ls -l /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
-rw-r--r--  1 macports  admin  2319400  5 May 03:01 /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
$ file /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
/opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2: bzip2 compressed data, block size = 900k
$ openssl dgst -sha256 /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
SHA256(/opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2)= 7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf
Last edited 10 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:5 in reply to:  4 ; Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added

Replying to brookemgilbert@…:

I looked into that a while back and read this topic about it. I think the problem is that my ISP automatically redirects me to a search page if I request a nonexistent address.

The problem is that the DNS servers you are using return results for queries which should fail. The search page you mentioned is another symptom of this same problem.

I don't think that's under my control, but if it's important I could call them to see if they can turn it off...

You should contact your ISP and tell them that this behavior of their DNS server is a violation of Internet standards. If they will not fix their DNS servers to comply with Internet standards, it's within your control to configure your router or computer to use different DNS servers that do comply with the standards. For example, I use Google DNS.

I've got:

$ ls -l /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
-rw-r--r--  1 macports  admin  2319400  5 May 03:01 /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
$ file /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
/opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2: bzip2 compressed data, block size = 900k
$ openssl dgst -sha256 /opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2
SHA256(/opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2)= 7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf

Ok, that is the right checksum. So you do appear to have the right file. So the DNS problems don't seem to be contributing to this particular problem. So what is? We could try to run a version of the command MacPorts is trying to run to extract the file, and see if we get any additional errors that MacPorts didn't mention. I'd do this in a temporary directory that automatically cleans itself up after a few days, such as /tmp:

cd /tmp
/usr/bin/bzip2 -dc '/opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2' | /usr/bin/tar -xf -

If this is successful, it should print no output, and a directory "gmp-6.0.0" should have been created. If it's not successful, maybe it prints a warning or an error. I am wondering if your system's bzip2 and/or tar utilities may be broken.

comment:6 in reply to:  5 Changed 10 years ago by brookemgilbert@…

Replying to ryandesign@…:

Ok, that is the right checksum. So you do appear to have the right file. So the DNS problems don't seem to be contributing to this particular problem. So what is? We could try to run a version of the command MacPorts is trying to run to extract the file, and see if we get any additional errors that MacPorts didn't mention. I'd do this in a temporary directory that automatically cleans itself up after a few days, such as /tmp:

cd /tmp
/usr/bin/bzip2 -dc '/opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2' | /usr/bin/tar -xf -

If this is successful, it should print no output, and a directory "gmp-6.0.0" should have been created. If it's not successful, maybe it prints a warning or an error. I am wondering if your system's bzip2 and/or tar utilities may be broken.

Here goes...

$ cd /tmp
$ /usr/bin/bzip2 -dc '/opt/local/var/macports/distfiles/gmp/gmp-6.0.0a.tar.bz2' | /usr/bin/tar -xf -
$ ls gmp-6.0.0/
AUTHORS			configure.ac		mp_clz_tab.c
COPYING			cxx			mp_dv_tab.c
COPYING.LESSERv3	demos			mp_get_fns.c
COPYINGv2		doc			mp_minv_tab.c
COPYINGv3		errno.c			mp_set_fns.c
ChangeLog		extract-dbl.c		mpf
INSTALL			gen-bases.c		mpn
INSTALL.autoconf	gen-fac.c		mpq
Makefile.am		gen-fib.c		mpz
Makefile.in		gen-jacobitab.c		nextprime.c
NEWS			gen-psqr.c		primesieve.c
README			gen-trialdivtab.c	printf
acinclude.m4		gmp-h.in		rand
aclocal.m4		gmp-impl.h		scanf
assert.c		gmpxx.h			tal-debug.c
bootstrap.c		install-sh		tal-notreent.c
compat.c		invalid.c		tal-reent.c
config.guess		longlong.h		tests
config.in		ltmain.sh		tune
config.sub		memory.c		version.c
configfsf.guess		mini-gmp		ylwrap
configfsf.sub		missing
configure		mp_bpl.c

Surely there must be a way to get more info back about the error.. Shall I just fire up a debug build?

comment:7 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

So the manual extraction worked fine. And extracting gmp within MacPorts still fails? What about other ports -- do you see the same issue or can they be installed ok?

comment:8 in reply to:  7 Changed 10 years ago by brookemgilbert@…

Replying to ryandesign@…:

So the manual extraction worked fine. And extracting gmp within MacPorts still fails? What about other ports -- do you see the same issue or can they be installed ok?

Well actually I originally got the error for 'gettext', and just like this case, cleaning and re-trying the install didn't work; I could manually unzip the file, but MacPorts still failed to do so. So I tried a 'port selfupdate' and updated all the ports, and still had the problem (looks like I forgot to run 'port clean gettext' though; instead I tried running 'port update outdated' and 'port update gettext'). I think I started seeing the same failure with other ports at that time (e.g. when I ran 'port update outdated'?) so I figured [recalling some bad memories of FreeBSD 7 ports going wrong] I'd managed to mess up the whole MacPorts installation, somehow. (Again, from my command history it doesn't look like I ran 'port clean'). I tried reverting to the previous version of MacPorts to see if it made a difference (I think I did indeed pick up a version update when I ran 'port selfupdate') but found that it immediately auto-updates itself to the latest version anyway (at least when using the downloaded installer).

So... then I basically followed the directions here to uninstall and clean all my ports, and reinstalled MacPorts just to be sure... Then the first thing I did with my (presumably) clean install was 'port install gcc49' and that started failing with this 'gmp' error. Out of curiosity, I then tried 'port install gettext' and to my surprise, that now installed fine.

Edit: To answer your original question, I don't *know* of any other ports that are failing to install with my current "clean" installation; but I have only tried installing 'gcc49' and 'gettext' since wiping the previously installed ports.

Last edited 10 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:9 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

If you were experiencing the problem with multiple ports, after already having reinstalled MacPorts, I would suspect a problem with your tar and/or bzip utilities. However, that seems to be ruled out by the successful manual tests at the command line. You said gettext installed successfully, but gettext does not use a bz2-compressed distfile; it uses a gz-compressed distfile. Try another port that uses a bz2-compressed distfile, such as freetype.

comment:10 Changed 10 years ago by brookemgilbert@…

Ok, freetype just installed fine. To be clear, gmp is the only failure I've had since uninstalling all my ports; but I only have these ports installed so far:

$ port installed
The following ports are currently installed:
  boost @1.55.0_2+no_single+no_static+python27 (active)
  bzip2 @1.0.6_0 (active)
  cctools @855_1+llvm34 (active)
  cctools-headers @855_0 (active)
  db46 @4.6.21_9 (active)
  db_select @0.1_2 (active)
  expat @2.1.0_0 (active)
  freetype @2.5.3_1 (active)
  gettext @0.19_0 (active)
  icu @51.2_1 (active)
  libedit @20121213-3.0_0 (active)
  libffi @3.0.13_0 (active)
  libiconv @1.14_0 (active)
  libpng @1.6.10_0 (active)
  llvm-3.4 @3.4_3 (active)
  llvm_select @1.0_0 (active)
  ncurses @5.9_2 (active)
  openssl @1.0.1h_0 (active)
  python27 @2.7.7_0 (active)
  python_select @0.3_3 (active)
  sqlite3 @3.8.4.3_0 (active)
  xz @5.0.5_0 (active)
  zlib @1.2.8_0 (active)

Also, when gettext was failing, I think I had an outdated ports tree so it was gettext 0.18 that was failing, not 0.19.

Changed 10 years ago by brookemgilbert@…

Attachment: macports_boost__main.log added

main.log for boost failure during 'update outdated'

Changed 10 years ago by brookemgilbert@…

Attachment: macports_boost__stdout.txt added

stdout leading to boost failure

comment:11 Changed 10 years ago by brookemgilbert@…

This is interesting.. out of curiosity I just tried to do 'port selfupdate' (which seems to have just got the current version again, but also updated the ports tree) and then 'port update outdated' and that gave me this same failure on updating boost. I have attached my stdout and main.log (called macports_boost_*). Obviously boost hadn't been a problem before...

comment:12 Changed 10 years ago by brookemgilbert@…

I had to reboot the PC for some kind of system update, and everything seems to be working again since then.. Bit disappointing as I was hoping to get to the bottom of this. I guess there could have been a locked file handle that got closed on reboot, or something else silly?

Anyway the error message was not very helpful. Perhaps the decompress succeeded but something trivial failed (e.g. file open) for which the error code wasn't checked?

If I encounter this again I'll let you know. Thanks for all your help.

Last edited 10 years ago by brookemgilbert@… (previous) (diff)

comment:13 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: worksforme
Status: newclosed

I'm glad you got it fixed. Maybe your system was just in a weird state, which restarting alleviated.

Note: See TracTickets for help on using tickets.