Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 Jan 2011 17:46:05 GMT
From:      Roger Leigh <rleigh@debian.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   bin/153600: Path length restrictions in mount/umount tools prevent filesystem mount/unmount
Message-ID:  <201101011746.p01Hk5UQ008490@red.freebsd.org>
Resent-Message-ID: <201101011750.p01HoB1j016585@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         153600
>Category:       bin
>Synopsis:       Path length restrictions in mount/umount tools prevent filesystem mount/unmount
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jan 01 17:50:10 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Roger Leigh
>Release:        8.2-RC1
>Organization:
Debian Project
>Environment:
FreeBSD freebsd 8.2-RC1 FreeBSD 8.2-RC1 #0: Wed Dec 22 17:34:20 UTC 2010     roo
t@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
When mount is asked to mount a filesystem on a node whose absolute path is longer than 85 characters in length, the mount fails.  Umount also fails under some circumstances, though the testcase attached below doesn't show this.

Please also see:
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608428

In the Debian report, you'll see that on kfreebsd-amd64 there is some odd behaviour between 80-85 character lengths.  Not seen on freebsd 82-RC1, maybe due to version differences, but the main problem is still reproducible on freebsd.

The program causing the failures in Debian is schroot, a tool to set up and access chroot environments.  This mounts and bind mounts a large number of filesystems in a deep hierarchy which commonly exceeds the 80-85 character limit at which point the freebsd mount/umount start failing.  While this tool initially triggered the failures, it's apparently a fundamental flaw in the FreeBSD mount/umount [we've never encountered the issue with the Linux equivalents]
>How-To-Repeat:
Simple shell script to demonstrate issue:

#!/bin/sh

chrs="0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f"

for c in $chrs; do
  cs="$cs$c"
  dir="/tmp/$cs"
  echo "Testing $cs ($(echo -n "$dir" | wc -c) chars)"
  mkdir "$dir"
  mount -v -t linprocfs linprocfs "$dir"
  umount -v "$dir"
  rmdir "$dir"
done

Output of script follows. Note mount/umount failure starting at 85 character path length.

