Homebrew-core: asciiquarium segfaults with brewed perl

Created on 18 Sep 2016  ·  22Comments  ·  Source: Homebrew/homebrew-core

asciiquarium is segfaulting for me on OS X 10.11, both when poured from bottle and installed from source.

[~]
$ brew install asciiquarium
==> Downloading https://homebrew.bintray.com/bottles/asciiquarium-1.1.el_capitan.bottle.ta
Already downloaded: /Users/janke/Library/Caches/Homebrew/asciiquarium-1.1.el_capitan.bottle.tar.gz
==> Pouring asciiquarium-1.1.el_capitan.bottle.tar.gz
🍺  /usr/local/Cellar/asciiquarium/1.1: 16 files, 366.7K
[~]
$ asciiquarium
[1]    40607 segmentation fault  asciiquarium
[✘ ~]
$

Updating the Curses resource to the latest did not fix.

Is this still working for people on earlier versions of OS X? Should we put a MaximumMacOS requirement on this or boneyard it?

bug in progress

Most helpful comment

I wonder if we can boneyard macOS :trollface:

All 22 comments

Might be something to do with how the CI is effectively running headless and not attached to a real terminal (I'm not sure what the right term for it is on OS X). Doing brew test-bot asciiquarium locally fails for me. Maybe it's doing some test on the terminal it or its session is attached to.

$ brew test-bot asciiquarium
==> brew doctor
...
==> brew test asciiquarium --verbose
==> FAILED
Testing asciiquarium
==> Using the sandbox
/usr/bin/sandbox-exec -f /tmp/homebrew20160918-44438-w4xuvv.sb /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -W0 -I /usr/local/Library/Homebrew -- /usr/local/Library/Homebrew/test.rb /usr/local/Library/Taps/homebrew/homebrew-core/Formula/asciiquarium.rb --verbose
Error: asciiquarium: failed
Expected /\x1B\[\?10/ to match "".
==> brew uninstall --force asciiquarium
[✘ ~]
$

Simply doing asciiquarium | cat to get its stdout to not be attached to a terminal still segfaults for me. Might be something more at the session level it's doing.

Hmm. The asciiquarium program itself is a single Perl script and it doesn't seem to be doing anything fancy, so it's unlikely a segfault could be fixed at that level. I'd guess it's more likely something in the Curses module. Bummer.

I'm not able to reproduce this.

I'm totally able to reproduce this.

screen shot 2016-09-17 at 11 47 05 pm

It occurs with brew perl not system perl.

What's your brew config, @ilovezfs?

Mine:

$ brew config
HOMEBREW_VERSION: 0.9.9
ORIGIN: https://github.com/Homebrew/brew
HEAD: 7dd7e81dd101e4ac4bc67bb80663ee6a0076f5d9
Last commit: 2 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: d67912f755d8a1c4439bc3aec825ea87424d620a
Core tap last commit: 2 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: octa-core 64-bit skylake
Homebrew Ruby: 2.0.0-p648
Clang: 7.3 build 703
Git: 2.10.0 => /usr/local/bin/git
Perl: /usr/local/bin/perl => /usr/local/Cellar/perl/5.24.0_1/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/local/bin/ruby => /usr/local/Cellar/ruby/2.3.1/bin/ruby
Java: 1.8.0_91
OS X: 10.11.6-x86_64
Xcode: 7.3.1 => /Applications/Xcode-7.3.1.app/Contents/Developer
CLT: 7.3.1.0.1.1461711523
X11: 2.7.9 => /opt/X11
[~]

I'm on a 5K iMac.

Aha!

Yep. After a brew unlink perl, asciiquarium works for me too.

Let the wrapper run the libexec script with /usr/bin/perl I guess.

or make it depend on brew perl or a perl requirement

make it depend on brew perl

That's the recipe for failure.

Incorrect. Add depends_on "perl" and rebuild.

Add depends_on "perl" and rebuild.

Okay it does work, but too heavy-handed it seems.

whatever works :)

But clearly the env perl in there right now is no good.

By the way /usr/bin/perl hasn't been upgraded in a while (including in Sierra). Another piece of abandonware?

I wonder if we can boneyard macOS :trollface:

Switching it to build/run with the system perl fixed it for me. PR at #4966.

        system "/usr/bin/perl", "Makefile.PL", "INSTALL_BASE=#{libexec}"

Segfault here too folks

add depends_on "perl" to the formula and then rebuild it from source --build-from-source

Fix in #6148.

Shipped #6148.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tglawless picture tglawless  ·  3Comments

faraazkhan picture faraazkhan  ·  3Comments

jakepetroules picture jakepetroules  ·  3Comments

dredmorbius picture dredmorbius  ·  3Comments

xeoneux picture xeoneux  ·  3Comments