Regression: sockets for 3.0.9pre1 ?

grarpamp grarpamp at gmail.com
Sat Jun 25 11:41:35 MDT 2011


> If you want to help solve this

Yes :) The system now also passes memtest86.

> do some experiments with a single socket or special file

I've not found a broken example of that yet. To date it has required
at least a smallish tree, with some hardlinks in it.


> find the shortest path length at which the problems start to occur

Hmm... was the verbose output I posted correct (thus insufficient)?

I don't yet know how to read the 'flags=' in the verbose output,
for example, from my last note, what are they telling me?

Rsync doesn't appear to synchronize it's verbose output. How do I
get each of the three rsync processes (two are forked) to log their
verbose info to separate output files for comparison between runs?
ie:

rsync -Haxi --delete -vvvvvvvvvv /a/ /b/ > run1 2>&1
rsync -Haxi --delete -vvvvvvvvvv /a/ /b/ > run2 2>&1
diff run1 run2  ==> quite often different by at least line numbers


>> Same for from /dev/ to /x/ (same filesystem aka: 'root').

Short paths? Are these paths from the same note not short enough?
This basic example is broken too. Called exactly as shown:

rsync -Haxi --delete /dev/ /x/


> use a system call tracer to see what is going wrong.

As for system calls, I presume rsync would catch any that return
error. And all 3550 mknod and link calls from the above example
return 0. An example of good and bad results...


