Dick Snippe
2002-May-16 04:53 UTC
possible bug rsync-2.5.5 rsyncd.conf option "max connections"
Hello, I think i may have found a bug in the "max clients" option in rsyncd.conf [we use rsync-2.5.5; All platforms I tried (Irix-6.5.14 and various linux flavours) show the behaviour explained below] The manpage says: |max connections | The "max connections" option allows you to specify | the maximum number of simultaneous connections you | will allow to this module of your rsync server. Any ------------------^^^^^^^^^^^^^^ However, it appears that the check also counts connections to other modules. Simple example: /etc/syncd.conf |[foo] | path = / | max connections = 1 |[bar] | path = / | max connections = 2 Now try these two modules in parallel, where the first line is started before the second line: |shell1 $ rsync -an server::foo /tmp/foo |<starts spewing output> |shell2 $ rsync -an server::bar /tmp/bar |<starts spewing output> This works, as expected. Now for a new experiment: |shell2 $ rsync -an server::bar /tmp/bar |<starts spewing output> |shell1 $ rsync -an server::foo /tmp/foo |@ERROR: max connections (1) reached - try again later Imho module foo complains about the connection to module bar; Could this be a bug? After some browsing in the code I guess that the problem might be that only one lockfile /var/run/rsyncd.lock) is used for all modules. -- Dick Snippe Unix Beheerder/Specialist NOS Internet beheer: beheer@omroep.nl \ fight war Gateway C -- Kamer 110 -- 035 6774093 \ not wars Infosite http://intra.omroep.nl/info/ []()
tim.conway@philips.com
2002-May-16 12:04 UTC
possible bug rsync-2.5.5 rsyncd.conf option "max connections"
lock file The "lock file" option specifies the file to use to support the "max connections" option. The rsync server uses record locking on this file to ensure that the max connections limit is not exceeded. The default is /var/run/rsyncd.lock. SunOS 5.7 Last change: 12 Feb 1999 4 Headers, Environments, and Macros rsyncd.conf(5) If you don't specify a lock file for each module, they all will share one lockfile, and all the locks will count together. Tim Conway tim.conway@philips.com 303.682.4917 Philips Semiconductor - Longmont TC 1880 Industrial Circle, Suite D Longmont, CO 80501 Available via SameTime Connect within Philips, n9hmg on AIM perl -e 'print pack(nnnnnnnnnnnn, 19061,29556,8289,28271,29800,25970,8304,25970,27680,26721,25451,25970), ".\n" ' "There are some who call me.... Tim?" Dick Snippe <Dick.Snippe@tech.omroep.nl> Sent by: rsync-admin@lists.samba.org 05/16/2002 05:46 AM To: rsync@lists.samba.org cc: (bcc: Tim Conway/LMT/SC/PHILIPS) Subject: possible bug rsync-2.5.5 rsyncd.conf option "max connections" Classification: Hello, I think i may have found a bug in the "max clients" option in rsyncd.conf [we use rsync-2.5.5; All platforms I tried (Irix-6.5.14 and various linux flavours) show the behaviour explained below] The manpage says: |max connections | The "max connections" option allows you to specify | the maximum number of simultaneous connections you | will allow to this module of your rsync server. Any ------------------^^^^^^^^^^^^^^ However, it appears that the check also counts connections to other modules. Simple example: /etc/syncd.conf |[foo] | path = / | max connections = 1 |[bar] | path = / | max connections = 2 Now try these two modules in parallel, where the first line is started before the second line: |shell1 $ rsync -an server::foo /tmp/foo |<starts spewing output> |shell2 $ rsync -an server::bar /tmp/bar |<starts spewing output> This works, as expected. Now for a new experiment: |shell2 $ rsync -an server::bar /tmp/bar |<starts spewing output> |shell1 $ rsync -an server::foo /tmp/foo |@ERROR: max connections (1) reached - try again later Imho module foo complains about the connection to module bar; Could this be a bug? After some browsing in the code I guess that the problem might be that only one lockfile /var/run/rsyncd.lock) is used for all modules. -- Dick Snippe Unix Beheerder/Specialist NOS Internet beheer: beheer@omroep.nl \ fight war Gateway C -- Kamer 110 -- 035 6774093 \ not wars Infosite http://intra.omroep.nl/info/ []() -- To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html
Dave Dykstra
2002-May-16 14:09 UTC
possible bug rsync-2.5.5 rsyncd.conf option "max connections"
Documentation bug. I changed it to say: max connections The "max connections" option allows you to specify the maximum number of simultaneous connections you will allow. Any clients connecting when the maximum has been reached will receive a message telling them to try later. The default is 0 which means no limit. See also the "lock file" option. lock file The "lock file" option specifies the file to use to support the "max connections" option. The rsync server uses record locking on this file to ensure that the max connections limit is not exceeded for the modules shar- ing the lock file. The default is /var/run/rsyncd.lock. - Dave Dykstra On Thu, May 16, 2002 at 01:46:29PM +0200, Dick Snippe wrote:> Hello, > > I think i may have found a bug in the "max clients" option in rsyncd.conf > [we use rsync-2.5.5; All platforms I tried (Irix-6.5.14 and various linux > flavours) show the behaviour explained below] > > The manpage says: > > |max connections > | The "max connections" option allows you to specify > | the maximum number of simultaneous connections you > | will allow to this module of your rsync server. Any > ------------------^^^^^^^^^^^^^^ > > However, it appears that the check also counts connections to other modules. > > Simple example: > > /etc/syncd.conf > |[foo] > | path = / > | max connections = 1 > |[bar] > | path = / > | max connections = 2 > > Now try these two modules in parallel, where the first line is > started before the second line: > |shell1 $ rsync -an server::foo /tmp/foo > |<starts spewing output> > |shell2 $ rsync -an server::bar /tmp/bar > |<starts spewing output> > > This works, as expected. > Now for a new experiment: > > |shell2 $ rsync -an server::bar /tmp/bar > |<starts spewing output> > |shell1 $ rsync -an server::foo /tmp/foo > |@ERROR: max connections (1) reached - try again later > > Imho module foo complains about the connection to module bar; > Could this be a bug? > > After some browsing in the code I guess that the problem might be that > only one lockfile /var/run/rsyncd.lock) is used for all modules. > > -- > Dick Snippe Unix Beheerder/Specialist > NOS Internet beheer: beheer@omroep.nl \ fight war > Gateway C -- Kamer 110 -- 035 6774093 \ not wars > Infosite http://intra.omroep.nl/info/ []() > > -- > To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync > Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html