From jatembhekar at yahoo.co.in Thu Jul 2 07:58:54 2009 From: jatembhekar at yahoo.co.in (jayesh tembhekar) Date: Thu, 2 Jul 2009 17:28:54 +0530 (IST) Subject: [Spread-users] SP_error: (-2) Could not connect. Is Spread running? Message-ID: <848334.99882.qm@web8801.mail.in.yahoo.com> Hi All! I am unable to check the status of spread . after executing a command #./spread -c /usr/local/etc/spread.conf -n host2 -l y shell displays one certificate kind of write up and only line "Conf_load_conf_file: using file: /usr/local/etc/spread.conf" and blank screen with no promt line it seems spread is working but after executing a command #spuser It throws an error "SP_error: (-2) Could not connect. Is Spread running?" Entries in log file are: [Thu 02 Jul 2009 17:11:20] (889838 us): disabling Dangerous Monitor Commands! [Thu 02 Jul 2009 17:11:20] (889897 us): Setting SO_REUSEADDR to auto [Thu 02 Jul 2009 17:11:20] (889945 us): Set runtime directory to '/var/run/spread' [Thu 02 Jul 2009 17:11:20] (889986 us): Set user name to 'jayesh' [Thu 02 Jul 2009 17:11:20] (890024 us): Set group name to 'seng' Membership id is ( -1408233363, 1246533088) [Thu 02 Jul 2009 17:11:27] (892830 us): -------------------- [Thu 02 Jul 2009 17:11:27] (892867 us): Configuration at host2 is: [Thu 02 Jul 2009 17:11:27] (892904 us): Num Segments 1 [Thu 02 Jul 2009 17:11:27] (892941 us): 1 xxx.16.16.255 3334 [Thu 02 Jul 2009 17:11:27] (892981 us): host2 xxx.16.16.109 [Thu 02 Jul 2009 17:11:27] (893017 us): ==================== If things are fine what will be the next step and how to connect other system say "host1" to "host2". If not what should i do to start the spread. my config file : *** DebugFlags = { PRINT EXIT } EventPriority = INFO EventLogFile = testlog.out EventTimeStamp = "[%a %d %b %Y %H:%M:%S]" EventPreciseTimeStamp DebugInitialSequence DangerousMonitor = false SocketPortReuse = AUTO MaxSessionMessages = 5000 RuntimeDir = /var/run/spread DaemonUser = jayesh DaemonGroup = seng RequiredAuthMethods = " " AllowedAuthMethods = "NULL" AccessControlPolicy = "PERMIT" Spread_Segment xxx.16.16.255:3334 { host1 xxx.16.16.115 host2 xxx.16.16.109 } ----- Thanks and Regards : JAYESH See the Web's breaking stories, chosen by people like you. Check out Yahoo! Buzz. http://in.buzz.yahoo.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090702/8347e83f/attachment.html From lcuff at valueclick.com Thu Jul 2 13:56:31 2009 From: lcuff at valueclick.com (Leonard Cuff) Date: Thu, 02 Jul 2009 10:56:31 -0700 Subject: [Spread-users] Does spread scale to 200 nodes for very low volume usage? Message-ID: I?m evaluating various technologies for reliable peer to peer communication. My scenario is that I have about 200 nodes, but the data rate is very small: 5 or 10 Kbytes per hour. The nodes are on a gigabit switched local net. The user?s manual for spread mentions the number 30 for a max number of nodes. Is this correct/current? Does it make a difference that my data rate is so small? If spread isn?t appropriate, do people have advice on what other technologies are appropriate. (Homogenous linux environment). Thanks in advance for any and all help. Leonard -- Leonard Cuff lcuff at valueclick.com ?This email and any files included with it may contain privileged, proprietary and/or confidential information that is for the sole use of the intended recipient(s). Any disclosure, copying, distribution, posting, or use of the information contained in or attached to this email is prohibited unless permitted by the sender. If you have received this email in error, please immediately notify the sender via return e-mail, telephone, or fax and destroy this original transmission and its included files without reading or saving it in any manner. Thank you.? This email and any files included with it may contain privileged, proprietary and/or confidential information that is for the sole use of the intended recipient(s). Any disclosure, copying, distribution, posting, or use of the information contained in or attached to this email is prohibited unless permitted by the sender. If you have received this email in error, please immediately notify the sender via return email, telephone, or fax and destroy this original transmission and its included files without reading or saving it in any manner. Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090702/11cf5334/attachment.html From deanb at gbtn.net Thu Jul 2 14:36:18 2009 From: deanb at gbtn.net (Dean Bennett) Date: Thu, 02 Jul 2009 12:36:18 -0600 Subject: [Spread-users] SP_error: (-2) Could not connect. Is Spread running? In-Reply-To: <848334.99882.qm@web8801.mail.in.yahoo.com> References: <848334.99882.qm@web8801.mail.in.yahoo.com> Message-ID: <4A4CFE22.308@gbtn.net> jayesh tembhekar wrote: > Hi All! > I am unable to check the status of spread . > after executing a command > > #spuser > It throws an error > "SP_error: (-2) Could not connect. Is Spread running?" > > Entries in log file are: > > [Thu 02 Jul 2009 17:11:27] (892867 us): Configuration at host2 is: > [Thu 02 Jul 2009 17:11:27] (892904 us): Num Segments 1 > [Thu 02 Jul 2009 17:11:27] (892941 us): 1 > xxx.16.16.255 3334 > [Thu 02 Jul 2009 17:11:27] (892981 us): > host2 xxx.16.16.109 > [Thu 02 Jul 2009 17:11:27] (893017 us): ==================== > You changed your port number from the default 4803, so you have to tell spuser what it is. Try 'spuser -s 3334 at localhost' Dean From jr at vertica.com Thu Jul 2 16:34:07 2009 From: jr at vertica.com (John Robinson) Date: Thu, 02 Jul 2009 16:34:07 -0400 Subject: [Spread-users] Does spread scale to 200 nodes for very low volume usage? In-Reply-To: References: Message-ID: <4A4D19BF.6020605@vertica.com> 30 daemons. They will support thousands of clients. Especially at that data rate. /jr --- Leonard Cuff wrote: > I?m evaluating various technologies for reliable peer to peer > communication. My scenario is that I have about 200 nodes, but the data > rate is very small: 5 or 10 Kbytes per hour. > The nodes are on a gigabit switched local net. The user?s manual for > spread mentions the number 30 for a max number of nodes. Is this > correct/current? Does it make a difference that my data rate is so small? > > If spread isn?t appropriate, do people have advice on what other > technologies are appropriate. (Homogenous linux environment). > > Thanks in advance for any and all help. > > Leonard > > -- > > Leonard Cuff > lcuff at valueclick.com > > ?This email and any files included with it may contain privileged, > proprietary and/or confidential information that is for the sole use of > the intended recipient(s). Any disclosure, copying, distribution, > posting, or use of the information contained in or attached to this > email is prohibited unless permitted by the sender. If you have > received this email in error, please immediately notify the sender via > return e-mail, telephone, or fax and destroy this original transmission > and its included files without reading or saving it in any manner. Thank > you.? > > > > > This email and any files included with it may contain privileged, > proprietary and/or confidential information that is for the sole use > of the intended recipient(s). Any disclosure, copying, distribution, > posting, or use of the information contained in or attached to this > email is prohibited unless permitted by the sender. If you have > received this email in error, please immediately notify the sender > via return email, telephone, or fax and destroy this original transmission > and its included files without reading or saving it in any manner. > Thank you. > > > ------------------------------------------------------------------------ > > _______________________________________________ > Spread-users mailing list > Spread-users at lists.spread.org > http://lists.spread.org/mailman/listinfo/spread-users From matthew.garman at gmail.com Thu Jul 2 18:18:14 2009 From: matthew.garman at gmail.com (Matt Garman) Date: Thu, 2 Jul 2009 17:18:14 -0500 Subject: [Spread-users] detecting network outages Message-ID: <20090702221813.GA14352@sewage> Does anyone have any techniques or ideas for consistently detecting a network outage, and then automatically re-establishing spread communications once connectivity is restored? Say I have two hosts, S and R. I have a spread daemon running only on host R. Host S has a program that is sending messages to R via the daemon running on R. Host R has a program that is listing to messages via its local spread daemon. ASCII graphic of the scenario for those of you using fixed width fonts: +------------------+ +----------------+ | Host R |-------network-------| Host S | +------------------+ +----------------+ | receiver program | | sender program | +------------------+ +----------------+ | spread daemon | +------------------+ How can the programs on both R and S reliably detect when there is a network failure between R and S? In testing this scenario, I cannot figure out how I can get spread to tell me if the network is down. Thoughts? Thank you, Matt From mpeters at plusthree.com Thu Jul 2 18:21:23 2009 From: mpeters at plusthree.com (Michael Peters) Date: Thu, 02 Jul 2009 18:21:23 -0400 Subject: [Spread-users] detecting network outages In-Reply-To: <20090702221813.GA14352@sewage> References: <20090702221813.GA14352@sewage> Message-ID: <4A4D32E3.9060306@plusthree.com> Matt Garman wrote: > In testing this scenario, I cannot figure out how I can get spread > to tell me if the network is down. I don't know if you can get spread to tell you, but in this scenario I've used a 3rd server that periodically sends a "heartbeat" message to the same spread group and a listener which then updates the timestamp on a file when the heartbeat is received. And then we use Nagios to monitor the age of that file. Not perfect, but if there are network problems we know about them soon and only loose an handful of messages. -- Michael Peters Plus Three, LP From leandro at enovar.com.br Tue Jul 7 21:44:36 2009 From: leandro at enovar.com.br (Leandro Sales Holanda Pinto) Date: Tue, 7 Jul 2009 22:44:36 -0300 Subject: [Spread-users] fragmentation/package of big/small messages Message-ID: In the end of the section 3.1 of the article "*A* *Low* *Latency,* *Loss* * Tolerant* *Architecture* *and* *Protocol* *for* *Wide* *Area* *Group* * Communication*?"(http://www.cnds.jhu.edu/pub/papers/hop_ftcs2000.pdf) from Spread is said that there are some global optimizations when sending large or small messages, like fragmentation and packaging of messages. Does anybody know if there is a way to turn off or, at least, configure this feature? Thanks, Leandro -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090707/3ff02649/attachment.html From fmerges at fstarter.org Wed Jul 8 06:30:49 2009 From: fmerges at fstarter.org (Florian Merges) Date: Wed, 8 Jul 2009 11:30:49 +0100 Subject: [Spread-users] Does spread scale to 200 nodes for very low volume usage? In-Reply-To: References: Message-ID: <38fadaad0907080330i10d71ecega888ad6f74ea1da0@mail.gmail.com> Hi, I think the 30 is for the number of servers per segment, but not about nodes/clients that connects to each of the servers... correct me if I'm wrong. Kind regards, 2009/7/2 Leonard Cuff > I?m evaluating various technologies for reliable peer to peer > communication. My scenario is that I have about 200 nodes, but the data rate > is very small: 5 or 10 Kbytes per hour. > The nodes are on a gigabit switched local net. The user?s manual for > spread mentions the number 30 for a max number of nodes. Is this > correct/current? Does it make a difference that my data rate is so small? > > If spread isn?t appropriate, do people have advice on what other > technologies are appropriate. (Homogenous linux environment). > > Thanks in advance for any and all help. > > Leonard > > -- > > Leonard Cuff > lcuff at valueclick.com > > ?This email and any files included with it may contain privileged, > proprietary and/or confidential information that is for the sole use of the > intended recipient(s). Any disclosure, copying, distribution, posting, or > use of the information contained in or attached to this email is prohibited > unless permitted by the sender. If you have received this email in error, > please immediately notify the sender via return e-mail, telephone, or fax > and destroy this original transmission and its included files without > reading or saving it in any manner. Thank you.? > > > This email and any files included with it may contain privileged, > proprietary and/or confidential information that is for the sole use > of the intended recipient(s). Any disclosure, copying, distribution, > posting, or use of the information contained in or attached to this > email is prohibited unless permitted by the sender. If you have > received this email in error, please immediately notify the sender > via return email, telephone, or fax and destroy this original transmission > and its included files without reading or saving it in any manner. > Thank you. > > > _______________________________________________ > Spread-users mailing list > Spread-users at lists.spread.org > http://lists.spread.org/mailman/listinfo/spread-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090708/67f7cad5/attachment.html From fmerges at fstarter.org Wed Jul 8 06:32:01 2009 From: fmerges at fstarter.org (Florian Merges) Date: Wed, 8 Jul 2009 11:32:01 +0100 Subject: [Spread-users] Does spread scale to 200 nodes for very low volume usage? In-Reply-To: <38fadaad0907080330i10d71ecega888ad6f74ea1da0@mail.gmail.com> References: <38fadaad0907080330i10d71ecega888ad6f74ea1da0@mail.gmail.com> Message-ID: <38fadaad0907080332o5e085b70kb7ddee5bed4bb1e4@mail.gmail.com> Erm... sorry just came back from holidays and didn't saw that John already replied to it... 2009/7/8 Florian Merges > Hi, > > I think the 30 is for the number of servers per segment, but not about > nodes/clients that connects to each of the servers... correct me if I'm > wrong. > > Kind regards, > > > 2009/7/2 Leonard Cuff > >> I?m evaluating various technologies for reliable peer to peer >> communication. My scenario is that I have about 200 nodes, but the data rate >> is very small: 5 or 10 Kbytes per hour. >> The nodes are on a gigabit switched local net. The user?s manual for >> spread mentions the number 30 for a max number of nodes. Is this >> correct/current? Does it make a difference that my data rate is so small? >> >> If spread isn?t appropriate, do people have advice on what other >> technologies are appropriate. (Homogenous linux environment). >> >> Thanks in advance for any and all help. >> >> Leonard >> >> -- >> >> Leonard Cuff >> lcuff at valueclick.com >> >> ?This email and any files included with it may contain privileged, >> proprietary and/or confidential information that is for the sole use of the >> intended recipient(s). Any disclosure, copying, distribution, posting, or >> use of the information contained in or attached to this email is prohibited >> unless permitted by the sender. If you have received this email in error, >> please immediately notify the sender via return e-mail, telephone, or fax >> and destroy this original transmission and its included files without >> reading or saving it in any manner. Thank you.? >> >> This email and any files included with it may contain privileged, >> proprietary and/or confidential information that is for the sole use >> of the intended recipient(s). Any disclosure, copying, distribution, >> posting, or use of the information contained in or attached to this >> email is prohibited unless permitted by the sender. If you have >> received this email in error, please immediately notify the sender >> via return email, telephone, or fax and destroy this original transmission >> and its included files without reading or saving it in any manner. >> Thank you. >> >> >> _______________________________________________ >> Spread-users mailing list >> Spread-users at lists.spread.org >> http://lists.spread.org/mailman/listinfo/spread-users >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090708/f36e3ba8/attachment.html From matthew.garman at gmail.com Wed Jul 8 12:10:24 2009 From: matthew.garman at gmail.com (Matt Garman) Date: Wed, 8 Jul 2009 11:10:24 -0500 Subject: [Spread-users] detecting network outages In-Reply-To: <200907030026.n630QYd3007664@aragorn.savarese.org> References: <20090702221813.GA14352@sewage> <200907030026.n630QYd3007664@aragorn.savarese.org> Message-ID: <20090708161024.GA18687@sewage> On Thu, Jul 02, 2009 at 08:26:34PM -0400, Daniel F. Savarese wrote: > In message <20090702221813.GA14352 at sewage>, Matt Garman writes: > >How can the programs on both R and S reliably detect when there > >is a network failure between R and S? > > Assuming I understand your question correctly, that's what group > membership messages are for. You have to enable the receipt of > group membership messages in your application. The Spread daemon > will send your application a group membership message with the new > group view after a network partition event (either disconnection > or reconnection). I have enabled the receipt of group membership messages, but I can't see how that will help. Let me change the scenario from my original one: SystemA: has a spread client program, but no spread daemon. It connects to a spread daemon on SystemB (via SP_connect(), with the receipt of group membership messages enabled). It does an SP_join(), then calls SP_receive() in a loop (i.e. receive data, process, receive data, process, etc). SystemB: has the spread daemon, and as well as a client program that is sending (SP_multicast()) in a loop. ASCII graphic: +------------------+ +------------------+ | SystemB |-------network-------| SystemA | +------------------+ +------------------+ | sender program | | receiver program | +------------------+ +------------------+ | spread daemon | +------------------+ I did the following test: 1. Start both programs, everything is working as expected. 2. Take down the network interface on SystemB - The sending program continues to send, as though nothing has changed. No group membership messages are received. - The receiving program is no longer receiving data, and is just "stuck" in SP_receive(). No group membership messages are received (which makes sense---the network connection to the spread daemon has been severed). 3. I leave the network interface down for 31 minutes, then bring it back up. - Both sender and receiver programs are unchanged from before: sender still sending, receiver still "stuck" in SP_receive(), and no group membership messages received on either end. 4. I continue to observe both programs for another 10 minutes to see if there is any change---there isn't. So that's the crux of the problem I'm trying to solve now: if my client program connects to a remote spread daemon, then calls SP_receive(), and the network connection goes down, is there any way for that client program to recognize what has happened? Thanks again, Matt From jschultz at spreadconcepts.com Wed Jul 8 14:23:26 2009 From: jschultz at spreadconcepts.com (John Schultz) Date: Wed, 8 Jul 2009 14:23:26 -0400 Subject: [Spread-users] detecting network outages In-Reply-To: <200907081757.n68HvMnT003875@aragorn.savarese.org> References: Your message of "Wed, 08 Jul 2009 11:10:24 CDT." <20090708161024.GA18687@sewage> <200907081757.n68HvMnT003875@aragorn.savarese.org> Message-ID: <96366251.20090708142326@spreadconcepts.com> The Spread daemon definitely should have recognized the remote client's connection as dead because it should have been trying to send the sender's traffic to it continuously. The remote client's tcp socket should have errored out with some kind of OS/network error. Failing that, even if it got an EAGAIN kind of error (i.e. - tcp/ip buffers full), then after 1000 buffered msgs the daemon should have kicked the client for not reading its messages. So, it sounds to me like your OS is doing something weird (i.e. - something it shouldn't be doing) with the tcp/ip sockets when you disable the network interface. Normally, any connected, active channels across that interface should break quite quickly with an OS/Network error. TCP/IP does leave some tolerance that if no traffic is flowing that the channel can remain valid for significant periods (e.g. - minutes) of partition before it will timeout with an error. However, that shouldn't be the case here as your sender is sending traffic that should be trying to go down the receiver's channel continuously. Also, the fact that the connection doesn't resume normally after you re-enable the interface indicates that this isn't TCP/IP handling a normal partition of some sort. From the receiver's side an easier way to achieve the same effect as SO_KEEPALIVE would be to have your clients send a hello msg periodically (e.g. - every few seconds) that will force the tcp/ip channel to figure out if it is alive or not. In the scenario you laid out above, the remote client should quickly get a failure on the socket. Here's something to try -- rather than disabling the interface through the OS (e.g. - ifconfig), instead simply pull the network cable out of the NIC. So long as your OS doesn't do something dumb like auto-disable the interface, this should give you the behavior that you expect: the server should disconnect the remote client, the sender will see the remote client leave the group through a membership message of type disconnect, and the receiver may or may not bomb out quickly with an OS/network error. If you have your remote client send hello's then it should quickly bomb out with an OS/network error. Cheers! John --- John Lane Schultz Spread Concepts LLC Phn: 443 838 2200 Fax: 301 560 8875 Wednesday, July 8, 2009, 1:57:22 PM, you wrote: > In message <20090708161024.GA18687 at sewage>, Matt Garman writes: >>So that's the crux of the problem I'm trying to solve now: if my >>client program connects to a remote spread daemon, then calls >>SP_receive(), and the network connection goes down, is there any way >>for that client program to recognize what has happened? > I apologize. It didn't register with me the first time that one > program was connecting to the Spread daemon over the network > even though that's what your diagram showed. I'm so used to always > having applications connect to a local daemon that I forget about the > other use case. > If you're going to connect to a remote daemon, the only way I know of > for the client to detect a loss of connection to the Spread daemon > is via the usual TCP/IP client-server programming techniques. This > would involve setting the SO_KEEPALIVE socket option and then using > a platform-specific method to reduce the idle time before keepalive > probes are sent (default is usually 2 hours, which appears to be too > much for your application). On Linux, you can use the TCP_KEEPIDLE > socket option for IPPROTO_TCP sockets. On Solaris, you can use the > TCP_KEEPALIVE option, which I thought had been included in POSIX.1g, > but I can find no reference to it in the current standard. > If your application can support it, it would be simpler to deploy a > Spread daemon on each communicating node. That way, you can let > Spread detect network partitions, at which point a group membership > message reporting the new view will be delivered to all group members. > daniel > _______________________________________________ > Spread-users mailing list > Spread-users at lists.spread.org > http://lists.spread.org/mailman/listinfo/spread-users From jschultz at spreadconcepts.com Wed Jul 8 15:50:30 2009 From: jschultz at spreadconcepts.com (John Lane Schultz) Date: Wed, 8 Jul 2009 15:50:30 -0400 Subject: [Spread-users] detecting network outages In-Reply-To: <200907081900.n68J0s3B004161@aragorn.savarese.org> References: Your message of "Wed, 08 Jul 2009 14:23:26 EDT."<96366251.20090708142326@spreadconcepts.com> <200907081900.n68J0s3B004161@aragorn.savarese.org> Message-ID: <60003881B5B845C7A0E938FCB86CFD1F@schwartzy> Good point! Another way he could solve it by changing the rules is to spawn a special thread that goes and sends pings on all of the mailboxes about which he is concerned periodically. Cheers! --- John Lane Schultz Spread Concepts LLC Phn: 443 838 2200 -----Original Message----- From: spread-users-bounces at lists.spread.org [mailto:spread-users-bounces at lists.spread.org] On Behalf Of Daniel F. Savarese Sent: Wednesday, July 08, 2009 3:01 PM To: Spread Users Subject: Re: [Spread-users] detecting network outages In message <96366251.20090708142326 at spreadconcepts.com>, John Schultz writes: >>From the receiver's side an easier way to achieve the same effect as SO_KEEPA >LIVE would be to have your clients send a hello msg periodically (e.g. - every > few seconds) that will force the tcp/ip channel to figure out if it is alive >or not. In the scenario you laid out above, the remote client should quickly g >et a failure on the socket. John, you changed the rules of the game :) Matt asked how he could detect a loss of connection while stuck in a blocking SP_receive() (which ultimately boils down to being stuck in a blocking recv()) at a remote client (or at least that's how I understood it). Assuming a normal TCP connection, he'll stay stuck forever (or two hours with a default SO_KEEPALIVE) if network connectivity between the two nodes is lost. If he were using event-driven I/O, using select/poll/epoll/etc. before calling SP_receive(), then he could do as you suggest and periodically send out his own no-op/hello messages after a suitable timeout. daniel _______________________________________________ Spread-users mailing list Spread-users at lists.spread.org http://lists.spread.org/mailman/listinfo/spread-users From henriquetft at gmail.com Fri Jul 10 23:11:29 2009 From: henriquetft at gmail.com (=?ISO-8859-1?Q?Henrique_Te=F3filo?=) Date: Sat, 11 Jul 2009 00:11:29 -0300 Subject: [Spread-users] Performance related question Message-ID: <92ff9f9a0907102011q58f1da6ah8c0775d5a8702f42@mail.gmail.com> Hi folks, I would like to ask some questions about Spread performance, because I want to be sure that Spread toolkit is running at its best. I have two Java applications which were implemented using Spread and JGroups toolkit. (the spread implementation does not use the Java API but a implementation that makes native calls through JNI) In one application I have from 2 to 6 members in a group, where all of them multicasts totally ordered messages(agreed service). Each one of the proccesses sends messages one after another in a fashion like: for (i = 0; i < 1000; i++) { multicast }. With small messages (up to 100 bytes) I got very good performance, which easily beats the application implemented with JGroups toolkit. However, with 1000 bytes messages the performance falls down quickly, and I got spread slower than JGroups with 10000 bytes messages. Is there some optimization to do in this case? Something to do with fragmentation of messages?? The other application is pretty much like the first one, but it is a simulation of remote procedure calls, which multicasts one message and waits for the response before going on. In this case, I have worst performance even with small messages. Is there some optimization to do in this case?? The spread toolkit delays the sending of a small message to do something like TCP nagle's algorithm? Thanks in advance, Henrique Te?filo -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090711/6c423656/attachment.html From jatembhekar at yahoo.co.in Mon Jul 13 05:34:39 2009 From: jatembhekar at yahoo.co.in (jayesh tembhekar) Date: Mon, 13 Jul 2009 15:04:39 +0530 (IST) Subject: [Spread-users] How to do replication Message-ID: <977430.61168.qm@web8803.mail.in.yahoo.com> Hi! All I have installed Spread and it's working fine..............but I'm not getting how to do simple postgresql Database replication. Can any one there help out ? Thanks and Regards : JAYESH See the Web's breaking stories, chosen by people like you. Check out Yahoo! Buzz. http://in.buzz.yahoo.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090713/f3731f33/attachment.html From cbbrowne at ca.afilias.info Mon Jul 13 11:23:45 2009 From: cbbrowne at ca.afilias.info (Christopher Browne) Date: Mon, 13 Jul 2009 11:23:45 -0400 Subject: [Spread-users] How to do replication In-Reply-To: <977430.61168.qm@web8803.mail.in.yahoo.com> (jayesh tembhekar's message of "Mon, 13 Jul 2009 15:04:39 +0530 (IST)") References: <977430.61168.qm@web8803.mail.in.yahoo.com> Message-ID: <87d484zjwe.fsf@dba2.int.libertyrms.com> jayesh tembhekar writes: > Hi! All > I have installed Spread and it's working fine..............but I'm not getting how to do simple postgresql Database replication. > Can any one there help out ?? I don't think this is something where it is remotely plausible to call a result "simple database replication." The one system I am aware of which uses Spread to do replication with PostgreSQL is the Postgres-R project: http://www.postgres-r.org/ Using the term "simple" to describe this seems truly inappropriate. -- output = reverse("ofni.sailifa.ac" "@" "enworbbc") Christopher Browne (416) 673-4124 (land) "Bother," said Pooh, "Eeyore, ready two photon torpedoes and lock phasers on the Heffalump, Piglet, meet me in transporter room three" From fmerges at fstarter.org Mon Jul 13 11:56:17 2009 From: fmerges at fstarter.org (Florian Merges) Date: Mon, 13 Jul 2009 16:56:17 +0100 Subject: [Spread-users] How to do replication In-Reply-To: <87d484zjwe.fsf@dba2.int.libertyrms.com> References: <977430.61168.qm@web8803.mail.in.yahoo.com> <87d484zjwe.fsf@dba2.int.libertyrms.com> Message-ID: <38fadaad0907130856v39bc47adqf4f8566b079fbb10@mail.gmail.com> Hi, Just another solution, not sure what do they use: http://www.cybertec.at/english/pr_cybercluster_e.html# Kind regards, Florian 2009/7/13 Christopher Browne > jayesh tembhekar writes: > > Hi! All > > I have installed Spread and it's working fine..............but I'm not > getting how to do simple postgresql Database replication. > > Can any one there help out ? > > I don't think this is something where it is remotely plausible to call > a result "simple database replication." > > The one system I am aware of which uses Spread to do replication with > PostgreSQL is the Postgres-R project: > http://www.postgres-r.org/ > > Using the term "simple" to describe this seems truly inappropriate. > -- > output = reverse("ofni.sailifa.ac" "@" "enworbbc") > > Christopher Browne > (416) 673-4124 (land) > "Bother," said Pooh, "Eeyore, ready two photon torpedoes and lock > phasers on the Heffalump, Piglet, meet me in transporter room three" > > _______________________________________________ > Spread-users mailing list > Spread-users at lists.spread.org > http://lists.spread.org/mailman/listinfo/spread-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090713/68b027cb/attachment.html From andres at gfz-potsdam.de Fri Jul 17 10:09:06 2009 From: andres at gfz-potsdam.de (Andres Heinloo) Date: Fri, 17 Jul 2009 16:09:06 +0200 (CEST) Subject: [Spread-users] Problem with "name not unique" on Solaris 10 Message-ID: Hi, we have the following problem on Solaris 10. First connection works; after that it is not possible to connect for a few minutes. The problem does *not* occur on Linux. Does anybody have an idea? ./spuser -s 4803 at geofon-proc -u tttt Spread library version is 4.0.0 User: connected to 4803 at geofon-proc with private group #tttt#localhost ========== User Menu: ---------- j -- join a group l -- leave a group s -- send a message b -- send a burst of messages r -- receive a message (stuck) p -- poll for a message e -- enable asynchonous read (default) d -- disable asynchronous read q -- quit User>j PICK User>l PICK User>q Bye. ./spuser -s 4803 at geofon-proc -u tttt Spread library version is 4.0.0 SP_error: (-6) Connection rejected, name not unique Bye. -------------------------- Thanks, Andres. From andres at gfz-potsdam.de Tue Jul 21 11:13:02 2009 From: andres at gfz-potsdam.de (Andres Heinloo) Date: Tue, 21 Jul 2009 17:13:02 +0200 (CEST) Subject: [Spread-users] Problem with "name not unique" on Solaris 10 In-Reply-To: <200907171513.n6HFDeBB007895@aragorn.savarese.org> References: <200907171513.n6HFDeBB007895@aragorn.savarese.org> Message-ID: On Fri, 17 Jul 2009, Daniel F. Savarese wrote: > > In message , Andres Heinl > oo writes: > >User>j PICK > > > >User>l PICK > > > >User>q > > If that's a complete log, then you're missing the receipt of two > group membership messages. Something like the following after the > join: > > ============================ > Received REGULAR membership for group PICK with 1 members, where I am member 0: > #tttt#localhost > grp id is -1062731517 1247454353 1 > Due to the JOIN of #tttt#localhost > > And something like the following after the leave: > > ============================ > received membership message that left group PICK > > That may be why the connection name isn't being freed up immediately > (there are pending messages, so the Spread daemon may wait before > killing the connection's queue of messages). Try waiting for the > membership messages to arrive before issuing the quit command and see > how long that takes. That may help the Spread team tell you what's > going on. I wasn't able to reproduce your problem, but I'm running > a patched version of Spread with some custom modifications. Indeed the membership messages are missing. It takes several minutes until membership message arrives. However, once the message arrives, Spread starts to work normally. I think it would not make sense to keep message queue after TCP disconnect, specially if the client cannot reconnect anyway (name not unique). Looks like the Spread daemon is somewhere blocked at start, however, it still does accept and handle TCP connections. As I said, the problem does *not* occur on Linux. On Solaris 10, it seems that Spread works better when compiled with SunStudio rather than gcc (I never got membership message when compiled with gcc, but maybe I did not wait long enough). Any help would be very much appreciated. Thanks, Andres. From Renee.Mathur at wnco.com Mon Jul 27 15:46:56 2009 From: Renee.Mathur at wnco.com (Renee Mathur) Date: Mon, 27 Jul 2009 14:46:56 -0500 Subject: [Spread-users] Socket Exception when daemon dies. Cannot re-connect to Spread. Message-ID: Hi. I have an application that performs like a Replicated Cache and uses Spread 4.0 for messaging. I have multiple instances of my application and multiple spread daemons in the environment. In my application I have a receive thread, that receives messages from Spread. I have code where, if I get a socket exception on the receive thread (the daemon has died or unable to connect to the daemon), I do a disconnect and then, I try to connect to other daemons that may be running. But, once my application gets a Socket exception, when I try to re-connect, I get an "Already Connected" SpreadException from Spread. Looking through the Spread source code (SpreadConnection.java), I found, if the receive gets an exception, it does not set the "connected" Boolean to false. Subsequent disconnect invoked by my application fails too, (since it tries to send a Spread Message which would fail since the Socket has been closed from the daemon), which throws another SpreadException, but does not set connected to false. Subsequent connect invoked by my application, checks the connected variable, and throws a SpreadException saying its "Already Connected". I checked the source code for 3.17, 4.0 and 4.1, and the logic has not changed in any of the versions. Are there any work arounds for this situation? How can my application connect to a different daemon once its been disconnected? Any help/insight much appreciated! Thank you. Regards, Renee Mathur. Contractor, Framework Support, Technology Department, Southwest Airlines. Ph: (W) 214.792.4644 Email: renee.mathur at wnco.com Website: www.southwest.com ******* CONFIDENTIALITY NOTICE ******* This e-mail message and all attachments transmitted with it may contain legally privileged and confidential information intended solely for the use of the addressee. If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message from your system. Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090727/9442240a/attachment.html From davek at mojix.com Mon Jul 27 16:35:53 2009 From: davek at mojix.com (Dave Koberstein) Date: Mon, 27 Jul 2009 13:35:53 -0700 Subject: [Spread-users] Socket Exception when daemon dies. Cannot re-connect to Spread. In-Reply-To: References: Message-ID: <4A6E0FA9.8070407@mojix.com> An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090727/fa317544/attachment.html From jharley at oanda.com Tue Jul 28 15:31:56 2009 From: jharley at oanda.com (Jason Harley) Date: Tue, 28 Jul 2009 15:31:56 -0400 Subject: [Spread-users] Build error on Solaris 10 SPARC w/gcc Message-ID: <4A6F522C.1010109@oanda.com> Hello, I'm trying to build spread 4.1.0 on Solaris SPARC using gcc. The same arguments to configure (using identically built compilers and libraries) works fine on a Solaris x86-64 host. My configure arguments: PREFIX="/usr/local" ./configure --prefix=${PREFIX} \ --exec-prefix=${PREFIX} \ --sbindir=${PREFIX}/sbin \ --bindir=${PREFIX}/bin \ --libexecdir=${PREFIX}/libexec \ --datadir=${PREFIX}/share \ --sysconfdir=${PREFIX}/etc/spread \ --localstatedir=${PREFIX}/var/spread \ --with-pid-dir=${PREFIX}/var/spread \ --libdir=${PREFIX}/lib \ --infodir=${PREFIX}/info \ --mandir=${PREFIX}/man \ --with-ldflags="-lrt" Using GNU Make (in serial), it errors out when making the shared objects: > gcc -shared -o libspread.so fl.tlo scatp.tlo alarm.tlo events.tlo memory.tlo sp.tlo -lrt ../stdutil/src/stdarr.lto ../stdutil/src/stdcarr.lto ../stdutil/src/stddll.lto ../stdutil/src/stderror.lto ../stdutil/src/stdfd.lto ../stdutil/src/stdhash.lto ../stdutil/src/stdit.lto ../stdutil/src/stdskl.lto ../stdutil/src/stdthread.lto ../stdutil/src/stdtime.lto ../stdutil/src/stdutil.lto -lm -lsocket -lnsl -lposix4 -lthread -lpthread -Wl,-soname,libspread.so.2 > ld: warning: option -o appears more than once, first setting taken > ld: fatal: file libspread.so.2: open failed: No such file or directory > ld: fatal: File processing errors. No output written to libspread.so > collect2: ld returned 1 exit status > make[1]: *** [libspread.so] Error 1 Any help would be appreciated. ./JRH From andres at gfz-potsdam.de Wed Jul 29 07:50:22 2009 From: andres at gfz-potsdam.de (Andres Heinloo) Date: Wed, 29 Jul 2009 13:50:22 +0200 (CEST) Subject: [Spread-users] Build error on Solaris 10 SPARC w/gcc In-Reply-To: <4A6F522C.1010109@oanda.com> References: <4A6F522C.1010109@oanda.com> Message-ID: On Tue, 28 Jul 2009, Jason Harley wrote: > Hello, > > I'm trying to build spread 4.1.0 on Solaris SPARC using gcc. The same > arguments to configure (using identically built compilers and libraries) > works fine on a Solaris x86-64 host. > > My configure arguments: > PREFIX="/usr/local" ./configure --prefix=${PREFIX} \ > --exec-prefix=${PREFIX} \ > --sbindir=${PREFIX}/sbin \ > --bindir=${PREFIX}/bin \ > --libexecdir=${PREFIX}/libexec \ > --datadir=${PREFIX}/share \ > --sysconfdir=${PREFIX}/etc/spread \ > --localstatedir=${PREFIX}/var/spread \ > --with-pid-dir=${PREFIX}/var/spread \ > --libdir=${PREFIX}/lib \ > --infodir=${PREFIX}/info \ > --mandir=${PREFIX}/man \ > --with-ldflags="-lrt" > > Using GNU Make (in serial), it errors out when making the shared objects: > > > gcc -shared -o libspread.so fl.tlo scatp.tlo alarm.tlo events.tlo memory.tlo sp.tlo -lrt ../stdutil/src/stdarr.lto ../stdutil/src/stdcarr.lto ../stdutil/src/stddll.lto ../stdutil/src/stderror.lto ../stdutil/src/stdfd.lto ../stdutil/src/stdhash.lto ../stdutil/src/stdit.lto ../stdutil/src/stdskl.lto ../stdutil/src/stdthread.lto ../stdutil/src/stdtime.lto ../stdutil/src/stdutil.lto -lm -lsocket -lnsl -lposix4 -lthread -lpthread -Wl,-soname,libspread.so.2 > > ld: warning: option -o appears more than once, first setting taken > > ld: fatal: file libspread.so.2: open failed: No such file or directory > > ld: fatal: File processing errors. No output written to libspread.so > > collect2: ld returned 1 exit status > > make[1]: *** [libspread.so] Error 1 > > Any help would be appreciated. -soname is apparently not supported by Solaris linker (we had this problem on Solaris 10 x86_64). Should be '-Wl,-hlibspread.so.2' instead of '-Wl,-soname,libspread.so.2'. Also ar 'o' flag seems to be incompatible with Solaris. BTW, does nobody else have the connection problem on Solaris, that I wrote about few days ago!? Andres. From andres at gfz-potsdam.de Wed Jul 29 14:30:14 2009 From: andres at gfz-potsdam.de (Andres Heinloo) Date: Wed, 29 Jul 2009 20:30:14 +0200 (CEST) Subject: [Spread-users] Problem with "name not unique" on Solaris 10 In-Reply-To: References: <200907171513.n6HFDeBB007895@aragorn.savarese.org> Message-ID: On Tue, 21 Jul 2009, Andres Heinloo wrote: > > > On Fri, 17 Jul 2009, Daniel F. Savarese wrote: > > > > > In message , Andres Heinl > > oo writes: > > >User>j PICK > > > > > >User>l PICK > > > > > >User>q > > > > If that's a complete log, then you're missing the receipt of two > > group membership messages. Something like the following after the > > join: > > > > ============================ > > Received REGULAR membership for group PICK with 1 members, where I am member 0: > > #tttt#localhost > > grp id is -1062731517 1247454353 1 > > Due to the JOIN of #tttt#localhost > > > > And something like the following after the leave: > > > > ============================ > > received membership message that left group PICK > > > > That may be why the connection name isn't being freed up immediately > > (there are pending messages, so the Spread daemon may wait before > > killing the connection's queue of messages). Try waiting for the > > membership messages to arrive before issuing the quit command and see > > how long that takes. That may help the Spread team tell you what's > > going on. I wasn't able to reproduce your problem, but I'm running > > a patched version of Spread with some custom modifications. > > Indeed the membership messages are missing. It takes several minutes until > membership message arrives. However, once the message arrives, Spread > starts to work normally. > > I think it would not make sense to keep message queue after TCP > disconnect, specially if the client cannot reconnect anyway (name not > unique). > > Looks like the Spread daemon is somewhere blocked at start, however, it > still does accept and handle TCP connections. > > As I said, the problem does *not* occur on Linux. On Solaris 10, it seems > that Spread works better when compiled with SunStudio rather than gcc (I > never got membership message when compiled with gcc, but maybe I did not > wait long enough). > > Any help would be very much appreciated. Looks like I solved the problem. Running Spread with debug enabled, I noticed repeating messages like this: [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: delaying after failure in send to 127.0.0.1, ret is -1 [Wed 29 Jul 2009 19:52:19] DL_send: element[0]: 32 bytes [Wed 29 Jul 2009 19:52:19] DL_send: error: Invalid argument sending 32 bytes on channel 5 to address 127.0.0.1 [Wed 29 Jul 2009 19:52:19] DL_send: sent a message of -1 bytes to (127.0.0.1,4804) on channel 5 truss shows: sendmsg(5, 0x004CD120, 0) Err#22 EINVAL So I manually changed 'ARCH_SCATTER_ACCRIGHTS 1' to 'ARCH_SCATTER_NONE 1' in config.h, in which case sendto() would be used instead of sendmsg() in data_link.c: #ifndef ARCH_SCATTER_NONE ret = sendmsg(chan, &msg, 0); #else /* ARCH_SCATTER_NONE */ ret = sendto(chan, pseudo_scat, total_len, 0, (struct sockaddr *)&soc_addr, sizeof(soc_addr) ); #endif /* ARCH_SCATTER_NONE */ That apparently solved the problem. Andres. P.S. Why does Spread daemon send messages to itself via port 4804 anyway? From Renee.Mathur at wnco.com Wed Jul 29 14:34:21 2009 From: Renee.Mathur at wnco.com (Renee Mathur) Date: Wed, 29 Jul 2009 13:34:21 -0500 Subject: [Spread-users] Socket Exception when daemon dies. Cannot re-connect to Spread. In-Reply-To: <4A6E0FA9.8070407@mojix.com> References: <4A6E0FA9.8070407@mojix.com> Message-ID: In my application, I do a disconnect before trying to reconnect too. But as I said in explanation earlier, it doesn't clean up the leftover state ("connected" variable on the SpreadConnection class in JavaAPI wrapper of Spread). Thank you. Regards, Renee Mathur. Contractor, Framework Support, Technology Department, Southwest Airlines. Ph: (W) 214.792.4644 Email: renee.mathur at wnco.com Website: www.southwest.com ________________________________ From: spread-users-bounces at lists.spread.org [mailto:spread-users-bounces at lists.spread.org] On Behalf Of Dave Koberstein Sent: Monday, July 27, 2009 3:36 PM To: spread-users at lists.spread.org Subject: Re: [Spread-users] Socket Exception when daemon dies. Cannot re-connect to Spread. We issue a disconnect before reconnect. It seems to me that throws an exception since the socket is closed but in effect cleans up any leftover state regarding the connection. On 7/27/2009 12:46 PM, Renee Mathur wrote: Hi. I have an application that performs like a Replicated Cache and uses Spread 4.0 for messaging. I have multiple instances of my application and multiple spread daemons in the environment. In my application I have a receive thread, that receives messages from Spread. I have code where, if I get a socket exception on the receive thread (the daemon has died or unable to connect to the daemon), I do a disconnect and then, I try to connect to other daemons that may be running. But, once my application gets a Socket exception, when I try to re-connect, I get an "Already Connected" SpreadException from Spread. Looking through the Spread source code (SpreadConnection.java), I found, if the receive gets an exception, it does not set the "connected" Boolean to false. Subsequent disconnect invoked by my application fails too, (since it tries to send a Spread Message which would fail since the Socket has been closed from the daemon), which throws another SpreadException, but does not set connected to false. Subsequent connect invoked by my application, checks the connected variable, and throws a SpreadException saying its "Already Connected". I checked the source code for 3.17, 4.0 and 4.1, and the logic has not changed in any of the versions. Are there any work arounds for this situation? How can my application connect to a different daemon once its been disconnected? Any help/insight much appreciated! Thank you. Regards, Renee Mathur. Contractor, Framework Support, Technology Department, Southwest Airlines. Ph: (W) 214.792.4644 Email: renee.mathur at wnco.com Website: www.southwest.com ________________________________ ******* CONFIDENTIALITY NOTICE ******* This e-mail message and all attachments transmitted with it may contain legally privileged and confidential information intended solely for the use of the addressee. If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message from your system. Thank you. ________________________________ _______________________________________________ Spread-users mailing list Spread-users at lists.spread.org http://lists.spread.org/mailman/listinfo/spread-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.spread.org/pipermail/spread-users/attachments/20090729/617d8d87/attachment.html From jr at vertica.com Wed Jul 29 15:48:34 2009 From: jr at vertica.com (John Robinson) Date: Wed, 29 Jul 2009 15:48:34 -0400 Subject: [Spread-users] Problem with "name not unique" on Solaris 10 In-Reply-To: References: <200907171513.n6HFDeBB007895@aragorn.savarese.org> Message-ID: <4A70A792.7000106@vertica.com> Andres Heinloo wrote: > P.S. Why does Spread daemon send messages to itself via port 4804 anyway? My guess - because it is important to act on them in arrival order instead of send order. /jr From martin4321234 at googlemail.com Fri Jul 31 12:00:48 2009 From: martin4321234 at googlemail.com (M S) Date: Fri, 31 Jul 2009 18:00:48 +0200 Subject: [Spread-users] bug in perl binding for spread fixed - now more than 64 groups Message-ID: <7d6515890907310900p379f719asb792ca84a88bd03d@mail.gmail.com> Because of a typo in the perl interface for spread it was impossible to receive messages sent to more than 64 groups. In Spread.xs there is newgsize=--ngrps; instead of newgsize=-ngrps; The Spread C API function SP_receive returns the negative of the number of groups that the message was sent to. Of course a single minus operator is needed to calculate the number of groups for the memory reallocation. Otherwise the memory reallocation would fail. The patch below fixes this and some minor inaccuracies in Spread.xs. Would you please upload a fixed Spread package for perl to Cpan http://search.cpan.org/~jesus/ . The perl package included in the spread-src-4.1.0 distribution is a copy of an older version of that. Kind regards, Martin *** Spread-3.17.4.1/Spread.xs.orig --- Spread-3.17.4.1/Spread.xs *************** *** 54,60 **** "Reject: Not Unique", /* REJECT_NOT_UNIQUE -6 */ "Reject: Version", /* REJECT_VERSION -7 */ "Connection Closed", /* CONNECTION_CLOSED -8 */ ! "" , /* -9 */ "" , /* -10 */ "Illegal Session", /* ILLEGAL_SESSION -11 */ "Illegal Service", /* ILLEGAL_SERVICE -12 */ --- 54,60 ---- "Reject: Not Unique", /* REJECT_NOT_UNIQUE -6 */ "Reject: Version", /* REJECT_VERSION -7 */ "Connection Closed", /* CONNECTION_CLOSED -8 */ ! "Reject: Auth", /* REJECT_AUTH -9 */ "" , /* -10 */ "Illegal Session", /* ILLEGAL_SESSION -11 */ "Illegal Service", /* ILLEGAL_SERVICE -12 */ *************** *** 61,73 **** "Illegal Message", /* ILLEGAL_MESSAGE -13 */ "Illegal Group", /* ILLEGAL_GROUP -14 */ "Buffer Too Short", /* BUFFER_TOO_SHORT -15 */ ! #ifdef GROUP_TOO_SHORT "Groups Too Short", /* GROUPS_TOO_SHORT -16 */ #endif #ifdef MESSAGE_TOO_LONG "Message Too Long", /* MESSAGE_TOO_LONG -17 */ #else ! #error You must install spread 3.17.0 client libraries to build perl Spread. #endif ""}; static char *connect_params[] = { --- 61,73 ---- "Illegal Message", /* ILLEGAL_MESSAGE -13 */ "Illegal Group", /* ILLEGAL_GROUP -14 */ "Buffer Too Short", /* BUFFER_TOO_SHORT -15 */ ! #ifdef GROUPS_TOO_SHORT "Groups Too Short", /* GROUPS_TOO_SHORT -16 */ #endif #ifdef MESSAGE_TOO_LONG "Message Too Long", /* MESSAGE_TOO_LONG -17 */ #else ! #error You must install spread client libraries to build perl Spread. #endif ""}; static char *connect_params[] = { *************** *** 286,291 **** --- 286,297 ---- #else goto not_there; #endif + if (strEQ(name, "REJECT_AUTH")) + #ifdef REJECT_AUTH + return REJECT_AUTH; + #else + goto not_there; + #endif if (strEQ(name, "REJECT_ILLEGAL_NAME")) #ifdef REJECT_ILLEGAL_NAME return REJECT_ILLEGAL_NAME; *************** *** 725,731 **** goto try_again; #ifdef GROUPS_TOO_SHORT } else if (ret==GROUPS_TOO_SHORT) { ! newgsize=--ngrps; ERROR = newSViv(GROUPS_TOO_SHORT); ngrps = oldgsize; goto try_again; --- 731,737 ---- goto try_again; #ifdef GROUPS_TOO_SHORT } else if (ret==GROUPS_TOO_SHORT) { ! newgsize=-ngrps; ERROR = newSViv(GROUPS_TOO_SHORT); ngrps = oldgsize; goto try_again;