Leopard 10.5.6 Users Active AFP Sessions Are Not Disconnected After Logging Off

1 Star2 Stars3 Stars4 Stars5 Stars
Loading...
  • Product:
    ExtremeZ-IP
  • Version:
    All
  • Document Type:
    Bug
  • Revised:
    2/13/2009
  • Reviewed:
    2/16/2009

Symptom:

As of Leopard 10.5.6 when a user has more than one AFP volume mounted the Mac OS does not disconnect the active AFP session(s) after a manual volume dismount, from the Finder, of all volumes or if the user logs-off. If the volumes are manually unmounted one at a time the bug does not occur.

Steps to Reproduce:

From a 10.5.6 client:

  1. Connect to an AFP server and mount two or more volumes.
  2. Run “mount” from Terminal app to verify the mounted volume information:MachineName:~ admin$ mount
    /dev/disk0s3 on / (hfs, local, journaled)
    devfs on /dev (devfs, local)
    fdesc on /dev (fdesc, union)
    map -hosts on /net (autofs, automounted)
    map auto_home on /home (autofs, automounted)
    map -fstab on /Network/Servers (autofs, automounted)
    /dev/disk0s2 on /Volumes/Macintosh HD (hfs, local, journaled)
    afp_2LPs640000Fo39pvqc13gANY-4.2d000006 on /Volumes/Share2 (afpfs, nodev, nosuid, mounted by admin)
    afp_2LPs640000Fo39pvqc13gANY-5.2d000007 on /Volumes/Share1 (afpfs, nodev, nosuid, mounted by admin)
  3. Run “netstat -an” from terminal to verify the Mac OS has properly established a connection:
    MachineName:~ admin$ netstat -an | grep ESTABLISHED | grep 548
    tcp4 0 0 192.168.1.161.49236 192.168.1.17.548 ESTABLISHED
  4. Dismount all AFP volumes simultaneously via the Finder (Select all volumes and Eject)
  5. Run “mount” from Terminal app to verify the volumes have been dismounted:
    MachineName:~ admin$ mount
    /dev/disk0s3 on / (hfs, local, journaled)
    devfs on /dev (devfs, local)
    fdesc on /dev (fdesc, union)
    map -hosts on /net (autofs, automounted)
    map auto_home on /home (autofs, automounted)
    map -fstab on /Network/Servers (autofs, automounted)
    /dev/disk0s2 on /Volumes/Macintosh HD (hfs, local, journaled)
  6. Run “netstat -an” from terminal.
    SupportLAB-MINI-LEO:~ admin$ netstat -an | grep ESTABLISHED | grep 548
    tcp4 0 0 192.168.1.161.49236 192.168.1.17.548 ESTABLISHED

    You will see that there is still an active session on PORT 548 even though there are no mounted volumes.

Cause:

Packet Trace analysis of this behavior shows that Mac OS never sends a logout request to the server after all volumes are dismounted.

Workaround:

The registry values belows should be modified to automatically disconnect such sessions.

\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ExtremeZ-IP\Parameters4\Refreshable

In order for the newly added registry keys to take effect, you must click the “Refresh Registry” button within the EZIP Administrator > Settings Tab.

TimeoutIdleUsers
Description: Controls whether or not idle users are timed out after some period of time.
Default: Off (change to 1 to turn on)

IdleTimeoutNoOpenForks
Description: If idle users are timed out (see above), this controls the amount of time ExtremeZ-IP will wait before disconnecting an idle user with no open forks. Setting this to 0 will prevent idle users with no open forks from being timed out. This value is specified in minutes.
Default: 360 [6 hours]

Although not required to mitigate this specific issue you may also want to set the following key:
IdleTimeoutOpenForks
Description: If idle users are timed out (see above), this controls the amount of time ExtremeZ-IP will wait before disconnecting an idle user who has open files (actually either the resource fork or data fork of any file). These users could potentially lose data. Setting this to 0 will prevent idle users with open forks from being timed out. This value is specified in minutes.
Default: 1440 [24 hours]

Fix:

We have reported the issue to Apple and they will need to fix it in a future version of Mac OS X. The workaround mentioned above should mitigate the problem on a production file server.

Tags: