I've tested this here (with Fossil-4473a27f3b6e049e) but can only report partial success:

* it works using bash/ksh as login shell on the remote machine _if_ there is not too much text (the allocated buffer size (50000) is still rather modest but usually sure sufficient) coming in from `.profile' over the ssh connection. so that's a clear step forward. however:

* it does _not_ work if the default verbose (multi-line/blank line separated multi-paragraph, but much shorter than 50000 bytes) ubuntu motd stuff comes in. the (visible) offending text looks something like this:

8<--------------------------------------------------------------
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-32-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Mon Nov 12 13:20:41 CET 2012

  System load:  0.04              Processes:           114
  Usage of /:   72.3% of 9.96GB   Users logged in:     2
  Memory usage: 22%               IP address for eth0: 123.456.78.90
  Swap usage:   0%

Graph this data and manage this system at https://landscape.canonical.com/

0 packages can be updated.
0 updates are security updates.
8<--------------------------------------------------------------

- what's strange is: if I copy this text into an `echo' command within `.profile' and then deactivate the MOTD (so seeminly getting the same stuff send over the ssh connection during login), it works flawlessly!?. my guess would be that there are some unprintable characters/escapes sent as well which I do not see so that copying the MOTD to `.profile' is not really the same thing as what is happening when ubuntu sends the stuff.

* it also does _not_ work (with bash that is: ksh keeps working) if I myself send some escape sequences from my login scripts (as mentioned in a previous mail intended to dynamically adjust my xterm-titlebars). what's happening here is completely unclear to me, since it seems bash specific. what's worse: issuing the respective `echo' directly in the script instead of within a shell-function (as is usually done in my setup) does not lead to a failure. my setup might be somewhat esoteric here, so maybe it's not too important, but it indicates of course that there still is something fundamentally not OK.

* and it does not at all work with tcsh as login shell on the remote machine (even if login is completely silent). in this case I get the error message
   tput: No value for $TERM and no -T specified
   TERM: Undefined variable.
   Fossil-4473a27f3b6e049e/fossil: ssh connection failed: [test1
   probe-4f5d9ab4]
  so, seemingly `tcsh' users are out of luck anyway.

questions:

* maybe the (echo/flush) process has to be iterated one further time to make fossil happy with ubuntu's motd (after all it's not the least frequent linux distro)?

* could fossil (or a debug version) not provide a (additional) hexdump (a la `hexdump -C' on linux) of the content of `zIn' instead of using `fossil_fatal("ssh connection failed: [%s]", zIn);'? in this way one might be able to at least to recognize what exactly is coming in which might help in tracking down the source of the trouble: it need not be printable characters coming over the ssh connection after all.


j.


On Sun, 11 Nov 2012 23:44:31 +0100, Richard Hipp <[email protected]> wrote:

On Sun, Nov 11, 2012 at 5:11 PM, Matt Welland <[email protected]> wrote:

I'll top-post an answer to this one as this thread has wandered and gotten
very long, so who knows who is still following :)

I made a simple tweak to the ssh code that gets ssh working for me on
Ubuntu and may solve some of the login shell related problems that have
been reported with respect to ssh:


http://www.kiatoa.com/cgi-bin/fossils/fossil/fdiff?v1=935bc0a983135b26&v2=61f9ddf1e2c8bbb0


Not exactly the same patch, but something quite similar has been checked in at http://www.fossil-scm.org/fossil/info/4473a27f3b - please try it out and
let me know if it clears any outstanding problems, or if I missed some
obvious benefit of Matt's patch in my refactoring.




Joerg iasked if this will make it into a future release. Can Richard or
one of the developers take a look at the change and comment?

Note that unfortunately this does not fix the issues I'm having with
fsecure ssh but I hope it gets us one step closer.

Thanks,

Matt
-=-



On Sun, Nov 11, 2012 at 1:53 PM, j. v. d. hoff <[email protected]>wrote:

On Sun, 11 Nov 2012 19:35:25 +0100, Matt Welland <[email protected]>
wrote:

 On Sun, Nov 11, 2012 at 2:56 AM, j. van den hoff
<[email protected]>**wrote:

On Sun, 11 Nov 2012 10:39:27 +0100, Matt Welland <[email protected]>
wrote:

sshfs is cool but in a corporate environment it can't always be used.
For

example fuse is not installed for end users on the servers I have
access
to.

I would also be very wary of sshfs and multi-user access. Sqlite3
locking
on NFS doesn't always work well, I imagine that locking issues on sshfs


it doesn't? in which way? and are the mentioned problems restricted to
NFS
or other file systems (zfs, qfs, ...) as well?
do you mean that a 'central' repository could be harmed if two users try to push at the same time (and would corruption propagate to the users'
"local" repositories later on)? I do hope not so...



I should have qualified that with the detail that historically NFS
locking
has been reported as an issue by others but I myself have not seen it.
What
I have seen in using sqlite3 and fossil very heavily on NFS is users
using
kill -9 right off the bat rather than first trying with just kill. The
lock
gets stuck "set" and only dumping the sqlite db to text and recreating it
seems to clear the lock (not sure but maybe sometimes copying to a new
file
and moving back will clear the lock).

I've seen a corrupted db once or maybe twice but never been clear that it
was caused by concurrent access on NFS or not. Thankfully it is fossil
and
recovery is a "cp" away.

Quite some time ago I did limited testing of concurrent access to an
sqlite3 db on AFS and GFS and it seemed to work fine. The AFS test was
very
slow but that could well be due to my being clueless on how to correctly
tune AFS itself.

When you say zfs do you mean using the NFS export functionality of zfs?

yes

I've never tested that and it would be very interesting to know how well
it
works.


not yet possible here, but we'll probably migrate to zfs in the not too
far future.



My personal opinion is that fossil works great over NFS but would caution
anyone trying it to test thoroughly before trusting it.



 could well be worse.


sshfs is an excellent work-around for an expert user but not a
replacement
for the feature of ssh transport.


yes I would love to see a stable solution not suffering from
interference
of terminal output (there are people out there loving the good old
`fortune' as part of their login script...).