freebsd# /root/test.sh
Testing 0 (       6 chars)
linprocfs on /tmp/0 (linprocfs, local, fsid 51ff000707000000)
linprocfs: unmount from /tmp/0
Testing 01 (       7 chars)
linprocfs on /tmp/01 (linprocfs, local, fsid 52ff000707000000)
linprocfs: unmount from /tmp/01
Testing 012 (       8 chars)
linprocfs on /tmp/012 (linprocfs, local, fsid 53ff000707000000)
linprocfs: unmount from /tmp/012
Testing 0123 (       9 chars)
linprocfs on /tmp/0123 (linprocfs, local, fsid 54ff000707000000)
linprocfs: unmount from /tmp/0123
Testing 01234 (      10 chars)
linprocfs on /tmp/01234 (linprocfs, local, fsid 55ff000707000000)
linprocfs: unmount from /tmp/01234
Testing 012345 (      11 chars)
linprocfs on /tmp/012345 (linprocfs, local, fsid 56ff000707000000)
linprocfs: unmount from /tmp/012345
Testing 0123456 (      12 chars)
linprocfs on /tmp/0123456 (linprocfs, local, fsid 57ff000707000000)
linprocfs: unmount from /tmp/0123456
Testing 01234567 (      13 chars)
linprocfs on /tmp/01234567 (linprocfs, local, fsid 58ff000707000000)
linprocfs: unmount from /tmp/01234567
Testing 012345678 (      14 chars)
linprocfs on /tmp/012345678 (linprocfs, local, fsid 59ff000707000000)
linprocfs: unmount from /tmp/012345678
Testing 0123456789 (      15 chars)
linprocfs on /tmp/0123456789 (linprocfs, local, fsid 5aff000707000000)
linprocfs: unmount from /tmp/0123456789
Testing 0123456789a (      16 chars)
linprocfs on /tmp/0123456789a (linprocfs, local, fsid 5bff000707000000)
linprocfs: unmount from /tmp/0123456789a
Testing 0123456789ab (      17 chars)
linprocfs on /tmp/0123456789ab (linprocfs, local, fsid 5cff000707000000)
linprocfs: unmount from /tmp/0123456789ab
Testing 0123456789abc (      18 chars)
linprocfs on /tmp/0123456789abc (linprocfs, local, fsid 5dff000707000000)
linprocfs: unmount from /tmp/0123456789abc
Testing 0123456789abcd (      19 chars)
linprocfs on /tmp/0123456789abcd (linprocfs, local, fsid 5eff000707000000)
linprocfs: unmount from /tmp/0123456789abcd
Testing 0123456789abcde (      20 chars)
linprocfs on /tmp/0123456789abcde (linprocfs, local, fsid 5fff000707000000)
linprocfs: unmount from /tmp/0123456789abcde
Testing 0123456789abcdef (      21 chars)
linprocfs on /tmp/0123456789abcdef (linprocfs, local, fsid 60ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef
Testing 0123456789abcdef0 (      22 chars)
linprocfs on /tmp/0123456789abcdef0 (linprocfs, local, fsid 61ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0
Testing 0123456789abcdef01 (      23 chars)
linprocfs on /tmp/0123456789abcdef01 (linprocfs, local, fsid 62ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef01
Testing 0123456789abcdef012 (      24 chars)
linprocfs on /tmp/0123456789abcdef012 (linprocfs, local, fsid 63ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef012
Testing 0123456789abcdef0123 (      25 chars)
linprocfs on /tmp/0123456789abcdef0123 (linprocfs, local, fsid 64ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123
Testing 0123456789abcdef01234 (      26 chars)
linprocfs on /tmp/0123456789abcdef01234 (linprocfs, local, fsid 65ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef01234
Testing 0123456789abcdef012345 (      27 chars)
linprocfs on /tmp/0123456789abcdef012345 (linprocfs, local, fsid 66ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef012345
Testing 0123456789abcdef0123456 (      28 chars)
linprocfs on /tmp/0123456789abcdef0123456 (linprocfs, local, fsid 67ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456
Testing 0123456789abcdef01234567 (      29 chars)
linprocfs on /tmp/0123456789abcdef01234567 (linprocfs, local, fsid 68ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef01234567
Testing 0123456789abcdef012345678 (      30 chars)
linprocfs on /tmp/0123456789abcdef012345678 (linprocfs, local, fsid 69ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef012345678
Testing 0123456789abcdef0123456789 (      31 chars)
linprocfs on /tmp/0123456789abcdef0123456789 (linprocfs, local, fsid 6aff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789
Testing 0123456789abcdef0123456789a (      32 chars)
linprocfs on /tmp/0123456789abcdef0123456789a (linprocfs, local, fsid 6bff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789a
Testing 0123456789abcdef0123456789ab (      33 chars)
linprocfs on /tmp/0123456789abcdef0123456789ab (linprocfs, local, fsid 6cff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789ab
Testing 0123456789abcdef0123456789abc (      34 chars)
linprocfs on /tmp/0123456789abcdef0123456789abc (linprocfs, local, fsid 6dff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abc
Testing 0123456789abcdef0123456789abcd (      35 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcd (linprocfs, local, fsid 6eff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcd
Testing 0123456789abcdef0123456789abcde (      36 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcde (linprocfs, local, fsid 6fff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcde
Testing 0123456789abcdef0123456789abcdef (      37 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef (linprocfs, local, fsid 70ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef
Testing 0123456789abcdef0123456789abcdef0 (      38 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0 (linprocfs, local, fsid 71ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0
Testing 0123456789abcdef0123456789abcdef01 (      39 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef01 (linprocfs, local, fsid 72ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef01
Testing 0123456789abcdef0123456789abcdef012 (      40 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef012 (linprocfs, local, fsid 73ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef012
Testing 0123456789abcdef0123456789abcdef0123 (      41 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123 (linprocfs, local, fsid 74ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123
Testing 0123456789abcdef0123456789abcdef01234 (      42 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef01234 (linprocfs, local, fsid 75ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef01234
Testing 0123456789abcdef0123456789abcdef012345 (      43 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef012345 (linprocfs, local, fsid 76ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef012345
Testing 0123456789abcdef0123456789abcdef0123456 (      44 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456 (linprocfs, local, fsid 77ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456
Testing 0123456789abcdef0123456789abcdef01234567 (      45 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef01234567 (linprocfs, local, fsid 78ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef01234567
Testing 0123456789abcdef0123456789abcdef012345678 (      46 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef012345678 (linprocfs, local, fsid 79ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef012345678
Testing 0123456789abcdef0123456789abcdef0123456789 (      47 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789 (linprocfs, local, fsid 7aff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789
Testing 0123456789abcdef0123456789abcdef0123456789a (      48 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789a (linprocfs, local, fsid 7bff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789a
Testing 0123456789abcdef0123456789abcdef0123456789ab (      49 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789ab (linprocfs, local, fsid 7cff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789ab
Testing 0123456789abcdef0123456789abcdef0123456789abc (      50 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abc (linprocfs, local, fsid 7dff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abc
Testing 0123456789abcdef0123456789abcdef0123456789abcd (      51 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcd (linprocfs, local, fsid 7eff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcd
Testing 0123456789abcdef0123456789abcdef0123456789abcde (      52 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcde (linprocfs, local, fsid 7fff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcde
Testing 0123456789abcdef0123456789abcdef0123456789abcdef (      53 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef (linprocfs, local, fsid 80ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0 (      54 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0 (linprocfs, local, fsid 81ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0
Testing 0123456789abcdef0123456789abcdef0123456789abcdef01 (      55 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef01 (linprocfs, local, fsid 82ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef01
Testing 0123456789abcdef0123456789abcdef0123456789abcdef012 (      56 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef012 (linprocfs, local, fsid 83ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef012
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123 (      57 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123 (linprocfs, local, fsid 84ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123
Testing 0123456789abcdef0123456789abcdef0123456789abcdef01234 (      58 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef01234 (linprocfs, local, fsid 85ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef01234
Testing 0123456789abcdef0123456789abcdef0123456789abcdef012345 (      59 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef012345 (linprocfs, local, fsid 86ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef012345
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456 (      60 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456 (linprocfs, local, fsid 87ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456
Testing 0123456789abcdef0123456789abcdef0123456789abcdef01234567 (      61 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef01234567 (linprocfs, local, fsid 88ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef01234567
Testing 0123456789abcdef0123456789abcdef0123456789abcdef012345678 (      62 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef012345678 (linprocfs, local, fsid 89ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef012345678
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789 (      63 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789 (linprocfs, local, fsid 8aff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789a (      64 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789a (linprocfs, local, fsid 8bff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789a
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab (      65 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab (linprocfs, local, fsid 8cff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc (      66 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc (linprocfs, local, fsid 8dff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd (      67 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd (linprocfs, local, fsid 8eff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde (      68 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde (linprocfs, local, fsid 8fff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef (      69 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef (linprocfs, local, fsid 90ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0 (      70 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0 (linprocfs, local, fsid 91ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01 (      71 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01 (linprocfs, local, fsid 92ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012 (      72 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012 (linprocfs, local, fsid 93ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123 (      73 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123 (linprocfs, local, fsid 94ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234 (      74 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234 (linprocfs, local, fsid 95ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345 (      75 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345 (linprocfs, local, fsid 96ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456 (      76 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456 (linprocfs, local, fsid 97ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567 (      77 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567 (linprocfs, local, fsid 98ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678 (      78 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678 (linprocfs, local, fsid 99ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789 (      79 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789 (linprocfs, local, fsid 9aff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a (      80 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a (linprocfs, local, fsid 9bff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab (      81 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab (linprocfs, local, fsid 9cff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc (      82 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc (linprocfs, local, fsid 9dff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd (      83 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd (linprocfs, local, fsid 9eff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde (      84 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde (linprocfs, local, fsid 9fff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef (      85 chars)
linprocfs on /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef (linprocfs, local, fsid a0ff000707000000)
linprocfs: unmount from /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0 (      86 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01 (      87 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012 (      88 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123 (      89 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234 (      90 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345 (      91 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456 (      92 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567 (      93 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678 (      94 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789 (      95 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a (      96 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab (      97 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc (      98 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd (      99 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde (     100 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef (     101 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0 (     102 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01 (     103 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012 (     104 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123 (     105 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234 (     106 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345 (     107 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456 (     108 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567 (     109 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678 (     110 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789 (     111 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a (     112 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab (     113 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc (     114 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd (     115 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde (     116 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef (     117 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0 (     118 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01 (     119 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012 (     120 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123 (     121 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234 (     122 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345 (     123 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456 (     124 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567 (     125 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678 (     126 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345678: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789 (     127 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a (     128 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789a: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab (     129 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc (     130 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abc: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd (     131 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde (     132 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde: not a file system root directory
Testing 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef (     133 chars)
mount: linprocfs : File name too long
umount: /tmp/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef: not a file system root directory

>Fix:
I suspect that the mount/umount tools are using a fixed-length buffer and/or are truncating the path at some point.

The mount(2) manual page documents the max path length at 1023 characters, and the maximum length of any single component at 255 characters.  These limits have not been exceeded, unless the documentation is incorrect.

The practical upper limit of 80-85 characters demonstrated in this bug report is very low.  The documented [ENAMETOOLONG] limit in mount(2) is sensible, but does not appear to reflect the practical reality at the present time.  If the 80-85 character limit could be eliminated to allow this to work as documented, this would remove a significant limitation in the FreeBSD system which is breaking software which requires longer paths to function.



Many thanks,
Roger Leigh

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101011746.p01Hk5UQ008490>