Show stopper network bug on Windows

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Show stopper network bug on Windows

Stéphane Ducasse
Thanks igor

let us know. It would be nice to get this issue fixed

Stef


On Jul 22, 2009, at 9:41 PM, Igor Stasenko wrote:

> Okay, then i think it is better to move this thread on vm-dev list (to
> notify VM devs about this bug), because it seems a VM bug, not
> image-side bug.
>
> I just tested it on my WinXP + VM (dated 27 march 2009 - not sure what
> version is)
> and it indeed failing if i do
> NetNameResolver localHostName
> and not do:
> NetNameResolver initializeNetwork
> before.
>
> But once i did initialization, all subsequent requests is ok.
>
> 2009/7/22 Schwab,Wilhelm K <[hidden email]>:
>> Sig,
>>
>> Respectfully, I do not agree that the current situation is  
>> elegant.  There are other ways to cope with a disabled plugin (see  
>> #useOldNetwork), and littering code with #initializeNetwork is  
>> error prone and wasteful in its own way, no matter how lean the  
>> method might be.
>>
>> This looks to me like an anachronism.  There was no better  
>> mechanism, so a workaround had to suffice.  Now with weak  
>> collections and events, it should be possible to do better.  If  
>> those things do not work well, then they need to be challenged and  
>> fixed as appropriate.
>>
>> The lack of fully qualified names could easily be a windows  
>> stupidity.  My Dolphin code for lookups has long been a little  
>> complicated: look up this, clear that, do it again, and it always  
>> seemed that I was fighting lack of imagination from the general  
>> direction of Redmond WA - who would have thought that possible? :)  
>> My favorite was win2k from (IIRC) pre-sp3: the only machine one  
>> could not find by name was the local host!
>>
>> Bill
>>
>>
>> -----Original Message-----
>> From: [hidden email] [mailto:[hidden email]
>> ] On Behalf Of Igor Stasenko
>> Sent: Tuesday, July 21, 2009 11:02 PM
>> To: [hidden email]
>> Subject: Re: [Pharo-project] Show stopper network bug on Windows
>>
>> 2009/7/22 Schwab,Wilhelm K <[hidden email]>:
>>> Sig,
>>>
>>> Queue veryLoudHeadSlap.wav - however, that is not a fix for it on  
>>> Linux.  Also, on Windows, I am not getting the fully qualified  
>>> name, which is another problem.  It also helps make the case for  
>>> formalized session management, as the image should know when it  
>>> has had its first cup of coffee (the vm can inform it).
>>>
>> Usually, all code , working with sockets , sending  
>> #initializeNetwork, to be sure it is initialized:
>>
>> Socket>>newTCP: family
>>        "Create a socket and initialise it for TCP"
>>        self initializeNetwork.
>>        ^[ super new initialize: TCPSocketType family: family ]
>>                repeatWithGCIf: [ :socket | socket isValid not ]
>>
>> ---------
>> Socket>>initializeNetwork
>>        "Initialize the network drivers and the NetNameResolver. Do  
>> nothing if the network is already initialized."
>>        "Note: The network must be re-initialized every time Squeak  
>> starts up, so applications that persist across snapshots should be  
>> prepared to re-initialize the network as needed. Such applications  
>> should call 'Socket initializeNetwork' before every network  
>> transaction. "
>>
>>        NetNameResolver initializeNetwork
>> ----------
>> another way could be just add the #startUp method and initialize  
>> network there.
>> But i think that current solution is more elegant, because if your  
>> image never using the network, it will never initialize the plugin  
>> and in this way, preserve some resources.
>> And , of course , there could be the cases, where VMs built without  
>> network support, or running with disabled networking security  
>> setting (for sandboxing). In these cases this primitive (as well as  
>> rest of socket prims) will fail.
>>
>> As for retreiving a fully qualified name - can't give you answer  
>> right now. I think it can be answered by Andreas, who added the  
>> ipv6 support recently to Windoze VM platform code.
>>
>>> Bill
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: [hidden email]
>>> [mailto:[hidden email]] On Behalf Of  
>>> Igor
>>> Stasenko
>>> Sent: Tuesday, July 21, 2009 6:53 PM
>>> To: [hidden email]
>>> Subject: Re: [Pharo-project] Show stopper network bug on Windows
>>>
>>> Guys, see my comment on that issue.:
>>> #localHostName should not be used before #initializeNetwork.
>>>
>>> Hope it helps.
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Show stopper network bug on Windows

Igor Stasenko
In reply to this post by Schwab,Wilhelm K
2009/7/22 Schwab,Wilhelm K <[hidden email]>:
>
> The lack of fully qualified names could easily be a windows stupidity.  My Dolphin code for lookups has long been a little complicated: look up this, clear that, do it again, and it always seemed that I was fighting lack of imagination from the general direction of Redmond WA - who would have thought that possible? :)  My favorite was win2k from (IIRC) pre-sp3: the only machine one could not find by name was the local host!
>

