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

0.74 launch fails in 10.7. #47

Open
GoogleCodeExporter opened this issue Mar 3, 2015 · 34 comments
Open

0.74 launch fails in 10.7. #47

GoogleCodeExporter opened this issue Mar 3, 2015 · 34 comments

Comments

@GoogleCodeExporter
Copy link

What steps will reproduce the problem?
1. Using a Network Connect VPN connection (not sure if it matters)
2. csshX -d -l <user> <host1> <host2> <host3> <host4>
3. wait

What is the expected output? What do you see instead?
---------------------------------------------------
Expected to see 4 screens pop up with the red control window at the bottom.  
One terminal pops up instead.

What version of csshX (do a "csshX -v") are you using? On what operating
system version?
---------------------------------------------------
MBPro i7, 8GB Mem, 256 SSD

Lion 10.7
[2125]$ uname -a
Darwin nugget.local 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug  9 20:54:00 
PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64

[2122]$ csshX -v
csshX  0.74

Please provide any additional information below.
---------------------------------------------------
Out of caution, I completed a repair permissions on my disk.

csshX -d -l <user> <host1> <host2> <host3> <host4>
No master at /usr/local/bin/csshX line 1179.
 at (eval 18) line 1
    main::__ANON__('No master at /usr/local/bin/csshX line 1179.\x{a}') called at /usr/local/bin/csshX line 1179
    CsshX::Launcher::new('CsshX::Launcher') called at /usr/local/bin/csshX line 2083

Original issue reported on code.google.com by mich...@simpledata.com on 14 Oct 2011 at 1:29

@GoogleCodeExporter
Copy link
Author

Thanks for the details. I hope this is not a 10.7.2 issue (I'm still on 10.7.1 
today!)

The above error indicates that it timed out after waiting 20 seconds for the 
master control window to appear.


Disk permissions are a good guess, since the master and slaves talk on a local 
socket to each other - if this doesn't get created, bad things could happen. 
Could you confirm where this is getting created by running:

    /usr/bin/perl -MPOSIX -e 'print POSIX::tmpnam."\n";

This will give back a file name like "/var/tmp/tmp.0.NXDTBG". Can you try:

  touch /var/tmp/tmp.0.NXDTBG

to make sure it's writable by you.


Is there any other output at all? Otherwise I'm guessing.. try a reboot, check 
disk space, mv your ~/.csshrc aside, try with just one remote machine, etc..


I'll also try to get 10.7.2 up and running in case that has some secret 
surprise in it...

Original comment by gavin.brock on 14 Oct 2011 at 2:08

@GoogleCodeExporter
Copy link
Author

The touch didn't work initially. . . until I put a backslash in front of the (

