** Also affects: openssh (Ubuntu Trusty)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssh in Ubuntu.
https://bugs.launchpad.net/bugs/1334916

Title:
  sshd-ConsoleKit integration patch causes abrupt termination of
  multichannel sessions

Status in openssh package in Ubuntu:
  Fix Released
Status in openssh source package in Trusty:
  Triaged

Bug description:
  Attached to this report is a small app the reproduces the issue by creating 
multiple channels within one sessions. (I fist hit this issue using JSCH 
library)
  Following information is printed to stdout if sshd is launched with -d flags 
(I've modified the sshd code to print PIDs next to debug level):
  debug3(7526): monitor_read: checking request 156
  debug3(7526): mm_answer_consolekit_register entering
  debug1(7526): session_by_tty: session 0 tty /dev/pts/1
  debug1(7573): server_input_channel_req: channel 2 request pty-req reply 1
  debug1(7573): session_by_channel: session 2 channel 2
  debug1(7573): session_input_channel_req: session 2 req pty-req
  debug1(7573): Allocating pty.
  debug3(7573): mm_request_send entering: type 28
  debug3(7573): mm_pty_allocate: waiting for MONITOR_ANS_PTY
  debug3(7573): mm_request_receive_expect entering: type 29
  debug3(7573): mm_request_receive entering
  debug1(7526): Unable to open session: The name org.freedesktop.ConsoleKit was 
not provided by any .service files
  debug3(7526): mm_request_send entering: type 157
  debug3(7526): mm_request_receive entering
  debug3(7526): monitor_read: checking request 28
  debug3(7526): mm_answer_pty entering
  debug2(7526): session_new: allocate (allocated 2 max 10)
  debug3(7526): session_unused: session id 2 unused
  debug1(7526): session_new: session 2
  mm_request_receive_expect: read: rtype 157 != type 29

  From the log, it looks as if two processes use the same set of pipes
  to communicate to the monitor, one of them is sending
  MONITOR_REQ_CONSOLEKIT_REGISTER, while another  MONITOR_REQ_PTY, and
  because they use same set of pipes, and because both processes use
  same pipe FDs, monitor reply is sometimes delivered to the wrong
  process.

  I can reproduce the failure 90% of time using attached app, which expects 
first argument to be host name, second - login and the third - password, that 
are defaulted to ubuntu:ubuntu@localhost:
  $ ./ssh-multisession 
  Connecting to localhost...Done!
  Authenticating as ubuntu...Done.
  Starting channel 0
  Starting channel 1
  ssh_channel_request_pty()=-1: Socket error: disconnected
  Starting channel 2
  ssh_channel_open_session()=-1: Writing packet: error on socket (or connection 
closed): Operation now in progress
  Starting channel 3

  The same script works fine if sshd is compiled without consolekit.patch:
  ./ssh-multisession debian-host debian debian
  Connecting to 172.17.162.237...Done!
  Authenticating as debian...Done.
  Starting channel 0
  Starting channel 1
  Starting channel 2
  Starting channel 3
  Starting channel 4
  Starting channel 5
  Starting channel 6
  Starting channel 7
  Starting channel 8
  Starting channel 9

  P.S. To compile a test app one needs to have libssh-dev package
  installed on your system.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1334916/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to