[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-users] 'Host not found' after OS upgrade



hi scott :-) 

it seems two things mix here -  
calls to NetAddr:isLocal (actually matchLangIP) being broken, 
and depending on the semi-random order of initClassTree, 
the Startup sequence sometimes tripping over that, 
leaving SC in mostly unusable state.

Reproducer for NetAddr:isLocal is trivial:
// both of these returns the class NetAddr, not a boolean:
Server.local.addr.isLocal; 
Server.internal.addr.isLocal;

Reproducer for the long error 
	resolve: Host not found (authoritative)
	ERROR: Non Boolean in test.

is trickier:  it depends on the the semi-random order in which 
Class.initClassTree inits classes. 
Sometimes it hangs there directly when starting SC 3.7.0a, 
sometimes after 5-10 recompiles while working on classes or 
help files, after installing more quarks, but I have no simple reproducer. 

To track down where in the sequence it happens, 
I've added a post to initClassTree to see the actual order;
and that order does seem to change when you change classes, 
install quarks etc.

	*initClassTree { arg aClass;
		var implementsInitClass;
		// sometimes you need a class to be inited before another class
		// start the process: Class.initClassTree(Object)
		if(classesInited.isNil, { classesInited = IdentitySet.new });
		if(classesInited.includes(aClass).not, {
			if(aClass.isMetaClass.not and: { aClass.class.findMethod(\initClass).notNil }, {
				("-----> initClassTree: " + aClass + "...?").postln;
					aClass.initClass;
				("-----> initClassTree: " + aClass + "OK.").postln;
			});

			classesInited.add(aClass);
			if(aClass.subclasses.notNil,{
				aClass.subclasses.do({ arg class; this.initClassTree(class); });
			});
		});
	}

thanks for taking that up! 

best, adc

	

On 27/12/2013, at 12:37 , Scott Wilson <i@xxxxxxxxxxxxxx> wrote:

> I have an idea about this, but I don't see it myself. Can either of you suggest a reproducer?
> 
> S.
> 
> On 26 Dec 2013, at 21:47, adc <alberto.decampo@xxxxxxxxx> wrote:
> 
>> Hi, 
>> 
>> I am seeing this on OSX 10.8.5 as well, so it is not linux specific. 
>> Logging out and logging back in seems to help, but it keeps coming 
>> back after several recompiles. 
>> 
>> I tried overwriting the NetAddr:isLocal like this: 
>> 
>> 	*matchLangIP { |ipstring|
>> 		^ipstring == "127.0.0.1";
>> 	}
>> 
>> 	// *matchLangIP {|ipstring|
>> 	// 	_MatchLangIP
>> 	// }
>> 
>> but strangely, I still get the same error. 
>> 
>> best, adc
>> 
>> 
>> On 26/12/2013, at 19:32 , Phil Thomson <supercollider@xxxxxxxxxxxxxx> wrote:
>> 
>>> On Wed, 25 Dec 2013 08:45:45 +0800
>>> James Harkins <jamshark70@xxxxxxxxx> wrote:
>>> 
>>>> On Dec 25, 2013 4:12 AM, "Phil Thomson" <supercollider@xxxxxxxxxxxxxx>
>>>> wrote:
>>>>> compile done
>>>>> resolve: Host not found (authoritative)
>>>>> ERROR: Non Boolean in test.
>>>>> RECEIVER:
>>>>> class NetAddr (0x39fe700) {
>>>> 
>>>> I don't know the solution, but I think this is what's happening.
>>>> 
>>>> The test that's failing is here, in Server:
>>>> 
>>>> newScopeBufferAllocators {
>>>>              if (isLocal)
>>>> 
>>>> The isLocal variable gets set in Server's init method: "isLocal =
>>>> inProcess || { addr.isLocal };" which leads to NetAddr:
>>>> 
>>>> isLocal { ^this.class.matchLangIP(this.ip) }
>>>> 
>>>>      *matchLangIP {|ipstring|
>>>>              _MatchLangIP
>>>>      }
>>>> 
>>>> This primitive should return a boolean or throw a descriptive error,
>>>> but instead, under this rare case, it simply returns the class
>>>> itself, which is how NetAddr got into the "if" test.
>>>> 
>>>> If the SC code were fixed, though, you'd still have the "Host not
>>>> found" problem, which depends on something in the OS. I'm afraid I
>>>> haven't much time to look into that today, but I'm quite sure you'll
>>>> have other problems with SC (maybe with networking in general)
>>>> without dealing with this issue (and I don't believe it's an SC
>>>> configuration problem).
>>>> 
>>>> hjh
>>> 
>>> Not sure what my next step is. Should I contact the CCRMA folks? Is
>>> this an OS bug?
>>> 
>>> _______________________________________________
>>> sc-users mailing list
>>> 
>>> info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
>>> archive: https://listarc.bham.ac.uk/marchives/sc-users/
>>> search: https://listarc.bham.ac.uk/lists/sc-users/search/
>> 
>> 
>> _______________________________________________
>> sc-users mailing list
>> 
>> info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
>> archive: https://listarc.bham.ac.uk/marchives/sc-users/
>> search: https://listarc.bham.ac.uk/lists/sc-users/search/
> 
> 
> _______________________________________________
> sc-users mailing list
> 
> info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
> archive: https://listarc.bham.ac.uk/marchives/sc-users/
> search: https://listarc.bham.ac.uk/lists/sc-users/search/


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/