[2317]$ touch 
/var/tmp/tmp.0.IlQUqPSCALAR(0x7fd0ea804038/var/tmp/tmp.0.IlQUqPSCALAR(0x7fd0ea80
4038)~
-bash: syntax error near unexpected token `('

[2328]$ touch /var/tmp/tmp.0.IlQUqPSCALAR\(0x7fd0ea804038

No other output.  I've rebooted.  No ~/.csshrc exists.

Same result with just one machine.

Original comment by mich...@simpledata.com on 14 Oct 2011 at 3:32

@GoogleCodeExporter
Copy link
Author

Hmm that looks suspicious... The "SCALAR(...)" bit shouldn't be in the string.

I noticed I missed a trailing quote (') in my test line:

  /usr/bin/perl -MPOSIX -e 'print POSIX::tmpnam."\n";'

I don't think that should change things..

Can you also check the POSIX version...

   /usr/bin/perl -MPOSIX -e 'print $POSIX::VERSION."\n";'

I have 1.19...

Finally, can you check for magic perl environment settings...

   env | grep -i perl

Thanks

Original comment by ga...@brock-family.org on 14 Oct 2011 at 1:06

@GoogleCodeExporter
Copy link
Author

Re-ran the original query with the trailing quote.  No real change except for 
the file name is normal now.  I am able to touch it.

[1007]$  /usr/bin/perl -MPOSIX -e 'print POSIX::tmpnam."\n";'
/var/tmp/tmp.0.rtFW6o
~
[1008]$ touch /var/tmp/tmp.0.rtFW6o
~

[1008]$ /usr/bin/perl -MPOSIX -e 'print $POSIX::VERSION."\n";'
1.19

This might be an issue.  No return from environment settings.  Could it 
possibly be my shell and my .bash_profile messing things up?
[1009]$ env | grep -i perl
~


Original comment by mich...@simpledata.com on 14 Oct 2011 at 2:10

@GoogleCodeExporter
Copy link
Author

You mention that you see one window open. Does anything appear in that window? 
I would expect to see the usual message..

  "Input to terminal: (Ctrl-A to enter control mode)" 

Do you have Growl (http://growl.info/) installed? If not, can you try running 
with the "--no_growl" argument to see if that initialization is freezing.

Original comment by ga...@brock-family.org on 15 Oct 2011 at 2:27

@GoogleCodeExporter
Copy link
Author

One window opens and nothing is in it except for my standard command prompt.

[1114]$ csshX -l tomcat <host>
No master at /usr/local/bin/csshX line 1179.
~
[1237]$ csshX --no_growl -l tomcat <host>
No master at /usr/local/bin/csshX line 1179.

Anything else?

Original comment by mich...@simpledata.com on 18 Oct 2011 at 4:47

@GoogleCodeExporter
Copy link
Author

So, I went combing through the csshX code to figure this out.  After many a 
print statement and chasing things down Growl started to be suspicious.

What appears to have happend is that I _used_ to have growl on this machine.  I 
removed Growl from the Applications folder, but somehow csshX is still 
detecting that I had Growl installed.

I may be wrong, but it seems like something in the init subroutine is detecting 
grown and attempting to initialize it.

Oddly, the no_growl option did not seem to have any effect when testing.

TL;DR: Don't uninstall Growl.


Original comment by mich...@simpledata.com on 16 Dec 2011 at 4:21

@GoogleCodeExporter
Copy link
Author

I'm running into this same issue on Mountain Lion.

Furthermore, when I run
/usr/bin/perl -MFoundation -e'print ok'
I get no output.

Original comment by mars.mar...@gmail.com on 25 Sep 2012 at 8:57

@GoogleCodeExporter
Copy link
Author

Is growl installed?

Original comment by mich...@simpledata.com on 25 Sep 2012 at 9:01

@GoogleCodeExporter
Copy link
Author

nope, I tried commenting out the growl init line as well and still ran into the 
same problem

Original comment by mars.mar...@gmail.com on 25 Sep 2012 at 9:10

@GoogleCodeExporter
Copy link
Author

Yeah, believe me, I've went through the code very thoroughly and the only way 
to get it going is to install growl.  After doing so, it'll all work.  :)

Original comment by mich...@simpledata.com on 25 Sep 2012 at 9:12

@GoogleCodeExporter
Copy link
Author

Just revisiting this, I realised the obvious issue relating to growl. There is 
no --no_growl command line flag!

It must be in ~/.csshrc as "no_growl = true"

That said I should probably scale growl support back since it's no longer free, 
and notification center takes its place.

Getting back to "mars.martian"  - are you jsut seeing the "No Master" thing?

Original comment by ga...@brock-family.org on 26 Sep 2012 at 3:47

@GoogleCodeExporter
Copy link
Author

yup. I tried changing my csshrc, am I doing it right?

➜  ~  cat .csshrc 
no_growl = true
➜  ~  csshx stage01
No master at /usr/local/bin/csshx line 1179.

Original comment by mars.mar...@gmail.com on 26 Sep 2012 at 3:55

@GoogleCodeExporter
Copy link
Author

I'm assuming that the .csshrc is in your home directory, but yes - looks right.

You could also try commenting out the "Growl->notify()" calls - think there are 
4 - then you should me in Michaels state.

If that doesn't work, I think we have the same symptom, but another issue. 

Original comment by ga...@brock-family.org on 26 Sep 2012 at 5:34

@GoogleCodeExporter
Copy link
Author

I commented out the 4 cases but am still running into the same problem. Have 
you tested this on Mountain Lion?

Original comment by mars.mar...@gmail.com on 26 Sep 2012 at 5:41

@GoogleCodeExporter
Copy link
Author

Yes - running it here - right now...

$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.8.1
BuildVersion:   12B19

Will reboot and try 10.8.2 when I have a break.

Original comment by ga...@brock-family.org on 26 Sep 2012 at 5:43

@GoogleCodeExporter
Copy link
Author

I can confirm this same bug. I have the same issue, and a crude workaround.

MacOSX 10.8.2 (Mountain Lion)

$ which bash
/opt/local/bin/bash
$ bash --version
GNU bash, version 4.2.37(2)-release (i386-apple-darwin12.0.0)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ /bin/bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.
$ csshX --version
csshX  0.74
$ cat ~/.csshrc
no_growl = true

I have also tried it with no .csshrc.

I have also tried turning off bash completion to see if that makes any 
difference.

Here is the error:

csshX --debug 10 -l <user> <host1> <host2>
Host: <host1>
Host: <host2>

No master at /opt/local/bin/csshX line 1179.
 at (eval 18) line 1
    main::__ANON__('No master at /opt/local/bin/csshX line 1179.\x{a}') called at /opt/local/bin/csshX line 1179
    CsshX::Launcher::new('CsshX::Launcher') called at /opt/local/bin/csshX line 2083


*However I have a workaround!*

If the Terminal.app preferences are set such that "Shells open with:"  "Default 
login shell" (which is /bin/bash, v3.2.48), the terminals launched by csshX 
launch correctly!

If the Terminal.app is set to launch "/opt/local/bin/bash -l" (which is 
v4.2.37) I get the behavior which this bug refers to. The downside is that bash 
completion no longer works correctly.

I have tried updating my ports collection; but to no avail. 

Original comment by redchr...@gmail.com on 4 Oct 2012 at 7:43

@GoogleCodeExporter
Copy link
Author

I had the same problems - but just found my problem. I didn't used the default 
settings in my terminal.app concerning which shell should be used. 

Take care there are two different places: 1. start -> shell open with (use here 
the default setting) 2. settings -> shell -> execute command (don't mark it).

Original comment by a...@trademob.com on 25 Oct 2012 at 11:34

@GoogleCodeExporter
Copy link
Author

Confirming the exact same behavior as stated by  redchr...@gmail.com. The 
workaround worked. 

ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60
GNU bash, version 4.2.39(2)-release (i386-apple-darwin12.2.0)


Original comment by sumitran...@gmail.com on 29 Nov 2012 at 7:43

@GoogleCodeExporter
Copy link
Author

I'm having this same problem, but the workaround is not working for me.

/opt/local/bin/bash is my login shell, so I tried setting Terminal.app to run 
/bin/bash instead, but that didn't work either. I've also tried changing my 
login shell to /bin/bash and Terminal.app to use Default Login Shell, but that 
didn't work.

In all cases, csshX sits there apparently doing nothing for a few seconds, and 
then report "No master at /opt/local/bin/csshX line 1179."

$ /bin/bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)

$ /opt/local/bin/bash --version
GNU bash, version 4.2.42(2)-release (i386-apple-darwin12.2.0)

$ csshX --version
csshX  0.74

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.3
BuildVersion:   12D78

Original comment by c...@2bithacker.net on 2 Apr 2013 at 2:33

@GoogleCodeExporter
Copy link
Author

I am having exactly the same problem. I got Growl installed (v 2.0.1) and 
working over VPN.
$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.8.3
BuildVersion:   12D78

$ csshX --version
csshX  0.74

$ /bin/bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.

None of the workarounds worked for me.

Original comment by lukas.fl...@gmail.com on 17 May 2013 at 9:27

@GoogleCodeExporter
Copy link
Author

Just thought I'd add that the problem persists in Mavericks.

$ csshX -v
csshX  0.74

$ /bin/bash --version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)

$ /opt/local/bin/bash --version
GNU bash, version 4.2.45(2)-release (i386-apple-darwin12.3.0)

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.9
BuildVersion:   13A603

Original comment by c...@2bithacker.net on 31 Oct 2013 at 1:56

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

I experienced the same but csshX used to work so it had to be a setting I made. 
It's now fixed by restoring terminal's preference to use "default login shell" 
instead of a newer bash from macports.

Original comment by xper...@gmail.com on 4 Nov 2013 at 8:28

@GoogleCodeExporter
Copy link
Author

I'm having same issue, and none of the workarounds provided work for me. Has 
there been any progress on this issue?


No master at ./csshX line 1179.

$ /usr/bin/perl -MPOSIX -e 'print POSIX::tmpnam."\n";'
/var/tmp/tmp.0.o50qfO

$ /usr/bin/perl -MPOSIX -e 'print $POSIX::VERSION."\n";'
1.30

$ touch /var/tmp/tmp.0.o50qfO

$ --no_growl
-bash: --no_growl: command not found

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.9.4
BuildVersion:   13E28

$ bash --version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

$ ./csshX --version
csshX  0.74

Original comment by qrash...@gmail.com on 12 Aug 2014 at 8:05

@GoogleCodeExporter
Copy link
Author

I am also having the same problem:

ProductName:    Mac OS X
ProductVersion: 10.9.2
BuildVersion:   13C64

Original comment by lemerodr...@gmail.com on 18 Aug 2014 at 7:24

@GoogleCodeExporter
Copy link
Author

I've just found how to get csshX working with recent bash versions: 
 - Set Terminal shell settings to default (in Terminal -> Preferences) :
    * "General" -> "Shells open with:" -> "Default login shell".
    *  "Profiles" or "Settings" tab -> Select your default profile -> "Shell" -> Uncheck "Run command" box.
 - Go to "System Preferences" -> "Users & Groups".
 - Click on the padlock and enter your password.   
 - Right click on your user name, then select "Advanced Options..."
 - In the "Login shell" field, enter the path to your custom bash version (usually /opt/local/bin/bash) WITHOUT any argument ("/opt/local/bin/bash", NOT "/opt/local/bin/bash -l") then click "OK".
 - Reboot & Enjoy !

Original comment by jonat...@inikup.com on 21 Dec 2014 at 11:32

@pbdeuchler
Copy link

Bump, no workarounds seem to work for me

OSX 10.10.5

@jleroy
Copy link

jleroy commented Oct 29, 2015

@pbdeuchler : Have you tried to install a recent bash version using MacPorts ?

@pbdeuchler
Copy link

Have never even installed MacPorts, homebrew only. And I've never used anything but the default bash on this machine @jleroy

@jleroy
Copy link

jleroy commented Oct 30, 2015

OS X's default Bash version is too old, csshX doesn't work with it.
You should install a newer Bash version with brew install bash, and then follow my instructions: #47 (comment)

@kimh
Copy link

kimh commented Feb 10, 2017

#47 (comment) works for me as well.

My envs are

OSX: 10.11.6
Bash: 4.4.5
csshX: 0.7.4

@jmalouf69
Copy link

For me the problem was a line in my $HOME/.bashrc. I made an addition to it that csshX didn't like. You might try renaming that file and see if it fixes your problem. I suspect any other files that are "sourced" upon bash startup could cause similar problems.

@fredco
Copy link

fredco commented Oct 17, 2017

jmalouf69's comment rang a bell with me. I have a custom bash prompt in my .bashrc file, and once that was commented out csshX works perfectly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants