csshx
csshx copied to clipboard
0.74 launch fails in 10.7.
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 [email protected] on 14 Oct 2011 at 1:29
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
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 [email protected] on 14 Oct 2011 at 3:32
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 [email protected] on 14 Oct 2011 at 1:06
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 [email protected] on 14 Oct 2011 at 2:10
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 [email protected] on 15 Oct 2011 at 2:27
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 [email protected] on 18 Oct 2011 at 4:47
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 [email protected] on 16 Dec 2011 at 4:21
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 [email protected] on 25 Sep 2012 at 8:57
nope, I tried commenting out the growl init line as well and still ran into the
same problem
Original comment by [email protected] on 25 Sep 2012 at 9:10
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 [email protected] on 25 Sep 2012 at 9:12
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 [email protected] on 26 Sep 2012 at 3:47
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 [email protected] on 26 Sep 2012 at 3:55
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 [email protected] on 26 Sep 2012 at 5:34
I commented out the 4 cases but am still running into the same problem. Have
you tested this on Mountain Lion?
Original comment by [email protected] on 26 Sep 2012 at 5:41
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 [email protected] on 26 Sep 2012 at 5:43
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 [email protected] on 4 Oct 2012 at 7:43
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 [email protected] on 25 Oct 2012 at 11:34
Confirming the exact same behavior as stated by [email protected]. 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 [email protected] on 29 Nov 2012 at 7:43
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 [email protected] on 2 Apr 2013 at 2:33
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 [email protected] on 17 May 2013 at 9:27
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 [email protected] on 31 Oct 2013 at 1:56
[deleted comment]
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 [email protected] on 4 Nov 2013 at 8:28
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 [email protected] on 12 Aug 2014 at 8:05
I am also having the same problem:
ProductName: Mac OS X
ProductVersion: 10.9.2
BuildVersion: 13C64
Original comment by [email protected] on 18 Aug 2014 at 7:24
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 [email protected] on 21 Dec 2014 at 11:32
Bump, no workarounds seem to work for me
OSX 10.10.5
@pbdeuchler : Have you tried to install a recent bash version using MacPorts ?
Have never even installed MacPorts, homebrew only. And I've never used anything but the default bash on this machine @jleroy