[google-appengine] Re: Timeout - operation took too long
I am also. Just single put operation somtimes caused 'datastore timeout: operation took too long.' - my application id : lifography My application doesn't exceed to any quota. (1%) One of this error was occured at Nov 26,2008 AM 12:06 (PST). File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 656, in put return datastore.Put(self._entity) File /base/python_lib/versions/1/google/appengine/api/datastore.py, line 162, in Put raise _ToDatastoreError(err) File /base/python_lib/versions/1/google/appengine/api/datastore.py, line 1636, in _ToDatastoreError raise errors[err.application_error](err.error_detail) Timeout: datastore timeout: operation took too long. - On 10월11일, 오후8시19분, gg [EMAIL PROTECTED] wrote: I am also seeing a lot of time spent in WAIT? Sometimes as much as 3/4 of total CPU for any given set of calls! Has thedatastorelatency issue mentioned above been resolved? Here is an example from a profile run: ncalls tottime percall cumtime percall filename:lineno(function) 110.6490.0590.9370.085 {google3.apphosting.runtime._apphosting_runtime___python__apiproxy.Wait} On Oct 2, 2:33 pm, Sylvain [EMAIL PROTECTED] wrote: How can we help for this ? Each day, I've severalTimeout. Do you still need more info about it (date,time, app_id,...) ? Regards On 30 sep, 18:57, johnP [EMAIL PROTECTED] wrote: For a while today, I started seeing errors in custom form validation. Requesting self.instance in ModelForm form resulted in ValueErrors. Now, it seems to have recovered a bit... On Sep 30, 9:43 am, Adam Loving [EMAIL PROTECTED] wrote: I am seeing the datastoretimeouterror intermittently several times a day (application = toyvirtualgifts) on a fairly simple putoperation. Could this be caused by the rest of the request takingtoolong(like if thetimeoutfor the entire request fires during the put)? It doesn't seem like that would be the case here, but that's the only explanation I can think of. File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 618, in put returndatastore.Put(self._entity) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 162, in Put raise _ToDatastoreError(err) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 1627, in _ToDatastoreError raise errors[err.application_error](err.error_detail) Timeout Thanks, Adam On Sep 28, 3:19 am, Ronald [EMAIL PROTECTED] wrote: Hi, I don't know how much work has been done on this front, but my app is still cripple by this issue. Maybe the amount oftimeouterrors in the log has decrease a little, but so has the amount of happy users of my site =( /ronald On Sep 19, 9:45 pm, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, Our engineers are looking in to your reports. If all of the people experiencing quota issues like this could email me directly with your application id, as well as the approximate times these errors were occurring, that would be helpful! Thanks, Marzia On Fri, Sep 19, 2008 at 11:17 AM, Michael Bailey [EMAIL PROTECTED]wrote: I got the error below on a app that has almost zero traffic: see screenshot: http://imagebin.ca/img/3rlwzkBy.png Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 496, in __call__ handler.get(*groups) File /base/data/home/apps/***/1.4/search.py, line 25, in get for kw in kws: File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1257, in __iter__ return self.run() File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1589, in run query_run = self._proto_query.Run(*self._args, **self._kwds) File /base/python_lib/versions/1/google/appengine/ext/gql/ __init__.py, line 572, in Run it = bind_results.Run() File /base/python_lib/versions/1/google/appengine/ext/gql/ __init__.py, line 1211, in Run results.append(bound_query.Run()) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 860, in Run return self._Run() File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 879, in _Run apiproxy_stub_map.MakeSyncCall('datastore_v3', 'RunQuery', pb, result) File /base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py, line 46, in MakeSyncCall stub.MakeSyncCall(service, call, request, response) File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 246, in MakeSyncCall
[google-appengine] Re: Using field key_name in djangoforms
No, i mean a little bit another thing. When i open page with form and want to edit some data (it means that i create form by passing db entity instance) the input field key_name appears, but it is empty (in db it's not empty) I understand, that i can't edit this. But i want this to be not empty when i show edit form! On Tue, Nov 25, 2008 at 6:47 PM, Jesaja Everling [EMAIL PROTECTED]wrote: Hi Denis! Once you have an entity with a key_name, you cannot change the key_name. That is the reason that the form doesn't use this field when using it to change an entity. If you want to hide it from an editing-form, you can either do so in template logik by passing a variable like change=True, or you can make another form definition that excludes the field. Do I understand you correctly that the key_name field doesn't appear when you are editing an entity? would have to create a separate form for editing On Tue, Nov 25, 2008 at 7:33 AM, Denis Moskalets [EMAIL PROTECTED] wrote: ext/db/djangoforms.py contains interesting description for some class: If you define a form field named 'key_name' it will be treated specially and will be used as the value for the key_name parameter to the Model constructor. This allows you to create instances with named keys. The 'key_name' field will be ignored when updating an instance (although it will still be shown on the form). I've tried this. It's really works, key_name field appears. key_name properly saved into DB. It's really cool! But there only little problem. The 'key_name' field will be ignored when updating an instance (__although it will still be shown on the form__). key_name field doesn't appear at form, when you trying to edit data. I've read SDK code, and really... there nothing about filling key_name by data. In SDK source code, 'key_name' appears only in save() method. Is it really undocumented feature, that doesn't completely realised, or it is bug? -- o L_/ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] New app for finding wallpaper images - feedback welcome :)
Hi all, My first post here.. I'd be grateful if you could offer any feedback you might have on my first App Engine app. I've never written Python before so it's been interesting learning it. http://localhost:8080/?size=o Thanks! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: How to open .html in .py file?
Hi, that means I can't load the static html files at the root path ? and I must create a new folder named static and put all these htm files in this folder? Actually, I don't know what's that prefix static mean ? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] error when trying to do an upload
Anyone know whats causing this error message when i try and do an upload. D:\PROFILESappcfg.py update d:\googleapps\helloworld\ ( I enter my username and password twice here ) 2008-11-26 13:49:07,232 ERROR appcfg.py:1336 An unexpected error occurred. Aborting. Traceback (most recent call last): File C:\Program Files\Google\google_appengine\appcfg.py, line 55, in module execfile(script_path, globals()) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1954, in module main(sys.argv) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1947, in main AppCfgApp(argv).Run() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1524, in Run self.action.function(self) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1736, in Update lambda path: open(os.path.join(basepath, path), rb)) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1315, in DoUpload missing_files = self.Begin() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1176, in Begin version=self.version, payload=self.config.ToYAML()) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 282, in Send self._Authenticate() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 321, in _Authenticate super(HttpRpcServer, self)._Authenticate() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 261, in _Authenticate self._GetAuthCookie(auth_token) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 203, in _GetAuthCookie response = self.opener.open(req) File D:\Python25\lib\urllib2.py, line 381, in open response = self._open(req, data) File D:\Python25\lib\urllib2.py, line 399, in _open '_open', req) File D:\Python25\lib\urllib2.py, line 360, in _call_chain result = func(*args) File D:\Python25\lib\urllib2.py, line 1107, in http_open return self.do_open(httplib.HTTPConnection, req) File D:\Python25\lib\urllib2.py, line 1082, in do_open raise URLError(err) urllib2.URLError: urlopen error (11001, 'getaddrinfo failed') --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] How to use --passin option on Windows?
Hi. I want to upload my projects without inputing password every time. On Linux I made simple script in one line: echo my_password | python appcfg.py --passin -- [EMAIL PROTECTED] update /path/to/my/project/ How can I use this method on Windows? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] encryption libraries
Greetings to everyone! Are there any libraries for symmetric encryption available at GAE? Asymmetric encryption would be cool too, but symmetric encryption is enough for me, and I really don't want to use some trivial obfuscation. I've found rijndael.py that is pure python, but it does not look like widespread and tested and I really don't want to rely upon unknown library. And PyCrypto seems to require some C code (e.g. it needs _counter.c to build PRNG and I really don't want to reimplement parts of library in the python unless it's the only way). Keyczar requires PyCrypto, etc... -- Regards, Leonid. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Using field key_name in djangoforms
You are right. I have tried, and it behaves the same way for me. You can work around this issue by passing the key_name as initial data to your form: form = TestForm(instance = entry, initial={'key_name': entry.key().name()}) It seems this is on purpose, the relevant code starts at line 803 in google.appengine.ext.db.djangoforms: if instance is None: instance = opts.model(**converted_data) self.instance = instance else: for name, value in converted_data.iteritems(): if name == 'key_name': continue setattr(instance, name, value) Maybe the field should rather be removed from the form, then. Best Regards, Jesaja Everling On Wed, Nov 26, 2008 at 10:35 AM, Denya [EMAIL PROTECTED] wrote: No, i mean a little bit another thing. When i open page with form and want to edit some data (it means that i create form by passing db entity instance) the input field key_name appears, but it is empty (in db it's not empty) I understand, that i can't edit this. But i want this to be not empty when i show edit form! On Tue, Nov 25, 2008 at 6:47 PM, Jesaja Everling [EMAIL PROTECTED] wrote: Hi Denis! Once you have an entity with a key_name, you cannot change the key_name. That is the reason that the form doesn't use this field when using it to change an entity. If you want to hide it from an editing-form, you can either do so in template logik by passing a variable like change=True, or you can make another form definition that excludes the field. Do I understand you correctly that the key_name field doesn't appear when you are editing an entity? would have to create a separate form for editing On Tue, Nov 25, 2008 at 7:33 AM, Denis Moskalets [EMAIL PROTECTED] wrote: ext/db/djangoforms.py contains interesting description for some class: If you define a form field named 'key_name' it will be treated specially and will be used as the value for the key_name parameter to the Model constructor. This allows you to create instances with named keys. The 'key_name' field will be ignored when updating an instance (although it will still be shown on the form). I've tried this. It's really works, key_name field appears. key_name properly saved into DB. It's really cool! But there only little problem. The 'key_name' field will be ignored when updating an instance (__although it will still be shown on the form__). key_name field doesn't appear at form, when you trying to edit data. I've read SDK code, and really... there nothing about filling key_name by data. In SDK source code, 'key_name' appears only in save() method. Is it really undocumented feature, that doesn't completely realised, or it is bug? -- o L_/ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat. -- o L_/ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Using field key_name in djangoforms
Thank you for idea about initial! code starting at line 803 in google.appengine.ext.db.djangoforms is from save() method. 'continue' statement there means that if you are editing data and key_name passed, form processor must not try to change key_name in db, 'cause it's impossible :) So, my question -- is it right behaviour? Or may be developers forget, that the need to fill field by real data from db?... On Wed, Nov 26, 2008 at 7:36 PM, Jesaja Everling [EMAIL PROTECTED]wrote: You are right. I have tried, and it behaves the same way for me. You can work around this issue by passing the key_name as initial data to your form: form = TestForm(instance = entry, initial={'key_name': entry.key().name()}) It seems this is on purpose, the relevant code starts at line 803 in google.appengine.ext.db.djangoforms: if instance is None: instance = opts.model(**converted_data) self.instance = instance else: for name, value in converted_data.iteritems(): if name == 'key_name': continue setattr(instance, name, value) Maybe the field should rather be removed from the form, then. Best Regards, Jesaja Everling On Wed, Nov 26, 2008 at 10:35 AM, Denya [EMAIL PROTECTED] wrote: No, i mean a little bit another thing. When i open page with form and want to edit some data (it means that i create form by passing db entity instance) the input field key_name appears, but it is empty (in db it's not empty) I understand, that i can't edit this. But i want this to be not empty when i show edit form! On Tue, Nov 25, 2008 at 6:47 PM, Jesaja Everling [EMAIL PROTECTED] wrote: Hi Denis! Once you have an entity with a key_name, you cannot change the key_name. That is the reason that the form doesn't use this field when using it to change an entity. If you want to hide it from an editing-form, you can either do so in template logik by passing a variable like change=True, or you can make another form definition that excludes the field. Do I understand you correctly that the key_name field doesn't appear when you are editing an entity? would have to create a separate form for editing On Tue, Nov 25, 2008 at 7:33 AM, Denis Moskalets [EMAIL PROTECTED] wrote: ext/db/djangoforms.py contains interesting description for some class: If you define a form field named 'key_name' it will be treated specially and will be used as the value for the key_name parameter to the Model constructor. This allows you to create instances with named keys. The 'key_name' field will be ignored when updating an instance (although it will still be shown on the form). I've tried this. It's really works, key_name field appears. key_name properly saved into DB. It's really cool! But there only little problem. The 'key_name' field will be ignored when updating an instance (__although it will still be shown on the form__). key_name field doesn't appear at form, when you trying to edit data. I've read SDK code, and really... there nothing about filling key_name by data. In SDK source code, 'key_name' appears only in save() method. Is it really undocumented feature, that doesn't completely realised, or it is bug? -- o L_/ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat. -- o L_/ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: New Article on How Index Building Works
Great article, thanks GAE team! On Nov 25, 1:30 pm, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, There have been a lot of questions on this group about index building and Ryan Barrett, the tech lead for the datastore, took some time to write an article on how index building works:http://code.google.com/appengine/articles/index_building.html The article describes what happens when you upload new index definitions for your application. It's definitely a worthwhile read if you would like more information on how indexes are built to serve queries with App Engine. -Marzia --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: How to open .html in .py file?
On Nov 26, 4:27 am, wenlong [EMAIL PROTECTED] wrote: Hi, that means I can't load the static html files at the root path ? and I must create a new folder named static and put all these htm files in this folder? Actually, I don't know what's that prefix static mean ? Static means the files are only served directly to the user's browser exactly as they were uploaded, and they're completely inaccessible to your scripts (except by using urlfetch, which would be fairly silly). If your scripts need to read a file, it's data and shouldn't be marked static. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: New app for finding wallpaper images - feedback welcome :)
It's impossible for anyone to browse your localhost url. On Wed, Nov 26, 2008 at 8:25 AM, Bonstio [EMAIL PROTECTED] wrote: Hi all, My first post here.. I'd be grateful if you could offer any feedback you might have on my first App Engine app. I've never written Python before so it's been interesting learning it. http://localhost:8080/?size=o Thanks! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Timeout - operation took too long
I seem to be getting unusual timeouts too... www.bigbikemap.com On Nov 26, 8:28 am, ksjun [EMAIL PROTECTED] wrote: I am also. Just single put operation somtimes caused 'datastore timeout: operation took too long.' - my application id : lifography My application doesn't exceed to any quota. (1%) One of this error was occured at Nov 26,2008 AM 12:06 (PST). File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 656, in put return datastore.Put(self._entity) File /base/python_lib/versions/1/google/appengine/api/datastore.py, line 162, in Put raise _ToDatastoreError(err) File /base/python_lib/versions/1/google/appengine/api/datastore.py, line 1636, in _ToDatastoreError raise errors[err.application_error](err.error_detail) Timeout: datastore timeout: operation took too long. - On 10월11일, 오후8시19분, gg [EMAIL PROTECTED] wrote: I am also seeing a lot of time spent in WAIT? Sometimes as much as 3/4 of total CPU for any given set of calls! Has thedatastorelatency issue mentioned above been resolved? Here is an example from a profile run: ncalls tottime percall cumtime percall filename:lineno(function) 110.6490.0590.9370.085 {google3.apphosting.runtime._apphosting_runtime___python__apiproxy.Wait} On Oct 2, 2:33 pm, Sylvain [EMAIL PROTECTED] wrote: How can we help for this ? Each day, I've severalTimeout. Do you still need more info about it (date,time, app_id,...) ? Regards On 30 sep, 18:57, johnP [EMAIL PROTECTED] wrote: For a while today, I started seeing errors in custom form validation. Requesting self.instance in ModelForm form resulted in ValueErrors. Now, it seems to have recovered a bit... On Sep 30, 9:43 am, Adam Loving [EMAIL PROTECTED] wrote: I am seeing the datastoretimeouterror intermittently several times a day (application = toyvirtualgifts) on a fairly simple putoperation. Could this be caused by the rest of the request takingtoolong(like if thetimeoutfor the entire request fires during the put)? It doesn't seem like that would be the case here, but that's the only explanation I can think of. File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 618, in put returndatastore.Put(self._entity) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 162, in Put raise _ToDatastoreError(err) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 1627, in _ToDatastoreError raise errors[err.application_error](err.error_detail) Timeout Thanks, Adam On Sep 28, 3:19 am, Ronald [EMAIL PROTECTED] wrote: Hi, I don't know how much work has been done on this front, but my app is still cripple by this issue. Maybe the amount oftimeouterrors in the log has decrease a little, but so has the amount of happy users of my site =( /ronald On Sep 19, 9:45 pm, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, Our engineers are looking in to your reports. If all of the people experiencing quota issues like this could email me directly with your application id, as well as the approximate times these errors were occurring, that would be helpful! Thanks, Marzia On Fri, Sep 19, 2008 at 11:17 AM, Michael Bailey [EMAIL PROTECTED]wrote: I got the error below on a app that has almost zero traffic: see screenshot: http://imagebin.ca/img/3rlwzkBy.png Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 496, in __call__ handler.get(*groups) File /base/data/home/apps/***/1.4/search.py, line 25, in get for kw in kws: File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1257, in __iter__ return self.run() File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1589, in run query_run = self._proto_query.Run(*self._args, **self._kwds) File /base/python_lib/versions/1/google/appengine/ext/gql/ __init__.py, line 572, in Run it = bind_results.Run() File /base/python_lib/versions/1/google/appengine/ext/gql/ __init__.py, line 1211, in Run results.append(bound_query.Run()) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 860, in Run return self._Run() File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 879, in _Run apiproxy_stub_map.MakeSyncCall('datastore_v3', 'RunQuery', pb, result) File /base/python_lib/versions/1/google/appengine/api/
[google-appengine] Re: Using field key_name in djangoforms
Denya wrote: Thank you for idea about initial! code starting at line 803 in google.appengine.ext.db.djangoforms is from save() method. 'continue' statement there means that if you are editing data and key_name passed, form processor must not try to change key_name in db, 'cause it's impossible :) The code on line 803 is correct, at update time within the form class the key_name must be ignored. So, my question -- is it right behaviour? Or may be developers forget, that the need to fill field by real data from db?... Before the Form object can be created to process an update, you first have to fetch an instance of the existing object from the datastore. You need the key_name at this point. If you look at the article describing how to use Django forms (http://code.google.com/appengine/articles/djangoforms.html), although it doesn't cover the key_name case specifically, the corresponding case when using an id passes the id as a hidden form parameter, the same approach could/should? be used with the key_name. Having said that, it seems like a pretty simple fix to initialise the key_name field when the instance is passed to the form object and it I agree from the conversation you've just had that it seems like the expected behaviour. I cannot recall if there was a specific reason why this wasn't done when the key_name functionality was added. Maybe it was forgotten as you suggest. In any case I've attached a patch that I believe will fix the issue, it is basically using the initial hack Jeseja identified but within the Form initialiser code. I haven't tested it thoroughly so use at your own risk. If it does turn out to fix the issue you are seeing it would be good if you could open a new issue in the tracker, then let me know the issue number and I'll see what I can do about getting this fixed in the next SDK release. Cheers Matt --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~--- --- djangoforms.py.orig 2008-11-26 18:33:03.067712000 + +++ djangoforms.py 2008-11-26 18:31:43.51135 + @@ -751,6 +751,8 @@ if opts.exclude and name in opts.exclude: continue object_data[name] = prop.get_value_for_form(instance) + if key_name in self.base_fields: +object_data[key_name] = instance.key().name() if initial is not None: object_data.update(initial) kwargs = dict(data=data, files=files, auto_id=auto_id,
[google-appengine] Transaction isolation implications for PKs
Hi, I've read the article at http://code.google.com/appengine/articles/transaction_isolation.html and I understand the two milestones concept. However, I need clarification on the following: Is the primary key considered an index? (if so, this would mean, that a get() after a put() may not always find the entity just stored) Thanks, Viktor --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: error when trying to do an upload
I got this error once when my internet connection was down. It solved after I reconnected (in Ubuntu 8.10). ~Thiago On Nov 26, 11:52 am, davva [EMAIL PROTECTED] wrote: Anyone know whats causing this error message when i try and do an upload. D:\PROFILESappcfg.py update d:\googleapps\helloworld\ ( I enter my username and password twice here ) 2008-11-26 13:49:07,232 ERROR appcfg.py:1336 An unexpected error occurred. Aborting. Traceback (most recent call last): File C:\Program Files\Google\google_appengine\appcfg.py, line 55, in module execfile(script_path, globals()) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1954, in module main(sys.argv) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1947, in main AppCfgApp(argv).Run() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1524, in Run self.action.function(self) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1736, in Update lambda path: open(os.path.join(basepath, path), rb)) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1315, in DoUpload missing_files = self.Begin() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 1176, in Begin version=self.version, payload=self.config.ToYAML()) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 282, in Send self._Authenticate() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 321, in _Authenticate super(HttpRpcServer, self)._Authenticate() File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 261, in _Authenticate self._GetAuthCookie(auth_token) File C:\Program Files\Google\google_appengine\google\appengine\tools \appcfg.py, line 203, in _GetAuthCookie response = self.opener.open(req) File D:\Python25\lib\urllib2.py, line 381, in open response = self._open(req, data) File D:\Python25\lib\urllib2.py, line 399, in _open '_open', req) File D:\Python25\lib\urllib2.py, line 360, in _call_chain result = func(*args) File D:\Python25\lib\urllib2.py, line 1107, in http_open return self.do_open(httplib.HTTPConnection, req) File D:\Python25\lib\urllib2.py, line 1082, in do_open raise URLError(err) urllib2.URLError: urlopen error (11001, 'getaddrinfo failed') --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: encryption libraries
Hi Leonid, There aren't many pure python implementations for encryption libraries, for obvious performance reasons. I know of one RSA implementation in pure python (http://stuvel.eu/rsa), though I don't know if the performance of these libraries is such that a request can be made within the App Engine request limit. If you are interested in encryption support for App Engine, you should probably star this feature request in the issue tracker: http://code.google.com/p/googleappengine/issues/detail?id=534 -Marzia On Wed, Nov 26, 2008 at 7:08 AM, Leonid Evdokimov [EMAIL PROTECTED] wrote: Greetings to everyone! Are there any libraries for symmetric encryption available at GAE? Asymmetric encryption would be cool too, but symmetric encryption is enough for me, and I really don't want to use some trivial obfuscation. I've found rijndael.py that is pure python, but it does not look like widespread and tested and I really don't want to rely upon unknown library. And PyCrypto seems to require some C code (e.g. it needs _counter.c to build PRNG and I really don't want to reimplement parts of library in the python unless it's the only way). Keyczar requires PyCrypto, etc... -- Regards, Leonid. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Update errors occur because I'm updating too much?
Hi, I was wondering if update errors are a sign that I am updating too frequently. Amir --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Surprisingly consistent timeouts on a simple query
I'm getting timeouts at the moment when fetching a single item from the datastore: Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 499, in __call__ handler.get(*groups) File /base/data/home/apps/mycycleroute/1.329543171657420466/ main.py, line 1583, in get 'greeting' : getUserGreeting(self), File /base/data/home/apps/mycycleroute/1.329543171657420466/ main.py, line 1773, in getUserGreeting userPreferencesQuery = db.GqlQuery(SELECT * FROM UserPreferences WHERE user = :1, user).fetch(1) File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1377, in fetch raw = self._get_query().Get(limit, offset) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 938, in Get return self._Run(limit, offset)._Next(limit) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 879, in _Run apiproxy_stub_map.MakeSyncCall('datastore_v3', 'RunQuery', pb, result) File /base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py, line 46, in MakeSyncCall stub.MakeSyncCall(service, call, request, response) File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 246, in MakeSyncCall rpc.CheckSuccess() File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 189, in CheckSuccess raise self.exception DeadlineExceededError: The API call datastore_v3.RunQuery() took too long to respond and was cancelled. :( This is on the front page of my site! On Nov 26, 4:27 am, Rob [EMAIL PROTECTED] wrote: Hi Marzia, Thanks again for the help. I've done some careful tracing through my code to document exactly the number of datastore requests on a typical failure. I believe they are very minimal but I'd be very interested to hear your advice. Is that the only datastore query in the request, or does the request also contain other datastore queries? To clarify, it may be timing out here as a result of the total number of results fetched in the entire request. Here is a list of the datastore gets and puts that are called, in order for a typical failed execution. There are no queries which return more than a single Entity and I tried to grab the database Entities directly by id when possible: # Grabs a single player out of the database by id self.db = datamodel.PlayerDb2.get(db.Key(id)) # Checks the state of a single room (by id) self.db = id data = self.db.state # For the current player, checks the list of drawers # to verify the player is not next to draw if self.db.wannaDrawList and len(self.db.wannaDrawList): return self.db.wannaDrawList[0] # Updates the player's last connection time and # puts it back into the database self.db.lastPing = time self.db.put() I just did a scan of my recent errors in my logs and it appears that the total execution time for all of the above commands (plus the logic surrounding it) is about 80 to 130ms. This part never seems to time out--but the problem query below seems to hang for several seconds before regularly timing out. In addition, I used to have many more database accesses in this part of the code before and those have all been removed in order to try to fix the consistent time outs for the pruneInactive function. So far I've never been able to move the timeout around or see it fail in another place. Here is the current version of the pruneInactive function where the timeout happens: -- Code Snippet -- # first, grab all the players who's ping is older than 10 seconds in our room # 8 maximum players per room query = datamodel.PlayerDb2.all() query.filter(room =, self.db.room) query.filter(lastPing , time.time() - TIMEOUT_TIME) logging.debug(Query is built\n) # Run the query for up to 5 players results = query.fetch(5) # this is the timeout line logging.debug(Query is executed (limit 5)\n) ... -- End Code Snippet -- Thanks again for your help with this confusing issue. (At least it's confusing to me!) Sincerely, Rob --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Datastore Error
Right now every put operations of my application make errors - 'Timeout: datastore timeout: operation took too long.' What's wrong on the datastore? my application id is 'lifography' --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Surprisingly consistent timeouts on a simple query
Seems to fluctuate between an 'internal error' and the deadline exceeded error. On Nov 26, 7:09 pm, Fred [EMAIL PROTECTED] wrote: I'm getting timeouts at the moment when fetching a single item from the datastore: Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 499, in __call__ handler.get(*groups) File /base/data/home/apps/mycycleroute/1.329543171657420466/ main.py, line 1583, in get 'greeting' : getUserGreeting(self), File /base/data/home/apps/mycycleroute/1.329543171657420466/ main.py, line 1773, in getUserGreeting userPreferencesQuery = db.GqlQuery(SELECT * FROM UserPreferences WHERE user = :1, user).fetch(1) File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1377, in fetch raw = self._get_query().Get(limit, offset) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 938, in Get return self._Run(limit, offset)._Next(limit) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 879, in _Run apiproxy_stub_map.MakeSyncCall('datastore_v3', 'RunQuery', pb, result) File /base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py, line 46, in MakeSyncCall stub.MakeSyncCall(service, call, request, response) File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 246, in MakeSyncCall rpc.CheckSuccess() File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 189, in CheckSuccess raise self.exception DeadlineExceededError: The API call datastore_v3.RunQuery() took too long to respond and was cancelled. :( This is on the front page of my site! On Nov 26, 4:27 am, Rob [EMAIL PROTECTED] wrote: Hi Marzia, Thanks again for the help. I've done some careful tracing through my code to document exactly the number of datastore requests on a typical failure. I believe they are very minimal but I'd be very interested to hear your advice. Is that the only datastore query in the request, or does the request also contain other datastore queries? To clarify, it may be timing out here as a result of the total number of results fetched in the entire request. Here is a list of the datastore gets and puts that are called, in order for a typical failed execution. There are no queries which return more than a single Entity and I tried to grab the database Entities directly by id when possible: # Grabs a single player out of the database by id self.db = datamodel.PlayerDb2.get(db.Key(id)) # Checks the state of a single room (by id) self.db = id data = self.db.state # For the current player, checks the list of drawers # to verify the player is not next to draw if self.db.wannaDrawList and len(self.db.wannaDrawList): return self.db.wannaDrawList[0] # Updates the player's last connection time and # puts it back into the database self.db.lastPing = time self.db.put() I just did a scan of my recent errors in my logs and it appears that the total execution time for all of the above commands (plus the logic surrounding it) is about 80 to 130ms. This part never seems to time out--but the problem query below seems to hang for several seconds before regularly timing out. In addition, I used to have many more database accesses in this part of the code before and those have all been removed in order to try to fix the consistent time outs for the pruneInactive function. So far I've never been able to move the timeout around or see it fail in another place. Here is the current version of the pruneInactive function where the timeout happens: -- Code Snippet -- # first, grab all the players who's ping is older than 10 seconds in our room # 8 maximum players per room query = datamodel.PlayerDb2.all() query.filter(room =, self.db.room) query.filter(lastPing , time.time() - TIMEOUT_TIME) logging.debug(Query is built\n) # Run the query for up to 5 players results = query.fetch(5) # this is the timeout line logging.debug(Query is executed (limit 5)\n) ... -- End Code Snippet -- Thanks again for your help with this confusing issue. (At least it's confusing to me!) Sincerely, Rob --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Surprisingly consistent timeouts on a simple query
Hi, Our engineers are currently investigating this issue. -Marzia On Wed, Nov 26, 2008 at 11:11 AM, Fred [EMAIL PROTECTED] wrote: Seems to fluctuate between an 'internal error' and the deadline exceeded error. On Nov 26, 7:09 pm, Fred [EMAIL PROTECTED] wrote: I'm getting timeouts at the moment when fetching a single item from the datastore: Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 499, in __call__ handler.get(*groups) File /base/data/home/apps/mycycleroute/1.329543171657420466/ main.py, line 1583, in get 'greeting' : getUserGreeting(self), File /base/data/home/apps/mycycleroute/1.329543171657420466/ main.py, line 1773, in getUserGreeting userPreferencesQuery = db.GqlQuery(SELECT * FROM UserPreferences WHERE user = :1, user).fetch(1) File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1377, in fetch raw = self._get_query().Get(limit, offset) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 938, in Get return self._Run(limit, offset)._Next(limit) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 879, in _Run apiproxy_stub_map.MakeSyncCall('datastore_v3', 'RunQuery', pb, result) File /base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py, line 46, in MakeSyncCall stub.MakeSyncCall(service, call, request, response) File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 246, in MakeSyncCall rpc.CheckSuccess() File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 189, in CheckSuccess raise self.exception DeadlineExceededError: The API call datastore_v3.RunQuery() took too long to respond and was cancelled. :( This is on the front page of my site! On Nov 26, 4:27 am, Rob [EMAIL PROTECTED] wrote: Hi Marzia, Thanks again for the help. I've done some careful tracing through my code to document exactly the number of datastore requests on a typical failure. I believe they are very minimal but I'd be very interested to hear your advice. Is that the only datastore query in the request, or does the request also contain other datastore queries? To clarify, it may be timing out here as a result of the total number of results fetched in the entire request. Here is a list of the datastore gets and puts that are called, in order for a typical failed execution. There are no queries which return more than a single Entity and I tried to grab the database Entities directly by id when possible: # Grabs a single player out of the database by id self.db = datamodel.PlayerDb2.get(db.Key(id)) # Checks the state of a single room (by id) self.db = id data = self.db.state # For the current player, checks the list of drawers # to verify the player is not next to draw if self.db.wannaDrawList and len(self.db.wannaDrawList): return self.db.wannaDrawList[0] # Updates the player's last connection time and # puts it back into the database self.db.lastPing = time self.db.put() I just did a scan of my recent errors in my logs and it appears that the total execution time for all of the above commands (plus the logic surrounding it) is about 80 to 130ms. This part never seems to time out--but the problem query below seems to hang for several seconds before regularly timing out. In addition, I used to have many more database accesses in this part of the code before and those have all been removed in order to try to fix the consistent time outs for the pruneInactive function. So far I've never been able to move the timeout around or see it fail in another place. Here is the current version of the pruneInactive function where the timeout happens: -- Code Snippet -- # first, grab all the players who's ping is older than 10 seconds in our room # 8 maximum players per room query = datamodel.PlayerDb2.all() query.filter(room =, self.db.room) query.filter(lastPing , time.time() - TIMEOUT_TIME) logging.debug(Query is built\n) # Run the query for up to 5 players results = query.fetch(5) # this is the timeout line logging.debug(Query is executed (limit 5)\n) ... -- End Code Snippet -- Thanks again for your help with this confusing issue. (At least it's confusing to me!) Sincerely, Rob --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send
[google-appengine] Re: Datastore Error
Hi, Our engineers are currently investigating this issue. -Marzia On Wed, Nov 26, 2008 at 11:09 AM, ksjun [EMAIL PROTECTED] wrote: Right now every put operations of my application make errors - 'Timeout: datastore timeout: operation took too long.' What's wrong on the datastore? my application id is 'lifography' --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Datastore Error
Mine too. I guess a session function is making requests spend much mcycles. Since it was'nt being used more, I removed the parts was using it and tried to update files into the server, but the following error is shown: 2008-11-26 17:10:44,317 ERROR appcfg.py:1334 An unexpected error occurred. Aborting. Error 500: --- begin server output --- Server Error (500) A server error has occurred. --- end server output --- Now I don't know what I do, because there is nothing on dashboard nor on source files I can do to change this, and my site keeps off :/ On 26 nov, 17:09, ksjun [EMAIL PROTECTED] wrote: Right now every put operations of my application make errors - 'Timeout: datastore timeout: operation took too long.' What's wrong on the datastore? my application id is 'lifography' --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Datastore Error
all is working again :) On 26 nov, 17:18, Marinho Brandão [EMAIL PROTECTED] wrote: Mine too. I guess a session function is making requests spend much mcycles. Since it was'nt being used more, I removed the parts was using it and tried to update files into the server, but the following error is shown: 2008-11-26 17:10:44,317 ERROR appcfg.py:1334 An unexpected error occurred. Aborting. Error 500: --- begin server output --- Server Error (500) A server error has occurred. --- end server output --- Now I don't know what I do, because there is nothing on dashboard nor on source files I can do to change this, and my site keeps off :/ On 26 nov, 17:09, ksjun [EMAIL PROTECTED] wrote: Right now every put operations of my application make errors - 'Timeout: datastore timeout: operation took too long.' What's wrong on the datastore? my application id is 'lifography' --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Datastore Error
Hi, This was posted on the downtime-notify group: http://groups.google.com/group/google-appengine-downtime-notify/browse_thread/thread/2fdfb64bdefed752 -Marzia On Wed, Nov 26, 2008 at 11:44 AM, Marinho Brandão [EMAIL PROTECTED] wrote: all is working again :) On 26 nov, 17:18, Marinho Brandão [EMAIL PROTECTED] wrote: Mine too. I guess a session function is making requests spend much mcycles. Since it was'nt being used more, I removed the parts was using it and tried to update files into the server, but the following error is shown: 2008-11-26 17:10:44,317 ERROR appcfg.py:1334 An unexpected error occurred. Aborting. Error 500: --- begin server output --- Server Error (500) A server error has occurred. --- end server output --- Now I don't know what I do, because there is nothing on dashboard nor on source files I can do to change this, and my site keeps off :/ On 26 nov, 17:09, ksjun [EMAIL PROTECTED] wrote: Right now every put operations of my application make errors - 'Timeout: datastore timeout: operation took too long.' What's wrong on the datastore? my application id is 'lifography' --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Timeout - operation took too long
I am as well. Single put of simple record in database with less than 100 objects total. Makes me very concerned about viability of platform. On Nov 26, 10:39 am, Fred [EMAIL PROTECTED] wrote: I seem to be getting unusual timeouts too...www.bigbikemap.com On Nov 26, 8:28 am, ksjun [EMAIL PROTECTED] wrote: I am also. Just single put operation somtimes caused 'datastore timeout: operation took too long.' - my application id : lifography My application doesn't exceed to any quota. (1%) One of this error was occured at Nov 26,2008 AM 12:06 (PST). File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 656, in put return datastore.Put(self._entity) File /base/python_lib/versions/1/google/appengine/api/datastore.py, line 162, in Put raise _ToDatastoreError(err) File /base/python_lib/versions/1/google/appengine/api/datastore.py, line 1636, in _ToDatastoreError raise errors[err.application_error](err.error_detail) Timeout: datastore timeout: operation took too long. - On 10월11일, 오후8시19분, gg [EMAIL PROTECTED] wrote: I am also seeing a lot of time spent in WAIT? Sometimes as much as 3/4 of total CPU for any given set of calls! Has thedatastorelatency issue mentioned above been resolved? Here is an example from a profile run: ncalls tottime percall cumtime percall filename:lineno(function) 110.6490.0590.9370.085 {google3.apphosting.runtime._apphosting_runtime___python__apiproxy.Wait} On Oct 2, 2:33 pm, Sylvain [EMAIL PROTECTED] wrote: How can we help for this ? Each day, I've severalTimeout. Do you still need more info about it (date,time, app_id,...) ? Regards On 30 sep, 18:57, johnP [EMAIL PROTECTED] wrote: For a while today, I started seeing errors in custom form validation. Requesting self.instance in ModelForm form resulted in ValueErrors. Now, it seems to have recovered a bit... On Sep 30, 9:43 am, Adam Loving [EMAIL PROTECTED] wrote: I am seeing the datastoretimeouterror intermittently several times a day (application = toyvirtualgifts) on a fairly simple putoperation. Could this be caused by the rest of the request takingtoolong(like if thetimeoutfor the entire request fires during the put)? It doesn't seem like that would be the case here, but that's the only explanation I can think of. File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 618, in put returndatastore.Put(self._entity) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 162, in Put raise _ToDatastoreError(err) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 1627, in _ToDatastoreError raise errors[err.application_error](err.error_detail) Timeout Thanks, Adam On Sep 28, 3:19 am, Ronald [EMAIL PROTECTED] wrote: Hi, I don't know how much work has been done on this front, but my app is still cripple by this issue. Maybe the amount oftimeouterrors in the log has decrease a little, but so has the amount of happy users of my site =( /ronald On Sep 19, 9:45 pm, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, Our engineers are looking in to your reports. If all of the people experiencing quota issues like this could email me directly with your application id, as well as the approximate times these errors were occurring, that would be helpful! Thanks, Marzia On Fri, Sep 19, 2008 at 11:17 AM, Michael Bailey [EMAIL PROTECTED]wrote: I got the error below on a app that has almost zero traffic: see screenshot: http://imagebin.ca/img/3rlwzkBy.png Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 496, in __call__ handler.get(*groups) File /base/data/home/apps/***/1.4/search.py, line 25, in get for kw in kws: File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1257, in __iter__ return self.run() File /base/python_lib/versions/1/google/appengine/ext/db/ __init__.py, line 1589, in run query_run = self._proto_query.Run(*self._args, **self._kwds) File /base/python_lib/versions/1/google/appengine/ext/gql/ __init__.py, line 572, in Run it = bind_results.Run() File /base/python_lib/versions/1/google/appengine/ext/gql/ __init__.py, line 1211, in Run results.append(bound_query.Run()) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 860, in Run
[google-appengine] Re: unicode problem with django custom tag
Relying on setdefaultencoding isn't ideal, especially if you're working with code that you plan on making reusable. The proper solution normally involves decoding your input data using the proper encoding when it's retrieved (e.g. some.data.decode ('utf-8')). How you go about doing so depends on the design of your app. I can attempt to help troubleshoot if you're able to provide a code sample where you've run into this. Daniel On Nov 24, 6:13 pm, Amir Michail [EMAIL PROTECTED] wrote: Hi, Sometimes I get this error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 67: ordinal not in range(128) So I tried this fix mentioned inhttp://groups.google.com/group/google-appengine/browse_thread/thread/... import sys reload(sys) sys.setdefaultencoding('utf-8') This works except that it sometimes results in blank pages. Any workarounds? Amir --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Transaction isolation implications for PKs
hi viktor! that's a common misconception that people have after reading that article. queries and get()s *after* a put() are always consistent. this is why we say that the datastore is strongly consistent. within the same request, once a put() returns successfully, all subsequent get()s and queries will be fully consistent and include the entity (or entities) that were put(). to answer your question more directly, get() does not use an index. it's a direct lookup by primary key. the inconsistencies discussed in that article are limited to queries, not get()s, and can only happen when one request does a put() and another concurrent request runs a query. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Reminder: Scheduled Maintenance Tonight
Hi, Just a reminder that there will be scheduled maintenance tonight at 5:00 PM PST for approximately 30 minutes. During this time, the datastore will be read only. More details can be found on the downtime notify group: http://groups.google.com/group/google-appengine-downtime-notify/browse_thread/thread/58d51db03743a106 -Marzia --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Interesting How-to Datastore Question
Well I figured out a sort of fix (similar to urs but doesn't require pinging from external box): I basically added a list property to MainListOfArticles that contains all the user objects that commented on that specific article [I'll call it CommentsOnArticles]. So every time someone comments I add a comment to the CommentsOnArticles (once for each user!), and also update the MainListOfArticles entity. I also added an entity called lastCommentedOnDate which is updated every time a new user comments. So when a user logs in I simply use s/t like the following code (snipped out) to fetch all his articles that were commented on: q=db.Query(MainListOfArticles) q.filter('usersThatCommented =',currentUser) q.order('-lastCommentedOnDate') //ascending or descending depending on ur preference results = q.fetch(5) You will also need a special index for this query (that usually is added automatically through the SDK) The only problem is that if ___too___ (it would have to be like 1000s, I think) many different users comment on one single article you could go over the 1 MB per entity limit... On Nov 12, 7:18 pm, Alexander Kojevnikov [EMAIL PROTECTED] wrote: Great question! I have a somewhat similar model in my app (it's not articles but the query is similar), here's how I do it: I de-normalise the data specifically for this query, that is I have a kind: UserComment: user = db.UserProperty() last_commented = db.DateTimeProperty() # de-normalised data from the article model (key, title, slug, etc). When the user creates a comment, I add a UserComment if it's the first comment for the user in this article. I also add an entity to the job queue model for background processing. The background worker (triggered by pinging from an external box) updates UserComment.last_commented for all users that also commented the article. It's far from perfect, there's a (slight) delay in update, but otherwise it works. I'm very interested in how others would implement this. Alex --www.muspy.com On Nov 13, 9:50 am, MajorProgamming [EMAIL PROTECTED] wrote: I was wondering how to approach the following: Suppose I have three DB Models that look something like this: MainListOfArticles(db.Model): articleText=db.Text [...] CommentsOnArticles(db.Model): commentText=db.Text articleRef=db.ReferenceProperty(MainListOfArticles) userThatWrote=db.UserProperty [...] Users(db.Model): userObject=db.UserProperty [...] Now suppose I would like to retreive all articles that the user commented on, based on the recency of the latest comment on that article. I.e: when a user logs in he gets a decending list of all articles *that he commented on* sorted by how recently they were commented on (by others). To put it in other words: To get all articles based on the recency of their comments would be easy: simply retrieve the comments sorted by order descending. However, I would like a way to specifically retreive those that the user commented on. Another point: I want the solution to scale. Keep in mind that there could be an infinite number of articles and users. So storing them in an individual entity would not work. There is a 1MB limit per entity (that probably squashes many possible solutions). Thanks for your help, And if I didn't explain everything correctly, please ask me to clarify a point- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Interesting How-to Datastore Question
Correct Post::: Well I figured out a sort of fix (similar to urs but doesn't require pinging from external box): I basically added a list property to MainListOfArticles that contains all the user objects that commented on that specific article [I'll call it usersThatCommented]. So every time someone comments I add a comment to the CommentsOnArticles, and also update the MainListOfArticles entity where I update the usersThatCommented list (once for each user!). I also added a date property called lastCommentedOnDate which is updated every time a new user comments. So when a user logs in I simply use s/t like the following code (snipped out) to fetch all his articles that were commented on: q=db.Query(MainListOfArticles) q.filter('usersThatCommented =',currentUser) q.order('-lastCommentedOnDate') //ascending or descending depending on ur preference results = q.fetch(5) You will also need a special index for this query (that usually is added automatically through the SDK) The only problem is that if ___too___ (it would have to be like 1000s, I think) many different users comment on one single article you could go over the 1 MB per entity limit... On Nov 12, 7:18 pm, Alexander Kojevnikov [EMAIL PROTECTED] wrote: Great question! I have a somewhat similar model in my app (it's not articles but the query is similar), here's how I do it: I de-normalise the data specifically for this query, that is I have a kind: UserComment: user = db.UserProperty() last_commented = db.DateTimeProperty() # de-normalised data from the article model (key, title, slug, etc). When the user creates a comment, I add a UserComment if it's the first comment for the user in this article. I also add an entity to the job queue model for background processing. The background worker (triggered by pinging from an external box) updates UserComment.last_commented for all users that also commented the article. It's far from perfect, there's a (slight) delay in update, but otherwise it works. I'm very interested in how others would implement this. Alex --www.muspy.com On Nov 13, 9:50 am, MajorProgamming [EMAIL PROTECTED] wrote: I was wondering how to approach the following: Suppose I have three DB Models that look something like this: MainListOfArticles(db.Model): articleText=db.Text [...] CommentsOnArticles(db.Model): commentText=db.Text articleRef=db.ReferenceProperty(MainListOfArticles) userThatWrote=db.UserProperty [...] Users(db.Model): userObject=db.UserProperty [...] Now suppose I would like to retreive all articles that the user commented on, based on the recency of the latest comment on that article. I.e: when a user logs in he gets a decending list of all articles *that he commented on* sorted by how recently they were commented on (by others). To put it in other words: To get all articles based on the recency of their comments would be easy: simply retrieve the comments sorted by order descending. However, I would like a way to specifically retreive those that the user commented on. Another point: I want the solution to scale. Keep in mind that there could be an infinite number of articles and users. So storing them in an individual entity would not work. There is a 1MB limit per entity (that probably squashes many possible solutions). Thanks for your help, And if I didn't explain everything correctly, please ask me to clarify a point- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Connecting your own domain name via Google Apps
On Tue, Nov 25, 2008 at 11:57 PM, Dan Sanderson [EMAIL PROTECTED] wrote: On Tue, Nov 25, 2008 at 8:52 PM, Amir Michail [EMAIL PROTECTED] wrote: If so, should I get some traffic first before signing up? No need! Just sign up and start building. I was referring to the sign up for Google Apps, not the Google app engine. There's no approval process there? Nope. Google Apps also has a Terms of Service, but there's no approval process. http://www.google.com/apps/intl/en/terms/standard_terms.html Is there a particular aspect of your domain or application that you're concerned would not meet the Terms of Service? (Feel free to respond privately if you'd like to take this conversation off the list.) -- Dan It's not obvious from the sign up what the number of users is for. For someone not familiar with Google Apps, it might mean how much traffic your site is getting or how many people have registered on your site. But after registering, it seems that this number actually indicates how many email accounts you want on Google Apps for your domain. Maybe the wording could be improved on the sign up page. Amir -- http://chatbotgame.com http://numbrosia.com http://twitter.com/amichail --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Datastore Error
These errors have continued for me since this morning. In just the last hour we've had errors on about 11% of my requests. Jesse On Nov 26, 11:57 am, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, This was posted on the downtime-notify group:http://groups.google.com/group/google-appengine-downtime-notify/brows... -Marzia On Wed, Nov 26, 2008 at 11:44 AM, Marinho Brandão [EMAIL PROTECTED] wrote: all is working again :) On 26 nov, 17:18, Marinho Brandão [EMAIL PROTECTED] wrote: Mine too. I guess a session function is making requests spend much mcycles. Since it was'nt being used more, I removed the parts was using it and tried to update files into the server, but the following error is shown: 2008-11-26 17:10:44,317 ERROR appcfg.py:1334 An unexpected error occurred. Aborting. Error 500: --- begin server output --- Server Error (500) A server error has occurred. --- end server output --- Now I don't know what I do, because there is nothing on dashboard nor on source files I can do to change this, and my site keeps off :/ On 26 nov, 17:09, ksjun [EMAIL PROTECTED] wrote: Right now every put operations of my application make errors - 'Timeout: datastore timeout: operation took too long.' What's wrong on the datastore? my application id is 'lifography' --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Appengine Admin
Hello, Today is birthday of Appengine Admin project - automatic admin interface for your Google App Engine (GAE) application. Appengine Admin is CRUD (Create, Retrieve, Update, Delete) interface for easy and convenient editing of site data. The project was made in huge inspiration from Django (http:// www.djangoproject.com) automatic admin site. Once I started using it I realized that I don't want to work without it also when working with GAE. Appengine Admin does not try to copy Django admin panel, also the visual design is different to avoid confusing the users who would expect the same functionality from Appengine Admin as from Django admin panel if the design was the same. Currently implemented set of features is held at the minimum that makes releasing the project sane. The rest of desired features will follow during next iterations. Project page: http://code.google.com/p/appengine-admin/ Best regards, Valts Mazurs --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: create an image-processing website with GAE?
hey Wooble, thanks for your comments, i will take a round to EC2, see if it will be helpful. except EC2 or GAE, do you think how this image-processing site works: http://www.photofunia.com/ thanks. On Wed, Nov 26, 2008 at 11:20 PM, Wooble [EMAIL PROTECTED] wrote: On Nov 25, 9:35 pm, James Yan [EMAIL PROTECTED] wrote: nobody have a talk about this? :-) You can use any pure python modules. If someone's written a pure python image processing library, you're in luck. I haven't searched for one, but it seems unlikely one exists. otherwise, you're pretty much limited to App Engine's builtin images API (http:// code.google.com/appengine/docs/images/) which seems unlikely to meet your needs. This is almost certainly the sort of app that (if you really want to use App Engine at all) would work with an appengine front end and background processing using EC2 or something similar. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: switch users based on current google account
I noticed the same effect. App Engine let me log in with a GMail account, but kept showing me information from the previous account that I had used to log in. I wouldn't worry about this problem too much - it only happens in the development environment. On the production environment, the log-in screen shows the previous e-mail address and gives the user an option to use their current account or change to a different account. The development environment log-in screen uses a different (and much simpler) screen. If it still bothers you, try calling the logout_url first, then use an HTTP redirect to the login_url. API info here: http://code.google.com/appengine/docs/users/functions.html How to do an HTTP redirect: http://en.wikipedia.org/wiki/HTTP_redirect w. On Nov 23, 1:18 pm, apalankat [EMAIL PROTECTED] wrote: Hi, I'm trying to develop a gmail gadget using app engine, and I'd like the gadget to get always the current gmail user. The problem is, once a user logs into the gadget using the google account, then the session keeps open, and if I log into gmail using another account the gadget keeps showing the previous user. I'd like the gadget to switch the user correctly between various accounts, just like the Docs or Calendar gadgets. Is it possible? Thanks! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] domain name problem
Hi, I'm trying to set things up so that both b4utweet.com and www.b4utweet.com are connected with b4utweet.appspot.com. After telling Google Apps to use www, I set www's CNAME to ghs.google.com in GoDaddy and also set 301 forwarding to www.b4utweet.com. But now I get this error whenever b4utweet.com or www.b4utweet.com is used: This website is temporarily unavailable, please try again later. b4utweet.appspot.com works fine. Any hints? Will this problem go away after a few hours? Amir --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Memcache errors
Anyone shed some light on memcache KeyError: '4021' --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: encryption libraries
Marzia Niccolai wrote: There aren't many pure python implementations for encryption libraries, for obvious performance reasons. I there full list of preinstalled libraries in GAE environment available somewhere? Yes, documentation refers to python 2.5 standard library, but there are lots of binary stuff in stdlib. For example, hashlib has _hashlib.so, but it's available in GAE as far as I understand. If you are interested in encryption support for App Engine, you should probably star this feature request in the issue tracker: http://code.google.com/p/googleappengine/issues/detail?id=534 Heh, I've done that before I mailed to the list. :) -- WBRBW, Leonid Evdokimov signature.asc Description: OpenPGP digital signature
[google-appengine] djangoforms - basestring cannot be instantiated
Is this a bug, or am I doing something wrong and not realizing what it is that I'm doing wrong? :) Traceback (most recent call last): File myhd/appengine/google/appengine/ext/webapp/__init__.py, line 501, in __call__ handler.post(*groups) File myhd/projects/captchr/src/admin/criteria/criteria.py, line 57, in post criterion = data.save() File myhd/appengine/google/appengine/ext/db/djangoforms.py, line 801, in save converted_data[name] = prop.make_value_from_form(value) File myhd/appengine/google/appengine/ext/db/djangoforms.py, line 207, in make_value_from_form value = self.data_type(value) TypeError: The basestring type cannot be instantiated Downloaded AppEngine 1.1.7 to see if it fixes this; doesn't seem to. Suspicious that I might be doing something wrong, although error seems to come up in Google code. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---