Bug-report:rsync may hung if time jumps backwards

devzero at web.de devzero at web.de
Wed Nov 19 07:10:47 MST 2014


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