That worked, thanks!

I've filed an issue because

1) The new behavior breaks a previously perfectly working setup;
2) The new behavior is counter-intuitive (I wouldn't expect an SSH slave to 
try to set up JNLP);
3) There's no obvious option in the UI to disable this behavior.

https://issues.jenkins-ci.org/browse/JENKINS-15697

On Wednesday, October 31, 2012 4:50:22 AM UTC+1, Kenny Ayers wrote:
>
> Hi.  Java is attempting to connect to X or whatever and is puking because 
> it doesn't have sufficient permissions.  Here's a fix:
>
> Jenkins > Manage Jenkins > Manage Nodes > (select the node with the error) 
> > Configure > Launch Method: "Launch slave agents on Unix machines via SSH" 
> > click "Advanced" then under "JVM Options" include the java directive to 
> run headless: *-Djava.awt.headless=true*
>
> On Saturday, October 27, 2012 5:30:55 PM UTC-7, Alex Rønne Petersen wrote:
>>
>> Hi folks,
>>
>> From the 1.487 changelog:
>>
>> * JNLP Slave agent on OS X can install itself as a launchd service.
>>
>> I believe this is the cause of the exceptions I'm now seeing when my
>> master node attempts to connect to an OS X slave:
>>
>> java.io.IOException: Remote call on osx-x86 failed
>>         at hudson.remoting.Channel.call(Channel.java:673)
>>         at org.jenkinsci.modules.launchd_slave_installer.
>> ComputerListenerImpl.onOnline(ComputerListenerImpl.java:30)
>>         at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:396)
>>         at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:317)
>>         at hudson.plugins.sshslaves.SSHLauncher.startSlave(
>> SSHLauncher.java:454)
>>         at hudson.plugins.sshslaves.SSHLauncher.launch(
>> SSHLauncher.java:293)
>>         at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:200)
>>         at java.util.concurrent.FutureTask$Sync.innerRun(
>> FutureTask.java:334)
>>         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>         at java.util.concurrent.ThreadPoolExecutor.runWorker(
>> ThreadPoolExecutor.java:1110)
>>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:603)
>>         at java.lang.Thread.run(Thread.java:679)
>> Caused by: java.lang.InternalError: Can't connect to window server -
>> not enough permissions.
>>         at java.lang.ClassLoader$NativeLibrary.load(Native Method)
>>         at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1724)
>>         at java.lang.Runtime.loadLibrary0(Runtime.java:823)
>>         at java.lang.System.loadLibrary(System.java:1045)
>>         at sun.security.action.LoadLibraryAction.run(
>> LoadLibraryAction.java:50)
>>         at java.security.AccessController.doPrivileged(Native Method)
>>         at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
>>         at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
>>         at java.awt.Component.<clinit>(Component.java:566)
>>         at org.jenkinsci.modules.launchd_slave_installer.
>> LaunchdSlaveInstaller.call(LaunchdSlaveInstaller.java:53)
>>         at org.jenkinsci.modules.launchd_slave_installer.
>> LaunchdSlaveInstaller.call(LaunchdSlaveInstaller.java:35)
>>         at hudson.remoting.UserRequest.perform(UserRequest.java:118)
>>         at hudson.remoting.UserRequest.perform(UserRequest.java:48)
>>         at hudson.remoting.Request$2.run(Request.java:326)
>>         at hudson.remoting.InterceptingExecutorService$1.call(
>> InterceptingExecutorService.java:72)
>>         at java.util.concurrent.FutureTask$Sync.innerRun(
>> FutureTask.java:303)
>>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>         at java.util.concurrent.ThreadPoolExecutor$Worker.
>> runTask(ThreadPoolExecutor.java:886)
>>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:908)
>>         at java.lang.Thread.run(Thread.java:680)
>> [10/27/12 20:47:14] [SSH] Connection closed.
>> ERROR: Connection terminated
>> java.io.IOException: Unexpected termination of the channel
>>         at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(
>> SynchronousCommandTransport.java:50)
>> Caused by: java.io.EOFException
>>         at java.io.ObjectInputStream$BlockDataInputStream.peekByte(
>> ObjectInputStream.java:2570)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.
>> java:1314)
>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.
>> java:368)
>>         at hudson.remoting.Command.readFrom(Command.java:90)
>>         at hudson.remoting.ClassicCommandTransport.read(
>> ClassicCommandTransport.java:59)
>>         at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(
>> SynchronousCommandTransport.java:48)
>> ERROR: [10/27/12 20:47:14] slave agent was terminated
>> java.io.IOException: Unexpected termination of the channel
>>         at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(
>> SynchronousCommandTransport.java:50)
>> Caused by: java.io.EOFException
>>         at java.io.ObjectInputStream$BlockDataInputStream.peekByte(
>> ObjectInputStream.java:2570)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.
>> java:1314)
>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.
>> java:368)
>>         at hudson.remoting.Command.readFrom(Command.java:90)
>>         at hudson.remoting.ClassicCommandTransport.read(
>> ClassicCommandTransport.java:59)
>>         at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(
>> SynchronousCommandTransport.java:48)
>>
>> Can I somehow disable this? I don't want it to be installed as a
>> launchd service and, as seen in the exception stack trace, it can't
>> actually start the installer. The machine is not a regular OS X
>> machine but an Xserve, so this GUI business is a bad idea.
>>
>> Thanks in advance,
>> Alex
>>
>

Reply via email to