[vwnc] SocketAccessor>>accept blocks image?

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

[vwnc] SocketAccessor>>accept blocks image?

kobetic
"Philippe Demaecker"<[hidden email]> wrote:
> 3.       Below you can find 2 stack traces created by a ctrl-y at a moment the image was blocking.
> Stack 1: it seems that SocketAccessor>>primAccept runs into an (EWouldBlock) error trying to report it, but blocking the image.

What exactly do you mean by "blocking the image" ? Socket operations shouldn't be blocking the VM, i.e. only the process performing the socket operation should be blocked, any other runnable processes should be able to run as long as they get Processor time. Is something spinning at a high priority ? The listener process normally does run at an elevated priority.

> Stack 2: the proxy setting up its listener process
>
> So, I have a few questions:
>
> 1.       Why is the proxy starting a listener process? I don't understand we this is necessary when communication between Client and server happens using the sendRequest:? What am I missing?

The client uses an Opentalk broker and currently there is no way to start a broker without an active listener. Yes it is not necessary and wasteful in a client only configuration but that's what it is atm.

> 2.       How can I create a situation where primAccept would return a EWOULDBLOCK error?

Not sure about that. It likely depends on specifics of your platform. Can you provide more details about that ?

> 3.       Why is raising a EWOULDBLOCK in primAccept blocking the image?

As I said, socket operations don't block the whole image, just the process performing them. My guess is that the listener process ended up spinning at a high priority and consequently starving all other lower priority processes (including any UI processes). You can try setting the listenerPriority: below 50 and see if it makes any difference.

HTH,

Martin
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] SocketAccessor>>accept blocks image?

Philippe Demaecker
Hello Martin,

Thanks for replying.
1. The listener is running at prio 83, lowering this value does not seem to change anything.

2. It's running VW 7.4.1 on Windows, I will ask for more detailed information about the CPU and Windows version.

3. Blocking image = all VW windows are grey and unresponsive (you can try for yourself using the scenario from my original mail).

You CAN still ctrl-y though, ending up in

[1] OsNeedRetryError(GenericException)>>findHandlerContextFrom:markDebug:
[2] OsNeedRetryError(GenericException)>>propagatePrivateFrom:
[3] OsNeedRetryError(GenericException)>>propagateFrom:
[4] OsNeedRetryError(GenericException)>>propagate
[5] OsNeedRetryError(GenericException)>>raiseRequest
[6] HandleRegistry>>evaluateWithFullProtection:
[7] HandleRegistry>>registerValueOf:
[8] SocketAccessor class(OSHandle class)>>handleValue:
[9] SocketAccessor>>accept
[10] optimized [] in Opentalk.ConnectionListener>>listenerProcessBody

. It seem that, once primAccept has been raised, that evaluateWithFullProtection: does not seem to be able to propagate this exception further...

. Also, is there any reason a connection would be made to the server process of the proxy?

Thanks for your help!
Philippe


> 3.       Below you can find 2 stack traces created by a ctrl-y at a moment the image was blocking.
> Stack 1: it seems that SocketAccessor>>primAccept runs into an (EWouldBlock) error trying to report it, but blocking the image.

What exactly do you mean by "blocking the image" ? Socket operations shouldn't be blocking the VM, i.e. only the process performing the socket operation should be blocked, any other runnable processes should be able to run as long as they get Processor time. Is something spinning at a high priority ? The listener process normally does run at an elevated priority.


> 2.       How can I create a situation where primAccept would return a EWOULDBLOCK error?

Not sure about that. It likely depends on specifics of your platform. Can you provide more details about that ?

> 3.       Why is raising a EWOULDBLOCK in primAccept blocking the image?

As I said, socket operations don't block the whole image, just the process performing them. My guess is that the listener process ended up spinning at a high priority and consequently starving all other lower priority processes (including any UI processes). You can try setting the listenerPriority: below 50 and see if it makes any difference.

HTH,

Martin

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

WSOpentalkTestClient.st (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] SocketAccessor>>accept blocks image?

Steven Kelly
In reply to this post by kobetic
Re: [vwnc] SocketAccessor>>accept blocks image?
Philippe,
 
I'd suggest you upgrade to the latest 7.6 VM, as there are a few bugs relevant to sockets corrected there. None seem immediately relevant to your case, but it'll probably make debugging easier for the Cincom guys, and also prevent you running into those problems later.
 
The 7.6VM should be available here:
but currently it's down: 502 Bad Gateway
The VM is a 'high priority upgrade' on the first page after choosing VisualWorks.
 
