Thank you for opening this bug and helping making Ubuntu better. First
of all, thank you for all the work you have done here. Given that
upstream has accepted the bug, I am marking it triaged for us. Also:

* I am also adjusting the description to include the workaround you found -- it 
is a nice way of resolving the conflict;
* I do not know why you added a coreutils task (and this is why this bug got my 
attention ;-), since there is nothing related to coreutils here. I have marked 
this task INVALID;
* You could not add an upstream watch because netatalk has not been defined as 
a project in LP (yet). I will see to it.

** Changed in: netatalk (Ubuntu)
   Importance: Undecided => Low

** Changed in: netatalk (Ubuntu)
       Status: New => Triaged

** Changed in: coreutils (Ubuntu)
       Status: New => Invalid

** Description changed:

  Binary package hint: netatalk
  
  Description:  Ubuntu 9.10
  Release:      9.10
  
  ii  netatalk
  2.0.4~beta2-5ubuntu2                                  AppleTalk user
  binaries
  
  NetATalk fails to generate a unique server signature. Analysis of
  client/server communication reveals that both NetATalk servers here
  report the signature 01017F0001017F0001017F0001017F00 . This confuses
  Mac clients, resulting in them apparently randomly directing AFP
  requests to one server or the other. Users will connect to SERVER1 and
  get a volume list from SERVER2 or vice versa.
  
  The netatalk code for generating server signatures
  (etc/afpd/status.c:191) uses the libc gethostid() call to obtain a
  32-bit unique identifier for the host.
  
  GNU Libc's man page for gethostid(3) notes that:
  
  "In the glibc implementation, the hostid is stored in the file /etc/hostid.  
(In glibc versions before 2.2, the file /var/adm/hostid was used.)
  "In the glibc implementation, if gethostid() cannot open the file containing 
the host ID, then it obtains the hostname using gethostname(2), passes that 
hostname to gethostbyname_r(3)  in  order  to  obtain  the  host's  IPv4
-        address, and returns a value obtained by bit-twiddling the IPv4 
address.  (This value may not be unique.)"
+        address, and returns a value obtained by bit-twiddling the IPv4 
address.  (This value may not be unique.)"
  
  Ubuntu systems do not have any /etc/hostid by default, so glibc falls
  back on gethostbyname_r(3). However, Ubuntu systems' /etc/hosts files
  map the hostname to 127.0.0.1:
  
  127.0.0.1       localhost
  127.0.1.1       HOSTNAME.localnet        HOSTNAME
  
  so gethostbyname_r for the hostname in /etc/hostname will always return
  127.0.0.1 . gethostid(3) will therefore always return the same value,
  and NetATalk's system id will always be the same on different Ubuntu
  hosts.
+ 
+ WORKAROUND:
+ 
+ To each line in your afpd.conf, append an
+ explicit:
+ 
+ -signature user:SERVERNAME
+ 
+ (if you have more than one line in afpd.conf, make sure the signature is
+ unique for each one).

-- 
netatalk fails to generate unique server signatures
https://bugs.launchpad.net/bugs/535517
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to