kevincdurand1 / quadra

Automatically exported from code.google.com/p/quadra
0 stars 0 forks source link

try to load global highscores -> "No Quadra game server found." #114

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Start Quadra
2. Choose "Highscores" from the menu
3. Click the "Update" button in the "World highscores" section

What is the expected output? What do you see instead?
I expected to see some high scores. In fact, I see the message "No Quadra game 
server found." in the box to the left of the button.

What version of the product are you using? On what operating system?

I get this in both the released 1.2.0 binaries and current SVN trunk.
I'm on Windows XP SP3.

Please provide any additional information below.

It looks like the domain qserv.appspot.com, which wireshark tells me is what 
quadra is trying to communicate with. Capture file for one click of "Update" 
button attached.

Original issue reported on code.google.com by naesten on 10 Jun 2010 at 3:07

Attachments:

GoogleCodeExporter commented 8 years ago
Oh, btw: the way I can see that it's trying to contact qserv.appspot.com is 
that that's what the "Host" HTTP request header declares. The IP just seems to 
be for a nearby generic google frontend server... just going to that IP in a 
browser gets you to google.com.

Original comment by naesten on 10 Jun 2010 at 3:11

GoogleCodeExporter commented 8 years ago
Oh, but it turns out that listing the available Internet servers uses the same 
Host: header, but works ... so I guess it's just qserv itself failing 
intermittently or something?

Original comment by naesten on 10 Jun 2010 at 3:19

GoogleCodeExporter commented 8 years ago
I can't look at this right know, but qserv.appspot.com is indeed the right 
place, and it should indeed go to a nearby Google frontend server. Going to 
just the IP might not work (it's a virtual host, routed based on the Host 
header, as you noted), but using the URI should work. For example:

http://qserv.appspot.com/qserv/?data=gethighscores

App Engine hosting (*.appspot.com) does have some issues with timing out 
sometimes when the requests or replies are somewhat large (and the highscore 
request returns the demos for the top games, somewhat big). The protocol is a 
bit old-school, and modern multi-layered setups like App Engine's have trouble 
with it a bit.

Original comment by pphaneuf on 10 Jun 2010 at 5:48

GoogleCodeExporter commented 8 years ago
It seems to me like Quadra ought to be reporting the HTTP error code somehow. 
And like Google ought to give a slightly less opaque error than that...

Strangely, when I try the URL above in a browser, I see something much 
different from the error that Quadra recieves. Could it be that there is 
actually something wrong/misunderstood about some of the other stuff that 
Quadra includes in its POST request?

Original comment by naesten on 10 Jun 2010 at 9:34

GoogleCodeExporter commented 8 years ago

Original comment by pphaneuf on 11 Jun 2010 at 2:58

GoogleCodeExporter commented 8 years ago
Some more information from the server side, for information purpose (I'm 
looking into this):

<type 'exceptions.UnicodeDecodeError'>: 'ascii' codec can't decode byte 0xf8 in 
position 142: ordinal not in range(128)
Traceback (most recent call last):
  File "/base/data/home/apps/qserv/1.338386057745212306/main.py", line 13, in main
    run_wsgi_app(application)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/util.py", line 97, in run_wsgi_app
    run_bare_wsgi_app(add_wsgi_middleware(application))
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/util.py", line 115, in run_bare_wsgi_app
    result = application(env, _start_response)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 531, in __call__
    response.wsgi_write(start_response)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 244, in wsgi_write
    body = self.out.getvalue()
  File "/base/python_runtime/python_dist/lib/python2.5/StringIO.py", line 270, in getvalue
    self.buf += ''.join(self.buflist)

Original comment by pphaneuf on 11 Jun 2010 at 3:05

GoogleCodeExporter commented 8 years ago
I'm a bit stumped about what's going on here. It seems related to using the 
get() method on a dictionary, at line 115 of qserv.py (you can "fix" your query 
by removing the "%0Anum%205" from it). I hardcoded this value at 5, which is 
what Quadra passes in, but I'm trying to figure out where this comes from.

Original comment by pphaneuf on 11 Jun 2010 at 4:53

GoogleCodeExporter commented 8 years ago
To be clearer, it should work now. And you're right, there's many things Quadra 
could do much better, but we have many other priorities, unfortunately, this is 
a bit of an old project... :-(

Original comment by pphaneuf on 11 Jun 2010 at 4:55

GoogleCodeExporter commented 8 years ago
Ok, I think r753 should fix this, if not, feel free to re-open this issue.

Original comment by pphaneuf on 11 Jun 2010 at 5:13

GoogleCodeExporter commented 8 years ago
Yup, that fixed it. And yeah, I realize this is an old project which nobody is 
likely to get payed for working on ;-).

Original comment by naesten on 12 Jun 2010 at 12:53