This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Two requests to one file are not done in parallel
Type: Stage:
Components: Interpreter Core Versions:
process
Status: closed Resolution: works for me
Dependencies: Superseder:
Assigned To: Nosy List: georg.brandl, jafo, josiahcarlson, mmf1987
Priority: normal Keywords:

Created on 2005-06-25 19:24 by mmf1987, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
test1.py mmf1987, 2005-06-29 14:33 test1.py - the little CGI script written in Python
Messages (11)
msg25632 - (view) Author: Markus Franz (mmf1987) Date: 2005-06-25 19:24
Hi! 

I am using Python for CGI scripting. I had a little cgi 
script (see the attached file).

I saved it as test1.py - and tried to load it over HTTP. So 
everything is fine.

But now I saw a very strange behaviour: I sent two 
parallel requests to 
the script (for example by sending two requests in two 
browser windows 
almost at the same time). 

My problem: The requests to the script seem NOT to be 
done in parallel: 
The first script prints "starting..." and after a short time 
"finished". And then in the other browser window the 
second request 
shows "starting...". 

But I expected that in both browser windows "starting" 
will be shown 
almost at the same time because the two requests are 
done in parallel. 

The strange behaviour goes on: 
If copied the test1.py and saved it as test2.py. Now I 
retried my test 
and sent two requests - but to these two identical files 
(that only 
differ in their filename). The the two requests seem to be 
done in 
parallel... 

(It tried my test on Fedora and Gentoo Linux, with 
Python 2.2 and 
Python 2.4, with different webservers (Apache and 
others), and with 
several different browsers - I always was the same.) 

I think the behaviour will be the same if I use my script 
on the command line...

Best regards,
Markus Franz
msg25633 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2005-06-29 02:35
Logged In: YES 
user_id=81797

There's no uploaded file!  You have to check the
checkbox labeled "Check to Upload & Attach File"
when you upload a file.

Please try again.

(This is a SourceForge annoyance that we can do
nothing about. :-( )
msg25634 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2005-06-29 02:46
Logged In: YES 
user_id=81797

There's no uploaded file!  You have to check the
checkbox labeled "Check to Upload & Attach File"
when you upload a file.

Please try again.

(This is a SourceForge annoyance that we can do
nothing about. :-( )
msg25635 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2005-06-29 02:50
Logged In: YES 
user_id=81797

There's no uploaded file!  You have to check the
checkbox labeled "Check to Upload & Attach File"
when you upload a file.

Please try again.

(This is a SourceForge annoyance that we can do
nothing about. :-( )
msg25636 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2005-06-29 02:51
Logged In: YES 
user_id=81797

There's no uploaded file!  You have to check the
checkbox labeled "Check to Upload & Attach File"
when you upload a file.

Please try again.

(This is a SourceForge annoyance that we can do
nothing about. :-( )
msg25637 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2005-06-29 02:53
Logged In: YES 
user_id=81797

There's no uploaded file!  You have to check the
checkbox labeled "Check to Upload & Attach File"
when you upload a file.

Please try again.

(This is a SourceForge annoyance that we can do
nothing about. :-( )
msg25638 - (view) Author: Josiah Carlson (josiahcarlson) * (Python triager) Date: 2005-06-30 06:20
Logged In: YES 
user_id=341410

I doubt that this is a Python issue.  It seems more likely
that your web servers are only willing to spawn a single CGI
process at any one time.
msg25639 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2005-06-30 07:47
Logged In: YES 
user_id=81797

I would tend to agree that it's unlikely to be a Python
issue, but I'd be willing to try to reproduce it given
further information.
msg25640 - (view) Author: Josiah Carlson (josiahcarlson) * (Python triager) Date: 2005-06-30 08:09
Logged In: YES 
user_id=341410

It's not a Python issue.  I can run multiple copies of
Python in the same console.  It's the
non-forking/non-threaded web server the OP is using.

bash-2.05b$ /cygdrive/c/python24/python -c \
> "import time;time.sleep(1);import
sys;sys.stdout.write('hello\r\n');\
> sys.stdout.flush();[i for i in xrange(10000000)];\
> ss.stdout.write('goodbye\r\n');sys.stdout.flush()" &
[1] 2380
bash-2.05b$ /cygdrive/c/python24/python -c "import
time;time.sleep(1);import sy
s;sys.stdout.write('hello\r\n');\
sys.stdout.flush();[i for i in xrange(10000000)];\
sys.stdout.write('goodbye\r\n');sys.stdout.flush()" &
[2] 1468
bash-2.05b$ hello
hello
goodbye
goodbye

[1]-  Done                    /cygdrive/c/python24/python -c
"import time;time.s
leep(1);import
sys;sys.stdout.write('hello\r\n');sys.stdout.flush();[i for i in
xrange(10000000)];sys.stdout.write('goodbye\r\n');sys.stdout.flush()"
[2]+  Done                    /cygdrive/c/python24/python -c
"import time;time.s
leep(1);import
sys;sys.stdout.write('hello\r\n');sys.stdout.flush();[i for i in
xrange(10000000)];sys.stdout.write('goodbye\r\n');sys.stdout.flush()"
bash-2.05b$
msg25641 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2005-06-30 08:39
Logged In: YES 
user_id=1188172

What's the matter with the filenames, then? If the OP is
right and when the filenames differ, parallel is no problem,
is it a webserver problem too?
msg25642 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2005-06-30 08:49
Logged In: YES 
user_id=81797

This is definitely not a Python problem.  If I run your
script from two terminal windows from Python directly, they
both finish at the same time.  So, this is either something
in how your browser or proxy is sending requests (perhaps
there is some serialization going on in there), or something
with how your web server is handling the requests.  I can't
say for sure, but it's unlikely to be an issue with Python.
 I'm closing this ticket because of that.
History
Date User Action Args
2022-04-11 14:56:11adminsetgithub: 42121
2005-06-25 19:24:48mmf1987create