problem about writeInBackgroundAndNotify

View: New views
12 Messages — Rating Filter:   Alert me  

problem about writeInBackgroundAndNotify

by Guo Xu :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi everyone,
  I have downloaded the WebServer-1.2.1 example program from http://wiki.gnustep.org/index.php/WebServer. I got a problem.
When the browser client visit the server page, like http://localhost, the server didn't give any response, until timeout.

I checked the program, I found that if I change the 
"[[connection handle] writeInBackgroundAndNotify: result]" in Line 1480
to"[[connection handle] writeData: result]"
it can work.

Does anyone known why the method writeInBackgroundAndNotify cannot work in this example?

_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 21 Aug 2009, at 18:17, Guo Xu wrote:

> Hi everyone,
>   I have downloaded the WebServer-1.2.1 example program from http://wiki.gnustep.org/index.php/WebServer 
> . I got a problem.
> When the browser client visit the server page, like http://
> localhost, the server didn't give any response, until timeout.

I can't reproduce that ... when I run the testWebServer program and  
connect to it using firefox the response in instant.

> I checked the program, I found that if I change the
> "[[connection handle] writeInBackgroundAndNotify: result]" in Line  
> 1480
> to"[[connection handle] writeData: result]"
> it can work.
>
> Does anyone known why the method writeInBackgroundAndNotify cannot  
> work in this example?

I have no idea why that would make any difference (possibly it was  
just a coincidence?).

Are you using an up to date version of GNUstep?  Not that the version  
of the libraries is likely to make any difference ... this code has  
been running 24*7 in high volume applications for years without any  
trouble.



_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Guo Xu :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Richard
  Thank you very much for your answer.
  But I have tried it again at a different machine which also have Windows7 Build 7127 platform. All my computer have platform of Windows7, I don't test on any other environment. What about your environment?
  The program of GNUstep I used is downloaded from http://www.gnustep.org/experience/Windows.html, the  latest stable version.
  It can reproduce the problem with any browser ( Firefox, Chrome ).
  I think the async socket function of GNUstep maybe have some problem on Windows7.

2009/8/22 Richard Frith-Macdonald <richard@...>

On 21 Aug 2009, at 18:17, Guo Xu wrote:

Hi everyone,
 I have downloaded the WebServer-1.2.1 example program from http://wiki.gnustep.org/index.php/WebServer. I got a problem.
When the browser client visit the server page, like http://localhost, the server didn't give any response, until timeout.

I can't reproduce that ... when I run the testWebServer program and connect to it using firefox the response in instant.


I checked the program, I found that if I change the
"[[connection handle] writeInBackgroundAndNotify: result]" in Line 1480
to"[[connection handle] writeData: result]"
it can work.

Does anyone known why the method writeInBackgroundAndNotify cannot work in this example?

I have no idea why that would make any difference (possibly it was just a coincidence?).

Are you using an up to date version of GNUstep?  Not that the version of the libraries is likely to make any difference ... this code has been running 24*7 in high volume applications for years without any trouble.



_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 22 Aug 2009, at 04:35, Guo Xu wrote:

> Hi Richard
>   Thank you very much for your answer.
>   But I have tried it again at a different machine which also have  
> Windows7 Build 7127 platform. All my computer have platform of  
> Windows7, I don't test on any other environment. What about your  
> environment?

Ah,  I didn't realise you were using windows.  I guess there could  
quite easily be a problem with async sockets on windows.  I haven't  
noticed it in other programs, but I don't use windows much, in fact I  
don't have a windows development environment at the moment.  I'll try  
to find time to get a windows system set up, but in the meantime  
perhaps someone else who uses windows might be able to help.





_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Riccardo Mottola-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Richard Frith-Macdonald wrote:

>
> On 22 Aug 2009, at 04:35, Guo Xu wrote:
>
>> Hi Richard
>>   Thank you very much for your answer.
>>   But I have tried it again at a different machine which also have
>> Windows7 Build 7127 platform. All my computer have platform of
>> Windows7, I don't test on any other environment. What about your
>> environment?
>
> Ah,  I didn't realise you were using windows.  I guess there could
> quite easily be a problem with async sockets on windows.  I haven't
> noticed it in other programs, but I don't use windows much, in fact I
> don't have a windows development environment at the moment.  I'll try
> to find time to get a windows system set up, but in the meantime
> perhaps someone else who uses windows might be able to help.
>
First I tested on linux and it works.

Then I did a test on Windowx XP and I get the following behaviour:

