Bug-report:rsync may hung if time jumps backwards

yhu2 yadi.hu at windriver.com
Wed Nov 19 18:57:44 MST 2014


Thanks your reply, after test again, both Fixes bug 9789 and rsync 3.1.0 
doesn't resolve this bug.

when the test script was called as background, I still saw rsync hanged 
since tdiff variable is used.

could you please try it again?

while [ 1 ]
do
date -s "2012-10-30 06:28:04"
date -s "2014-11-04 17:13:04"
done







On 11/19/2014 10:10 PM, devzero at web.de wrote:
> Hi,
>
> it seems that one already has been fixed in 3.1.0, see
>
> https://bugzilla.samba.org/show_bug.cgi?id=9789
>
> and
>
> https://git.samba.org/?p=rsync.git;a=commit;h=2dc2070992c00ea6625031813f2b6c886ddc3ade
>
> you are still using 2.6.9 ? that`s rather old (~ 8yrs?) and may have bugs and security issues already being fixed.
>
> regards
> roland
>
>
>> List:       rsync
>> Subject:    Bug-report:rsync may hung if time jumps backwards
>> From:       yhu2 <yadi.hu () windriver ! com>
>> Date:       2014-11-17 6:44:25
>> Message-ID: 54699949.1020503 () windriver ! com
>> [Download message RAW]
>>
>> Hello eveyone!
>>
>> According to below reproduce steps,you could observe a rsync hang:
>>
>> 1:configure and startup rsync service and
>>
>> mkdir /root/a
>> mkdir /root/b
>> dd if=/dev/zero of=/root/b/1 bs=1M count=1
>> dd if=/dev/zero of=/root/b/2 bs=1M count=1
>> dd if=/dev/zero of=/root/b/3 bs=1M count=1
>> dd if=/dev/zero of=/root/b/4 bs=1M count=1
>> dd if=/dev/zero of=/root/b/5 bs=1M count=1
>>
>>
>> 2: start testcase
>>
>> ./change-time-loop.sh > /dev/null &
>> ./rsync-loop.sh
>>
>>
>>
>> After applying this patch ,this issue went away.
>>
>>
>> --- rsync-2.6.9/BUILD/rsync-2.6.9/util.c    2014-11-11
>> 13:02:11.495609639 +0800
>> +++ rsync-2.6.9/BUILD/rsync-2.6.9/util.c    2014-11-11
>> 13:01:37.606569696 +0800
>> @@ -1174,8 +1174,11 @@
>>     * Always returns TRUE.  (In the future it might return FALSE if
>>     * interrupted.)
>>     **/
>> +
>>    int msleep(int t)
>>    {
>> +
>> +#if 0
>>        int tdiff = 0;
>>        struct timeval tval, t1, t2;
>>
>> @@ -1192,7 +1195,8 @@
>>            tdiff = (t2.tv_sec - t1.tv_sec)*1000 +
>>                (t2.tv_usec - t1.tv_usec)/1000;
>>        }
>> -
>> +#endif
>> +  usleep(t*1000);
>>        return True;
>>    }
>>
>>
>> Is it a correct fix? any comments would be appreciated!!!
>>
>>
>>
>> ["change-time-loop.sh" (application/x-sh)]
>>
>> #!/bin/bash
>>
>> while [ 1 ]
>> do
>> date -s "2012-10-30 06:28:04"
>> #sleep 3
>> date -s "2014-11-04 17:13:04"
>> #sleep 3
>> done
>>
>> ["rsync-loop.sh" (application/x-sh)]
>>
>> #!/bin/bash
>>
>> while [ 1 ]
>> do
>> rsync -avz --password-file=/root/my.secrets /root/b root at 127.0.0.1::logs
>> rm /root/a/* -rf
>> done
>>
>>
>> -- 
>> Please use reply-all for most replies to avoid omitting the mailing list.
>> To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
>> Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html
>>



More information about the rsync mailing list