# something that works
rm -rf ./r
ktrace -di -tcnsuw rsync -Haxi --delete /dev/*rfd1* ./r/ > /dev/null

kdump -d | egrep 'NAMI|mknod|stat' | egrep -v 'RET' | egrep -B2 mknod
| egrep -v '^--|lstat'
   920 rsync    NAMI  "rfd1.1200"
   920 rsync    CALL  mknod(-1077945264,8608,2372)
   920 rsync    NAMI  "rfd1.1232"
   920 rsync    CALL  mknod(-1077945264,8608,2378)
   920 rsync    NAMI  "rfd1.1440"
   920 rsync    CALL  mknod(-1077945264,8608,2371)
   920 rsync    NAMI  "rfd1.1480"
   920 rsync    CALL  mknod(-1077945264,8608,2370)
   920 rsync    NAMI  "rfd1.1720"
   920 rsync    CALL  mknod(-1077945264,8608,2369)
   920 rsync    NAMI  "rfd1.360"
   920 rsync    CALL  mknod(-1077945264,8608,2376)
   920 rsync    NAMI  "rfd1.640"
   920 rsync    CALL  mknod(-1077945264,8608,2377)
   920 rsync    NAMI  "rfd1.720"
   920 rsync    CALL  mknod(-1077945264,8608,2375)
   920 rsync    NAMI  "rfd1.800"
   920 rsync    CALL  mknod(-1077945264,8608,2374)
   920 rsync    NAMI  "rfd1.820"
   920 rsync    CALL  mknod(-1077945264,8608,2373)
   920 rsync    NAMI  "rfd1h"
   920 rsync    CALL  mknod(-1077945264,8608,2368)

ls -liTso r | sort +8n | egrep rfd1
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1a
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1b
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1c
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1d
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1e
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1f
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1g
63770 0 crw-r-----  9 root  operator  -   9,  64 Oct 11 14:06:33 2007 rfd1h
63763 0 crw-r-----  1 root  operator  -   9,  65 Oct 11 14:06:34 2007 rfd1.1720
63762 0 crw-r-----  1 root  operator  -   9,  66 Oct 11 14:06:34 2007 rfd1.1480
63761 0 crw-r-----  1 root  operator  -   9,  67 Oct 11 14:06:34 2007 rfd1.1440
63759 0 crw-r-----  1 root  operator  -   9,  68 Oct 11 14:06:34 2007 rfd1.1200
63769 0 crw-r-----  1 root  operator  -   9,  69 Oct 11 14:06:34 2007 rfd1.820
63767 0 crw-r-----  1 root  operator  -   9,  70 Oct 11 14:06:34 2007 rfd1.800
63766 0 crw-r-----  1 root  operator  -   9,  71 Oct 11 14:06:34 2007 rfd1.720
63764 0 crw-r-----  1 root  operator  -   9,  72 Oct 11 14:06:34 2007 rfd1.360
63765 0 crw-r-----  1 root  operator  -   9,  73 Oct 11 14:06:34 2007 rfd1.640
63760 0 crw-r-----  1 root  operator  -   9,  74 Oct 11 14:06:34 2007 rfd1.1232


# something that doesn't work
#  Note in the below, the non-raw 'r' devices make 9+9=18 links.
#  I left them off to make this shorter.

rm -rf ./r
ktrace -di -tcnsuw rsync -Haxi --delete /dev/ ./r/ > /dev/null

kdump -d | egrep 'NAMI|mknod|stat' | egrep -v 'RET' | egrep -B2 mknod
| egrep -v '^--|lstat' | egrep -A1 rfd1
   932 rsync    NAMI  "rfd1.1200"
   932 rsync    CALL  mknod(-1077944960,8608,20036)
   932 rsync    NAMI  "rfd1.1232"
   932 rsync    CALL  mknod(-1077944960,8608,20042)
   932 rsync    NAMI  "rfd1.1440"
   932 rsync    CALL  mknod(-1077944960,8608,20035)
   932 rsync    NAMI  "rfd1.1480"
   932 rsync    CALL  mknod(-1077944960,8608,20034)
   932 rsync    NAMI  "rfd1.1720"
   932 rsync    CALL  mknod(-1077944960,8608,20033)
   932 rsync    NAMI  "rfd1.360"
   932 rsync    CALL  mknod(-1077944960,8608,20040)
   932 rsync    NAMI  "rfd1.640"
   932 rsync    CALL  mknod(-1077944960,8608,20041)
   932 rsync    NAMI  "rfd1.720"
   932 rsync    CALL  mknod(-1077944960,8608,20039)
   932 rsync    NAMI  "rfd1.800"
   932 rsync    CALL  mknod(-1077944960,8608,20038)
   932 rsync    NAMI  "rfd1.820"
   932 rsync    CALL  mknod(-1077944960,8608,20037)
   932 rsync    NAMI  "rfd1h"
   932 rsync    CALL  mknod(-1077944960,8608,20032)

ls -liTso r | sort +8n | egrep rfd1
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1a
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1b
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1c
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1d
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1e
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1f
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1g
65062  0 crw-r-----  18 root  operator  -  78,  64 Oct 11 14:06:33 2007 rfd1h
65056  0 crw-r-----   2 root  operator  -  78,  65 Oct 11 14:06:34
2007 rfd1.1720
65055  0 crw-r-----   2 root  operator  -  78,  66 Oct 11 14:06:34
2007 rfd1.1480
65054  0 crw-r-----   2 root  operator  -  78,  67 Oct 11 14:06:34
2007 rfd1.1440
65052  0 crw-r-----   2 root  operator  -  78,  68 Oct 11 14:06:34
2007 rfd1.1200
65061  0 crw-r-----   2 root  operator  -  78,  69 Oct 11 14:06:34 2007 rfd1.820
65060  0 crw-r-----   2 root  operator  -  78,  70 Oct 11 14:06:34 2007 rfd1.800
65059  0 crw-r-----   2 root  operator  -  78,  71 Oct 11 14:06:34 2007 rfd1.720
65057  0 crw-r-----   2 root  operator  -  78,  72 Oct 11 14:06:34 2007 rfd1.360
65058  0 crw-r-----   2 root  operator  -  78,  73 Oct 11 14:06:34 2007 rfd1.640
65053  0 crw-r-----   2 root  operator  -  78,  74 Oct 11 14:06:34
2007 rfd1.1232


# Here's what /dev looks like...

find -sEx /dev \! \( -type c -o -type b -o -type l \) -ls
     3  112 drwxr-xr-x    3 root   wheel     56832 Jun 25 11:17 /dev
   118   92 -r-xr-xr-x    1 root   wheel     47085 Oct 11  2007 /dev/MAKEDEV
   213    8 -r-xr-xr-x    1 root   wheel      2064 May 25  2004
/dev/MAKEDEV.local
   148    4 dr-xr-xr-x    2 root   wheel      1024 Oct 11  2007 /dev/fd

find -sEx /dev -regex '^.*rfd1.*$' -ls
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1
   234    0 crw-r-----    2 root   operator 9,  68 Oct 11  2007 /dev/rfd1.1200
   240    0 crw-r-----    2 root   operator 9,  74 Oct 11  2007 /dev/rfd1.1232
   233    0 crw-r-----    2 root   operator 9,  67 Oct 11  2007 /dev/rfd1.1440
   232    0 crw-r-----    2 root   operator 9,  66 Oct 11  2007 /dev/rfd1.1480
   231    0 crw-r-----    2 root   operator 9,  65 Oct 11  2007 /dev/rfd1.1720
   238    0 crw-r-----    2 root   operator 9,  72 Oct 11  2007 /dev/rfd1.360
   239    0 crw-r-----    2 root   operator 9,  73 Oct 11  2007 /dev/rfd1.640
   237    0 crw-r-----    2 root   operator 9,  71 Oct 11  2007 /dev/rfd1.720
   236    0 crw-r-----    2 root   operator 9,  70 Oct 11  2007 /dev/rfd1.800
   235    0 crw-r-----    2 root   operator 9,  69 Oct 11  2007 /dev/rfd1.820
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1a
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1b
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1c
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1d
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1e
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1f
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1g
   230    0 crw-r-----   18 root   operator 9,  64 Oct 11  2007 /dev/rfd1h


More information about the rsync mailing list