If the server process opens a port, I suppose in these days of port scanners we have to accept the chance that somebody will access it, although that's presumably not the case here.
 
Steve


From: [hidden email] on behalf of Philippe Demaecker
Sent: Thu 11/12/2009 18:07
To: [hidden email]
Cc: [hidden email]
Subject: Re: [vwnc] SocketAccessor>>accept blocks image?

Hello Martin,

Thanks for replying.
1. The listener is running at prio 83, lowering this value does not seem to change anything.

2. It's running VW 7.4.1 on Windows, I will ask for more detailed information about the CPU and Windows version.

3. Blocking image = all VW windows are grey and unresponsive (you can try for yourself using the scenario from my original mail).

You CAN still ctrl-y though, ending up in

[1]     OsNeedRetryError(GenericException)>>findHandlerContextFrom:markDebug:
[2]     OsNeedRetryError(GenericException)>>propagatePrivateFrom:
[3]     OsNeedRetryError(GenericException)>>propagateFrom:
[4]     OsNeedRetryError(GenericException)>>propagate
[5]     OsNeedRetryError(GenericException)>>raiseRequest
[6]     HandleRegistry>>evaluateWithFullProtection:
[7]     HandleRegistry>>registerValueOf:
[8]     SocketAccessor class(OSHandle class)>>handleValue:
[9]     SocketAccessor>>accept
[10]    optimized [] in Opentalk.ConnectionListener>>listenerProcessBody

. It seem that, once primAccept has been raised, that evaluateWithFullProtection: does not seem to be able to propagate this exception further...

. Also, is there any reason a connection would be made to the server process of the proxy?

Thanks for your help!
Philippe


> 3.       Below you can find 2 stack traces created by a ctrl-y at a moment the image was blocking.
> Stack 1: it seems that SocketAccessor>>primAccept runs into an (EWouldBlock) error trying to report it, but blocking the image.

What exactly do you mean by "blocking the image" ? Socket operations shouldn't be blocking the VM, i.e. only the process performing the socket operation should be blocked, any other runnable processes should be able to run as long as they get Processor time. Is something spinning at a high priority ? The listener process normally does run at an elevated priority.


> 2.       How can I create a situation where primAccept would return a EWOULDBLOCK error?

Not sure about that. It likely depends on specifics of your platform. Can you provide more details about that ?

> 3.       Why is raising a EWOULDBLOCK in primAccept blocking the image?

As I said, socket operations don't block the whole image, just the process performing them. My guess is that the listener process ended up spinning at a high priority and consequently starving all other lower priority processes (including any UI processes). You can try setting the listenerPriority: below 50 and see if it makes any difference.

HTH,

Martin


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] SocketAccessor>>accept blocks image?

Philippe Demaecker
In reply to this post by kobetic
Hi Martin,

Here's the platform info, should you require it: the client is running on Windows XP Pro, SP2 on a Pentium 4, on VW 7.4.1.

Philippe

-----Original Message-----
From: Philippe Demaecker
Sent: donderdag 12 november 2009 17:08
To: '[hidden email]'
Cc: [hidden email]
Subject: RE: [vwnc] SocketAccessor>>accept blocks image?

Hello Martin,

Thanks for replying.
1. The listener is running at prio 83, lowering this value does not seem to change anything.

2. It's running VW 7.4.1 on Windows, I will ask for more detailed information about the CPU and Windows version.

3. Blocking image = all VW windows are grey and unresponsive (you can try for yourself using the scenario from my original mail).

You CAN still ctrl-y though, ending up in

[1] OsNeedRetryError(GenericException)>>findHandlerContextFrom:markDebug:
[2] OsNeedRetryError(GenericException)>>propagatePrivateFrom:
[3] OsNeedRetryError(GenericException)>>propagateFrom:
[4] OsNeedRetryError(GenericException)>>propagate
[5] OsNeedRetryError(GenericException)>>raiseRequest
[6] HandleRegistry>>evaluateWithFullProtection:
[7] HandleRegistry>>registerValueOf:
[8] SocketAccessor class(OSHandle class)>>handleValue:
[9] SocketAccessor>>accept
[10] optimized [] in Opentalk.ConnectionListener>>listenerProcessBody

. It seem that, once primAccept has been raised, that evaluateWithFullProtection: does not seem to be able to propagate this exception further...

. Also, is there any reason a connection would be made to the server process of the proxy?

Thanks for your help!
Philippe


> 3.       Below you can find 2 stack traces created by a ctrl-y at a moment the image was blocking.
> Stack 1: it seems that SocketAccessor>>primAccept runs into an (EWouldBlock) error trying to report it, but blocking the image.

