filename paths different in server mode

Bob Proulx bob at proulx.com
Tue May 3 23:26:10 GMT 2005


For some reason rsync-2.6.4 compiled by me on HP-UX 11.23 in 64-bit
mode is adding extra path elements when running in server mode.  This
is a new problem.  It did not used to do that with older versions and
it does not do that with compilations on other systems.

  $ rsync -a ewok::cadroot/release/bin/ .
  $ ls
  bin

Where did that extra directory come from?  Testing with a different
machine works as expected.

  $ rsync -a wookie::cadroot/release/bin/ .
  $ ls
  set_env
  ...more contents of bin not shown...

In the bad case I am getting an extra directory in the path.  I don't
get this in other configurations.  How can I debug this?  I am only
seeing this problem on HP-UX.  And of course that is the platform I am
trying to use.

Any hints on how to debug why this server mode is adding an extra
directory in the path?

Here is my configuration.

The machine ewok is an HP-UX machine.  I set up an rsync server
running there using this configuration:

  uid = nobody
  gid = nogroup
  [cadroot]
          path = /mnt/tools
          comment = CADROOT

Command to access the server:

  rsync -avvvv ewok::cadroot/release/bin/ .

  opening tcp connection to ewok port 873
  opening connection using --server --sender -vvvvlogDtpr
  . cadroot/release/bin/ 
  (Client) Protocol versions: remote=29, negotiated=29
  receiving file list ... 
  recv_file_name(bin)
  recv_file_name(bin/set_env)
  ... lots of lines of files ...

The path that gets created is then ./bin/* and not ./*.  There is an
extra ./bin/ in the path.  That's not good.

But if I set up a different machine, in this case a Debian Gnu/Linux
amd64 running the Debian sid 64-bit 2.6.4 I get this result.

  rsync -avvvv wookie::cadroot/release/bin/ .

  opening tcp connection to wookie port 873
  opening connection using --server --sender -vvvvlogDtpr
  . cadroot/release/bin/ 
  (Client) Protocol versions: remote=29, negotiated=29
  receiving file list ... 
  recv_file_name(.)
  recv_file_name(set_env)
  ... lots of lines of files ...

That is fine.  The files are mapped to the right location and
everything works as I expect.  As can be seen in the debug output
there is no extra 'bin' directory element.  If I use 'ssh' and remote
shell over to the broken machine then things work as expected.

  $ rsync -a -e ssh ewok:/mnt/tools/cadroot/release/bin/ .
  $ ls
  set_env
  ...more contents of bin not shown...

I configured using the native HP ANSI C compiler like this:

  ./configure CC=cc CFLAGS='-Ae +DD64'
  make

If I take that same code base and compile it on my Debian GNU/Linux
system I get a working result without the extra 'bin' directory.  So
this must have some factor of outside influence that is causing this
difference in server side behavior.

Thanks
Bob


More information about the rsync mailing list