1. I start the webserver (I  am admin, on linux you need to be root,
since it opens port 80)
2. I retrieve a page from it
3. windows firewall notices the port access, I unlock it
4. on the standard output of the gnustep console, I see the response,
but the connecting client doesn't get any data back until it timeouts.
5. the only error I see comes form an NSLog and says "Unable to set
blocking mode - Invalid argument" [*]



Riccardo


[*] I find it interestng that it goes onto the stdout. Usually error
messages are routed to the windows event console




_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Guo Xu :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The behavior you described is exactly the same as me.
I also tested it on Windows server2003, It seems all of the Windows platform have the same problem.

2009/8/23 Riccardo Mottola <multix@...>
Hi,


Richard Frith-Macdonald wrote:

On 22 Aug 2009, at 04:35, Guo Xu wrote:

Hi Richard
 Thank you very much for your answer.
 But I have tried it again at a different machine which also have Windows7 Build 7127 platform. All my computer have platform of Windows7, I don't test on any other environment. What about your environment?

Ah,  I didn't realise you were using windows.  I guess there could quite easily be a problem with async sockets on windows.  I haven't noticed it in other programs, but I don't use windows much, in fact I don't have a windows development environment at the moment.  I'll try to find time to get a windows system set up, but in the meantime perhaps someone else who uses windows might be able to help.

First I tested on linux and it works.

Then I did a test on Windowx XP and I get the following behaviour:

1. I start the webserver (I  am admin, on linux you need to be root, since it opens port 80)
2. I retrieve a page from it
3. windows firewall notices the port access, I unlock it
4. on the standard output of the gnustep console, I see the response, but the connecting client doesn't get any data back until it timeouts.
5. the only error I see comes form an NSLog and says "Unable to set blocking mode - Invalid argument" [*]



Riccardo


[*] I find it interestng that it goes onto the stdout. Usually error messages are routed to the windows event console




_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 22 Aug 2009, at 23:23, Riccardo Mottola wrote:

> Hi,
>
> Richard Frith-Macdonald wrote:
>>
>> On 22 Aug 2009, at 04:35, Guo Xu wrote:
>>
>>> Hi Richard
>>>  Thank you very much for your answer.
>>>  But I have tried it again at a different machine which also have  
>>> Windows7 Build 7127 platform. All my computer have platform of  
>>> Windows7, I don't test on any other environment. What about your  
>>> environment?
>>
>> Ah,  I didn't realise you were using windows.  I guess there could  
>> quite easily be a problem with async sockets on windows.  I haven't  
>> noticed it in other programs, but I don't use windows much, in fact  
>> I don't have a windows development environment at the moment.  I'll  
>> try to find time to get a windows system set up, but in the  
>> meantime perhaps someone else who uses windows might be able to help.
>>
> First I tested on linux and it works.
>
> Then I did a test on Windowx XP and I get the following behaviour:
>
> 1. I start the webserver (I  am admin, on linux you need to be root,  
> since it opens port 80)
> 2. I retrieve a page from it
> 3. windows firewall notices the port access, I unlock it
> 4. on the standard output of the gnustep console, I see the  
> response, but the connecting client doesn't get any data back until  
> it timeouts.

Not sure what you mean by this ... do you mean that, after a timeout,  
the client receives the response?
Or, do you mean that a timeout occurs and the client gives up without  
ever receiving a response?
Either way, how long is the timeout?




_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 22 Aug 2009, at 23:23, Riccardo Mottola wrote:

> Hi,
>
> Richard Frith-Macdonald wrote:
>>
>> On 22 Aug 2009, at 04:35, Guo Xu wrote:
>>
>>> Hi Richard
>>>  Thank you very much for your answer.
>>>  But I have tried it again at a different machine which also have  
>>> Windows7 Build 7127 platform. All my computer have platform of  
>>> Windows7, I don't test on any other environment. What about your  
>>> environment?
>>
>> Ah,  I didn't realise you were using windows.  I guess there could  
>> quite easily be a problem with async sockets on windows.  I haven't  
>> noticed it in other programs, but I don't use windows much, in fact  
>> I don't have a windows development environment at the moment.  I'll  
>> try to find time to get a windows system set up, but in the  
>> meantime perhaps someone else who uses windows might be able to help.
>>
> First I tested on linux and it works.
>
> Then I did a test on Windowx XP and I get the following behaviour:
>
> 1. I start the webserver (I  am admin, on linux you need to be root,  
> since it opens port 80)
> 2. I retrieve a page from it
> 3. windows firewall notices the port access, I unlock it
> 4. on the standard output of the gnustep console, I see the  
> response, but the connecting client doesn't get any data back until  
> it timeouts.
> 5. the only error I see comes form an NSLog and says "Unable to set  
> blocking mode - Invalid argument" [*]