btw: why could fossil not simply(?) filter a reasonable amount of
terminal
output for the occurrence of a sufficiently strong magic pattern
indicating
that the "noise" has passed by and fossil can go to work? right now
putting
`echo " "' (sending a single blank) suffices to let the transfer fail.
my
understanding is that fossil _does_ send something like `echo test' (is this true). all unexpected output to tty from the login scripts would
come
_before_ that so why not test for receiving the expected text ('test'
just
being not unique/strong enough) at the end of whatever is send (up to a
reasonable length)? is this a stupid idea?



I thought of trying that some time ago but never got around to it.
Inspired
by your comment I gave a similar approach a quick try and for the first
time I saw ssh work on my home linux box!!!

All I did was read and discard any junk on the line before sending the
echo
test:

http://www.kiatoa.com/cgi-bin/**fossils/fossil/fdiff?v1=**
935bc0a983135b26&v2=**61f9ddf1e2c8bbb0<http://www.kiatoa.com/cgi-bin/fossils/fossil/fdiff?v1=935bc0a983135b26&v2=61f9ddf1e2c8bbb0>

===========without==========
rm: cannot remove `*': No such file or directory
make: Nothing to be done for `all'.
ssh matt@xena
Pseudo-terminal will not be allocated because stdin is not a terminal.
../fossil: ssh connection failed: [Welcome to Ubuntu 12.04.1 LTS
(GNU/Linux
3.2.0-32-generic-pae i686)

 * Documentation:  https://help.ubuntu.com/

0 packages can be updated.
0 updates are security updates.

test]

==============with============**===
fossil/junk$ rm *;(cd ..;make) && ../fossil clone
ssh://matt@xena//home/matt/**fossils/fossil.fossil
fossil.fossil
make: Nothing to be done for `all'.
ssh matt@xena
Pseudo-terminal will not be allocated because stdin is not a terminal.
                Bytes      Cards  Artifacts     Deltas
Sent:              53          1          0          0
Received:     5004225      13950       1751       5238
Sent:              71          2          0          0
Received:     5032480       9827       1742       3132
Sent:              57         93          0          0
Received:     5012028       9872       1137       3806
Sent:              57          1          0          0
Received:     4388872       3053        360       1168
Total network traffic: 1037 bytes sent, 19438477 bytes received
Rebuilding repository meta-data...
  100.0% complete...
project-id: CE59BB9F186226D80E49D1FA2DB29F**935CCA0333
server-id:  3029a8494152737798f2768c799192**1f2342a84b
admin-user: matt (password is "7db8e5")



great. that's essentially what I had in mind (but your approach  of
sending two commands while flushing
the first response completely probably is better, AFAICS). will something
like this make it into a future release?

joerg








On Sun, Nov 11, 2012 at 2:01 AM, Ramon Ribó <[email protected]>
wrote:


> Sshfs didn't fix the problems that I was having with fossil+ssh, or
at
least
> only did so partially.

Why not? In what sshfs failed to give you the equivalent functionality
than a remote access to a fossil database through ssh?



2012/11/11 Timothy Beyer <[email protected]>

 At Sat, 10 Nov 2012 22:31:57 +0100,

j. van den hoff wrote:
>
> thanks for responding.
> I managed to solve my problem in the meantime (see my previous
mail in
> this thread), but I'll make a memo of sshfs and have a look at it.
>
> joerg
>

Sshfs didn't fix the problems that I was having with fossil+ssh, or
at
least only did so partially. Though, the problems that I was having
with
ssh were different.

What I'd recommend doing is tunneling http or https through ssh, and
host
all of your fossil repositories on the host computer on your web
server
of
choice via cgi.  I do that with lighttpd, and it works flawlessly.

Tim
______________________________****_________________
fossil-users mailing list
[email protected].****org <[email protected]**
scm.org <[email protected]>>
http://lists.fossil-scm.org:****8080/cgi-bin/mailman/listinfo/****
fossil-users<http://lists.**fossil-scm.org:8080/cgi-bin/**
mailman/listinfo/fossil-users<http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users>
>



______________________________****_________________
fossil-users mailing list
[email protected].****org <[email protected]**
scm.org <[email protected]>>
http://lists.fossil-scm.org:****8080/cgi-bin/mailman/listinfo/****
fossil-users<http://lists.**fossil-scm.org:8080/cgi-bin/**
mailman/listinfo/fossil-users<http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users>
>




--
Using Opera's revolutionary email client: http://www.opera.com/mail/
______________________________****_________________
fossil-users mailing list
[email protected].****org <[email protected]**
scm.org <[email protected]>>
http://lists.fossil-scm.org:****8080/cgi-bin/mailman/listinfo/**
**fossil-users<http://lists.**fossil-scm.org:8080/cgi-bin/**
mailman/listinfo/fossil-users<http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users>
>



--
Using Opera's revolutionary email client: http://www.opera.com/mail/
______________________________**_________________
fossil-users mailing list
[email protected].**org <[email protected]>
http://lists.fossil-scm.org:**8080/cgi-bin/mailman/listinfo/**
fossil-users<http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users>



_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users






--
Using Opera's revolutionary email client: http://www.opera.com/mail/
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to