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:
-
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.
-
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
<:((><
Nathaniel Talbott wrote:
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:
-
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.
-
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
<:((><
I can not help you but I would love to hear more about your experience
with DRb and OpenSSL. I’m in the process of working on a client/server
app that uses DRb and the security issue it in the back (or side, or
front) of my head, nagging me. I currently have no security other then
what DRb provides. Can anyone speak to the security issues of DRb?
Michael