N
Nathaniel Talbott
Well, I have DRb and OpenSSL working together! I'm running in to a bit of
trouble , though, and would appreciate any help ya'll can offer. When I run
my client/server app with small messages, it works great. When I run it with
large messages, though, things aren't so happy...
When the app is run, I can connect and log in to the server without trouble
(all over SSL). However, once I'm logged in and request a large chunk of
data from the server, the client application hangs waiting for the reply to
finish. Now, two things can happen at this point:
1) If I terminate the server, the client comes up and displays the correct
information. It appears that the client is waiting for the socket to be
closed, and terminating the server causes this to happen.
2) If I terminate the client, I get the following error on the server (and
it dies):
D, [2003-08-06T12:09:25.185562 #26009] DEBUG -- SE Server: #urls called
/usr/lib/ruby/site_ruby/1.8/dbi/dbi.rb:318: warning: method redefined;
discarding old fraction
Exception `OpenSSL::SSL::SSLError' at
/usr/lib/ruby/1.8/openssl/buffering.rb:33
- SSL_read::
Exception `OpenSSL::SSL::SSLError' at
/usr/lib/ruby/1.8/openssl/buffering.rb:139
- SSL_write::
Exception `OpenSSL::SSL::SSLError' at
/usr/lib/ruby/1.8/openssl/buffering.rb:139
- SSL_write:: bad write retry
/usr/lib/ruby/1.8/openssl/buffering.rb:139:in `syswrite': SSL_write:: bad
write
retry (OpenSSL::SSL::SSLError)
from /usr/lib/ruby/1.8/openssl/buffering.rb:139:in `do_write'
from /usr/lib/ruby/1.8/openssl/buffering.rb:181:in `flush'
from /usr/lib/ruby/1.8/openssl/buffering.rb:186:in `close'
from /usr/lib/ruby/site_ruby/1.8/drb/ssl.rb:167:in `close'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:725:in `main_loop'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:711:in `loop'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:729:in `main_loop'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:707:in `start'
... 9 levels...
from ./se/server/baserunner.rb:72:in `start'
from ./se/server/baserunner.rb:59:in `send'
from ./se/server/baserunner.rb:59:in `run'
from se/server.rb:58
It appears that buffering is interacting badly with a large message size.
I'll continue investigating, but if anyone can help me out, that would be
great!
Thanks,
Nathaniel
<(><
trouble , though, and would appreciate any help ya'll can offer. When I run
my client/server app with small messages, it works great. When I run it with
large messages, though, things aren't so happy...
When the app is run, I can connect and log in to the server without trouble
(all over SSL). However, once I'm logged in and request a large chunk of
data from the server, the client application hangs waiting for the reply to
finish. Now, two things can happen at this point:
1) If I terminate the server, the client comes up and displays the correct
information. It appears that the client is waiting for the socket to be
closed, and terminating the server causes this to happen.
2) If I terminate the client, I get the following error on the server (and
it dies):
D, [2003-08-06T12:09:25.185562 #26009] DEBUG -- SE Server: #urls called
/usr/lib/ruby/site_ruby/1.8/dbi/dbi.rb:318: warning: method redefined;
discarding old fraction
Exception `OpenSSL::SSL::SSLError' at
/usr/lib/ruby/1.8/openssl/buffering.rb:33
- SSL_read::
Exception `OpenSSL::SSL::SSLError' at
/usr/lib/ruby/1.8/openssl/buffering.rb:139
- SSL_write::
Exception `OpenSSL::SSL::SSLError' at
/usr/lib/ruby/1.8/openssl/buffering.rb:139
- SSL_write:: bad write retry
/usr/lib/ruby/1.8/openssl/buffering.rb:139:in `syswrite': SSL_write:: bad
write
retry (OpenSSL::SSL::SSLError)
from /usr/lib/ruby/1.8/openssl/buffering.rb:139:in `do_write'
from /usr/lib/ruby/1.8/openssl/buffering.rb:181:in `flush'
from /usr/lib/ruby/1.8/openssl/buffering.rb:186:in `close'
from /usr/lib/ruby/site_ruby/1.8/drb/ssl.rb:167:in `close'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:725:in `main_loop'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:711:in `loop'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:729:in `main_loop'
from /usr/lib/ruby/site_ruby/1.8/drb/drb.rb:707:in `start'
... 9 levels...
from ./se/server/baserunner.rb:72:in `start'
from ./se/server/baserunner.rb:59:in `send'
from ./se/server/baserunner.rb:59:in `run'
from se/server.rb:58
It appears that buffering is interacting badly with a large message size.
I'll continue investigating, but if anyone can help me out, that would be
great!
Thanks,
Nathaniel
<(><