Ticket Change Details
Not logged in
Overview

Artifact ID: 2e43c4e17d6b2a90b598f05a6f4ba8ef1dc891c3
Ticket: 40d9dbd3ade39488a6786cd4588c0915974a9961
ssh scheme incompatible with tcsh
User & Date: anonymous 2011-03-13 19:25:00
Changes

  1. comment changed to:
    It looks like fossil is relying on some sh(1) or bash(1) specific semantic when it comes to syncing via ssh. Maybe using something like:
    
    <verbatim>/bin/sh -c 'exec /path/to/fossil'</verbatim>
    
    or threads?  Here's what's currently happening with tcsh:
    
    <verbatim>% fs remote-url 'ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil'
    password for usr: 
    ssh://usr:*@remote-url.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil
    % fs pull
    Server:    ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil
    ssh -p 22 -t -e none -p 4321 usr@remote-url.example.com
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    fossil: ssh connection failed: [Warning: no access to tty (Bad file descriptor).
    Thus no job control in this shell.]
    Killed by signal 2.
    Exit 1
    % fs set ssh-command 'ssh -p 4321 -T -e none'
    % fs pull
    Server:    ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil
    ssh -p 22 -T -e none -p 4321 usr@remote-url.example.com
    fossil: ssh connection failed: [Warning: no access to tty (Bad file descriptor).]
    Killed by signal 2.
    Exit 1
    % fs set ssh-command
    ssh-command          (local)  ssh -p 4321 -T -e none
    % fs sync
    Server:    ssh://remote-host.example.com/src/.fossils/project.fossil
    ssh -p 22 -T -e none -p 4321 remote-host.example.com
    fossil: ssh connection failed: [Warning: no access to tty (Bad file descriptor).
    Thus no job control in this shell.]
    Killed by signal 2.
    Exit 1</verbatim>
    
    Both client and server are running the same version of fossil.  When I change the shell to sh, I get the following output:
    
    <verbatim>% fs sync
    Server:    ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil
    ssh -p 22 -T -e none -p 4321 remote-host.example.com
                    Bytes      Cards  Artifacts     Deltas
    Sent:            4005         85          0          0
    fossil: server says: 501 Not Implemented
    Total network traffic: 2341 bytes sent, 0 bytes received
    Closing SSH tunnel: Killed by signal 2.</verbatim>
    
    When I sync via http over an ssh tunnel, things work just fine:
    
    <verbatim>% fs remote-url http://usr@127.0.0.1:9099/
    password for usr:
    http://usr@127.0.0.1:9099/
    % fs sync
    Server:    http://usr@127.0.0.1:9099/
                    Bytes      Cards  Artifacts     Deltas
    Sent:            4005         85          0          0
    Received:        3820         83          0          0
    Total network traffic: 2368 bytes sent, 1275 bytes received</verbatim>
    
  2. foundin changed to: "cdc4249268"
  3. private_contact changed to: "84f59114b7eee7088fd7e2932599c69c9ad0761b"
  4. severity changed to: "Minor"
  5. status changed to: "Open"
  6. title changed to: "ssh scheme incompatible with tcsh"
  7. type changed to: "Code_Defect"