Concerning fully qualified host name. Yes. This is a well-known issue
of windoze.
For instance, my machine returns 'comp'
on #localHostName request. Which is nothing more, than a computer
name, i assigned in windoze settings.

I didn't assigned my PC to be a part of any (sub)domain, so this is
all it can report.

The problems with dns/windoze host naming is comes back to Windows
3.11 era when there was no 'internet' but a local networks and windows
used own identification mechanisms and protocols (NetBIOS, NetBEUI) to
connect different hosts into a 'workgroup' :)

However, next is getting interesting.
I having a following network interfaces on my PC (i have to translate
the text, because it prints things in russian) :

(( The engineers at Redmond renamed the well-known unix ifconfig
utility to ipconfig :) ))

C:\>ipconfig /all

Windows IP protocol settings
        Host name  . . . . . . . . . : comp
        Primary DNS-suffix  . . . . . . :
        Host type . . . . . . . . . . . . . : unknown
        IP-forwarding enabled  . . . . : no
        WINS-proxy enabled . . . . . . . : no

VMware Network Adapter VMnet8 - Ethernet adapter:

        DNS-suffix . . :
        IP-address  . . . . . . . . . . . . : 192.168.6.1
        Subnet mask . . . . . . . . . . : 255.255.255.0
        Gateway . . . . . . . . . . :

VMware Network Adapter VMnet1 - Ethernet adapter:

        DNS-suffix . . :
        IP-address  . . . . . . . . . . . . : 192.168.89.1
        Subnet mask . . . . . . . . . . : 255.255.255.0
        Gateway  . . . . . . . . . . :

VirtualBox Host-Only Network - Ethernet adapter:

        DNS-suffix . . :
        IP-address  . . . . . . . . . . . . : 192.168.56.1
        Subnet mask . . . . . . . . . . : 255.255.255.0
        Gateway  . . . . . . . . . . :

Network bridge - Ethernet adapter:

        DNS-suffix . . :
        IP-address  . . . . . . . . . . . . : 192.168.0.3
        Subnet mask . . . . . . . . . . : 255.255.255.0
        Gateway  . . . . . . . . . . : 192.168.0.1


Now, if i run:
C:\>ping comp

it starts pinging 192.168.56.1  address, which its thinks my
extenal/local adapter address, but its obviously not

i would expect that 'comp' should be resolved to 127.0.0.1 address (a
loopback adapter) but windows thinks differently :)

So, imagine i want to create a socket , listening for incoming
connections at 'localHostName' address:

NetNameResolver addressForName: NetNameResolver localHostName

it gives me the same result  as ping does:
192.168.56.1(192.168.56.1),0(0)

surely, using this address i will never receive any incoming connections.. :)

But what i didn't expected, it also opens a debug console and prints
some kind of error about getnameinfo() function
(again, translated, because my windoze is localized):

getnameinfo: requested name is allowed and its found in database, but
for this name the associated data is missing, which was allowed for
it..

But its not producing a primitive failure.

btw, same error shown in concole even if i do:

NetNameResolver addressForName: 'localhost'

i found that the error producing when i printing the instance of
SocketAddress (#hostName method)

weird...

Next, nslookup utility of course, unable to resolve 'comp' name:

C:\>nslookup
Default Server:  ns.ip.net.ua
Address:  82.193.96.6

> comp
Server:  ns.ip.net.ua
Address:  82.193.96.6

*** ns.ip.net.ua can't find comp: Non-existent domain
>

--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Fwd: [Vm-dev] Fwd: Show stopper network bug on Windows

Igor Stasenko
All, who interested in this, please continue this topic on VM-dev list.
Because Andreas is maintainer of windoze VM, and no one knows better
than he is of what is working or not and why.

---------- Forwarded message ----------
From: Andreas Raab <[hidden email]>
Date: 2009/7/23
Subject: Re: [Vm-dev] Fwd: [Pharo-project] Show stopper network bug on Windows
To: Squeak Virtual Machine Development Discussion
<[hidden email]>



Igor Stasenko wrote:
>
> Hello guys, those, who not subscribed to the Pharo list.
>
> I think you should read this:
>  http://code.google.com/p/pharo/issues/detail?id=961
>
> since it seems there are some networking problems with Win32 VM.

None of these are Windows VM issues. The problem referred to above is
simply that someone was using a year-old 3.10.2 VM and tried to call
IPv6 primitives (the debug log shows that clearly). The IPv6 prims are
not available in these old VMs.

The discussion below is similarly confused. The Windows VM does return
fully qualified names if your network environment is set up properly.
Usually, the domain name is set by DHCP, but you can set it manually
in the advanced network settings (on XP it's under network,
properties, TCP/IP, advanced, append dns suffixes; Vista will surely
differ).

Cheers,
 - Andreas




--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
12