DRb DNS Problems

X

x1

DRb server trying to yield data to the fully qualified domain name of
the client?

Today, I ran into an issue with a host(windows client) that had an
improperly configured domain name suffix.

Its typical fqdn would be client1.ruby-lang.org but because of poor
network administration, it was changed to client1.doesentexist.com.

Although client1 and server1 can still communicate fine because of Net
BIOS and arp (on the same subnet), the DRb server tries to yield the
objects back to the client's fully qualified name... If it fails, it
bombs out with a drbconnerr. I guess I'm just wondering why it doesn't
attempt alternate methods?

If I don't use the yield / callback it connects and returns results
fine.. The issue only presents itself when using yields and bombs out
when the server tries to return the object to the clients FQDN..

Is this a security feature or what? I realize I cant blame drb for my
network but I can say that other applications were unaffected (at
least in an obvious way).

thx for any input.










=3D=3D=3D=3D clnt.rb =3D=3D=3D=3D
require 'drb'

DRb.start_service()
obj =3D DRbObject.new_with_uri('druby://:22337')

obj.foo do |i|
p i
end
=3D=3D=3D=3D=3D=3D=3D=3D
 
Z

Zev Blut

Hello,

DRb server trying to yield data to the fully qualified domain name of
the client?

Today, I ran into an issue with a host(windows client) that had an
improperly configured domain name suffix.

Its typical fqdn would be client1.ruby-lang.org but because of poor
network administration, it was changed to client1.doesentexist.com.

Although client1 and server1 can still communicate fine because of Net
BIOS and arp (on the same subnet), the DRb server tries to yield the
objects back to the client's fully qualified name... If it fails, it
bombs out with a drbconnerr. I guess I'm just wondering why it doesn't
attempt alternate methods?

[Snip more details]
=3D=3D=3D=3D clnt.rb =3D=3D=3D=3D
require 'drb'

DRb.start_service()
obj =3D DRbObject.new_with_uri('druby://:22337')

obj.foo do |i|
p i
end
=3D=3D=3D=3D=3D=3D=3D=3D

I agree that it would be nice if DRb had some more methods for
providing a host address. Although, I am not sure easy this would be.
For example what if you have multiple network interfaces? Luckily, you
can control what is provided by setting a full URI in the
DRbObject.new_with_uri method.

Such as:

DRbObject.new_with_uri('druby://myhardcoded.domain.com:22337')

or by IP

DRbObject.new_with_uri('druby://192.168.0.1:22337')

Granted this requires you to configure your URI for each machine that
you run clnt.rb on. So if you have lots of clients it might be better
to fix your network and continue using the 'druby://:22337' URI.

Cheers,
Zev
 
X

x1

Thanks for the reply. --Glad to see I'm not going crazy.

Kind regards.

Hello,

DRb server trying to yield data to the fully qualified domain name of
the client?

Today, I ran into an issue with a host(windows client) that had an
improperly configured domain name suffix.

Its typical fqdn would be client1.ruby-lang.org but because of poor
network administration, it was changed to client1.doesentexist.com.

Although client1 and server1 can still communicate fine because of Net
BIOS and arp (on the same subnet), the DRb server tries to yield the
objects back to the client's fully qualified name... If it fails, it
bombs out with a drbconnerr. I guess I'm just wondering why it doesn't
attempt alternate methods?

[Snip more details]
=3D=3D=3D=3D clnt.rb =3D=3D=3D=3D
require 'drb'

DRb.start_service()
obj =3D DRbObject.new_with_uri('druby://:22337')

obj.foo do |i|
p i
end
=3D=3D=3D=3D=3D=3D=3D=3D

I agree that it would be nice if DRb had some more methods for
providing a host address. Although, I am not sure easy this would be.
For example what if you have multiple network interfaces? Luckily, you
can control what is provided by setting a full URI in the
DRbObject.new_with_uri method.

Such as:

DRbObject.new_with_uri('druby://myhardcoded.domain.com:22337')

or by IP

DRbObject.new_with_uri('druby://192.168.0.1:22337')

Granted this requires you to configure your URI for each machine that
you run clnt.rb on. So if you have lots of clients it might be better
to fix your network and continue using the 'druby://:22337' URI.

Cheers,
Zev
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,183
Messages
2,570,967
Members
47,518
Latest member
RomanGratt

Latest Threads

Top