I think this is now fixed in svn trunk with changes to base/Source/
win32/GSFileHandle.m


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Riccardo Mottola-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Richard Frith-Macdonald wrote:

>>
>>
>> 1. I start the webserver (I  am admin, on linux you need to be root,
>> since it opens port 80)
>> 2. I retrieve a page from it
>> 3. windows firewall notices the port access, I unlock it
>> 4. on the standard output of the gnustep console, I see the response,
>> but the connecting client doesn't get any data back until it timeouts.
>
> Not sure what you mean by this ... do you mean that, after a timeout,
> the client receives the response?
> Or, do you mean that a timeout occurs and the client gives up without
> ever receiving a response?
> Either way, how long is the timeout?

No, the client never received the response, the client gave up and it
depended on the client how long it was.

I see however that you committed some changes to base and now it works
fine for me on WindowsXP.

Riccardo


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Guo Xu :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Richard

  I directly downloaded the GNUstep setup bin files from http://www.gnustep.org/experience/Windows.html page, I don't know how to apply this change to my environment. So I can't test if it is ok.
  Should I compile GNUstep environment myself?  Can you give me some references.

2009/8/23 Richard Frith-Macdonald <richard@...>

On 22 Aug 2009, at 23:23, Riccardo Mottola wrote:

Hi,

Richard Frith-Macdonald wrote:

On 22 Aug 2009, at 04:35, Guo Xu wrote:

Hi Richard
 Thank you very much for your answer.
 But I have tried it again at a different machine which also have Windows7 Build 7127 platform. All my computer have platform of Windows7, I don't test on any other environment. What about your environment?

Ah,  I didn't realise you were using windows.  I guess there could quite easily be a problem with async sockets on windows.  I haven't noticed it in other programs, but I don't use windows much, in fact I don't have a windows development environment at the moment.  I'll try to find time to get a windows system set up, but in the meantime perhaps someone else who uses windows might be able to help.

First I tested on linux and it works.

Then I did a test on Windowx XP and I get the following behaviour:

1. I start the webserver (I  am admin, on linux you need to be root, since it opens port 80)
2. I retrieve a page from it
3. windows firewall notices the port access, I unlock it
4. on the standard output of the gnustep console, I see the response, but the connecting client doesn't get any data back until it timeouts.
5. the only error I see comes form an NSLog and says "Unable to set blocking mode - Invalid argument" [*]

I think this is now fixed in svn trunk with changes to base/Source/win32/GSFileHandle.m


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Adam Fedor-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Unless there has been a binary incompatible change to the library since the last release (which there has not, as far as I know), you can just get the latest base library from SVN (see:  http://www.gnustep.org/resources/sources.html) or from the daily-snapshots and compile and install it:

A. Start the msys shell (Start -> Programs -> GNUstep - Shell)
B. Get SVN base (svn co http://://svn.gna.org/svn/gnustep/libs/base/trunk) or daily snapshot (ftp://ftp.gnustep.org/pub/daily-snapshots/core.current.tar.bz2).
   unpack the snapshot and CD to the base library if necessary.
C. Type:
configure
make install

The new base library should overwrite the one that came with the bin files.



On Aug 23, 2009, at 9:09 PM, Guo Xu wrote:

Hi Richard

  I directly downloaded the GNUstep setup bin files from http://www.gnustep.org/experience/Windows.html page, I don't know how to apply this change to my environment. So I can't test if it is ok.
  Should I compile GNUstep environment myself?  Can you give me some references.


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Re: problem about writeInBackgroundAndNotify

by Guo Xu :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks a lot
I tested the problem, it works fine for me on Windows7 now.
Thank you Richard and all.

2009/8/24 Adam Fedor <fedor@...>
Unless there has been a binary incompatible change to the library since the last release (which there has not, as far as I know), you can just get the latest base library from SVN (see:  http://www.gnustep.org/resources/sources.html) or from the daily-snapshots and compile and install it:

A. Start the msys shell (Start -> Programs -> GNUstep - Shell)
   unpack the snapshot and CD to the base library if necessary.
C. Type:
configure
make install

The new base library should overwrite the one that came with the bin files.



On Aug 23, 2009, at 9:09 PM, Guo Xu wrote:

Hi Richard

  I directly downloaded the GNUstep setup bin files from http://www.gnustep.org/experience/Windows.html page, I don't know how to apply this change to my environment. So I can't test if it is ok.
  Should I compile GNUstep environment myself?  Can you give me some references.



_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@...
http://lists.gnu.org/mailman/listinfo/gnustep-dev