What exactly do you mean by "blocking the image" ? Socket operations shouldn't be blocking the VM, i.e. only the process performing the socket operation should be blocked, any other runnable processes should be able to run as long as they get Processor time. Is something spinning at a high priority ? The listener process normally does run at an elevated priority.


> 2.       How can I create a situation where primAccept would return a EWOULDBLOCK error?

Not sure about that. It likely depends on specifics of your platform. Can you provide more details about that ?

> 3.       Why is raising a EWOULDBLOCK in primAccept blocking the image?

As I said, socket operations don't block the whole image, just the process performing them. My guess is that the listener process ended up spinning at a high priority and consequently starving all other lower priority processes (including any UI processes). You can try setting the listenerPriority: below 50 and see if it makes any difference.

HTH,

Martin

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] SocketAccessor>>accept blocks image?

Philippe Demaecker
In reply to this post by Steven Kelly
Re: [vwnc] SocketAccessor>>accept blocks image?

Hi Steven,

 

Thanks for your suggestion. I tried with the new VM, but this didn’t seem to do the trick.

 

I’ll try to find out which program is trying to connect to this port (and hope this is the actual problem *sigh*).

 

Philippe

 

From: Steven Kelly [mailto:[hidden email]]
Sent: donderdag 12 november 2009 19:07
To: Philippe Demaecker
Cc: [hidden email]
Subject: RE: [vwnc] SocketAccessor>>accept blocks image?

 

Philippe,

 

I'd suggest you upgrade to the latest 7.6 VM, as there are a few bugs relevant to sockets corrected there. None seem immediately relevant to your case, but it'll probably make debugging easier for the Cincom guys, and also prevent you running into those problems later.

 

The 7.6VM should be available here:

but currently it's down: 502 Bad Gateway

The VM is a 'high priority upgrade' on the first page after choosing VisualWorks.

 

If the server process opens a port, I suppose in these days of port scanners we have to accept the chance that somebody will access it, although that's presumably not the case here.

 

Steve

 


From: [hidden email] on behalf of Philippe Demaecker
Sent: Thu 11/12/2009 18:07
To: [hidden email]
Cc: [hidden email]
Subject: Re: [vwnc] SocketAccessor>>accept blocks image?

Hello Martin,

Thanks for replying.
1. The listener is running at prio 83, lowering this value does not seem to change anything.

2. It's running VW 7.4.1 on Windows, I will ask for more detailed information about the CPU and Windows version.

3. Blocking image = all VW windows are grey and unresponsive (you can try for yourself using the scenario from my original mail).

You CAN still ctrl-y though, ending up in

[1]     OsNeedRetryError(GenericException)>>findHandlerContextFrom:markDebug:
[2]     OsNeedRetryError(GenericException)>>propagatePrivateFrom:
[3]     OsNeedRetryError(GenericException)>>propagateFrom:
[4]     OsNeedRetryError(GenericException)>>propagate
[5]     OsNeedRetryError(GenericException)>>raiseRequest
[6]     HandleRegistry>>evaluateWithFullProtection:
[7]     HandleRegistry>>registerValueOf:
[8]     SocketAccessor class(OSHandle class)>>handleValue:
[9]     SocketAccessor>>accept
[10]    optimized [] in Opentalk.ConnectionListener>>listenerProcessBody

. It seem that, once primAccept has been raised, that evaluateWithFullProtection: does not seem to be able to propagate this exception further...

. Also, is there any reason a connection would be made to the server process of the proxy?

Thanks for your help!
Philippe


> 3.       Below you can find 2 stack traces created by a ctrl-y at a moment the image was blocking.
> Stack 1: it seems that SocketAccessor>>primAccept runs into an (EWouldBlock) error trying to report it, but blocking the image.

What exactly do you mean by "blocking the image" ? Socket operations shouldn't be blocking the VM, i.e. only the process performing the socket operation should be blocked, any other runnable processes should be able to run as long as they get Processor time. Is something spinning at a high priority ? The listener process normally does run at an elevated priority.


> 2.       How can I create a situation where primAccept would return a EWOULDBLOCK error?

Not sure about that. It likely depends on specifics of your platform. Can you provide more details about that ?

> 3.       Why is raising a EWOULDBLOCK in primAccept blocking the image?

As I said, socket operations don't block the whole image, just the process performing them. My guess is that the listener process ended up spinning at a high priority and consequently starving all other lower priority processes (including any UI processes). You can try setting the listenerPriority: below 50 and see if it makes any difference.

HTH,

Martin


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc