Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据存储中的属性用户已损坏:_Python_Google App Engine - Fatal编程技术网

Python 数据存储中的属性用户已损坏:

Python 数据存储中的属性用户已损坏:,python,google-app-engine,Python,Google App Engine,您好,我收到一条奇怪的错误消息:属性用户在数据存储中已损坏 你能告诉我这是什么意思吗?我该怎么办?这是完整的追踪 2011-05-04 01:35:15.144 Property user is corrupt in the datastore: Traceback (most recent call last): File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", lin

您好,我收到一条奇怪的错误消息:
属性用户在数据存储中已损坏
你能告诉我这是什么意思吗?我该怎么办?这是完整的追踪

2011-05-04 01:35:15.144

Property user is corrupt in the datastore:
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 958, in _FromPb
    value = datastore_types.FromPropertyPb(prop)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 1785, in FromPropertyPb
    _strict_mode=False)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/users.py", line 115, in __init__
    assert _auth_domain
AssertionError
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 698, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/classifiedsmarket/dev.350122009565563926/i18n.py", line 266, in get
    ads = Ad.all().filter("modified >", timeline).filter("published =", True).filter("modified <=", bookmark ).order("-modified").fetch(PAGESIZE+1)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 2025, in fetch
    raw = raw_query.Get(limit, offset, config=config)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 1504, in Get
    batch = batcher.next_batch(limit)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_query.py", line 2220, in next_batch
    batch = self.__next_batch.get_result()
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 592, in get_result
    return self.__get_result_hook(self)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_query.py", line 1998, in __query_result_hook
    self.__results = self._process_results(query_result.result_list())
  File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_query.py", line 2031, in _process_results
    for result in results]
  File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 127, in pb_to_query_result
    return self.pb_to_entity(pb)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 242, in pb_to_entity
    return Entity._FromPb(pb)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 962, in _FromPb
    (prop.name(), traceback.format_exc()))
Error: Property user is corrupt in the datastore:
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 958, in _FromPb
    value = datastore_types.FromPropertyPb(prop)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 1785, in FromPropertyPb
    _strict_mode=False)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/users.py", line 115, in __init__
    assert _auth_domain
AssertionError
2011-05-0401:35:15.144
数据存储中的属性用户已损坏:
回溯(最近一次呼叫最后一次):
文件“/base/python\u runtime/python\u lib/versions/1/google/appengine/api/datastore.py”,第958行,位于
value=datastore\u types.FromPropertyPb(prop)
FromPropertyPb中的文件“/base/python\u runtime/python\u lib/versions/1/google/appengine/api/datastore\u types.py”,第1785行
_严格(模式=错误)
文件“/base/python\u runtime/python\u lib/versions/1/google/appengine/api/users.py”,第115行,在__
assert\u auth\u域
断言错误
回溯(最近一次呼叫最后一次):
文件“/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_init__.py”,第698行,在_调用中__
handler.get(*组)
get中的文件“/base/data/home/apps/classifiedsmarket/dev.350122009565563926/i18n.py”,第266行

ads=Ad.all().filter(“modified>”,timeline).filter(“published=”,True).filter(“modified从数据存储中提取实体时,复杂的属性类型(以及实体本身)表示为二进制编码的协议缓冲区。此错误意味着无法使用UserProperty协议缓冲区定义反序列化某个特定用户字段中的二进制数据。它可能没有损坏,只是填充了UserProperty以外的内容


尝试通过数据存储查看器加载有问题的实体,以查看用户字段中实际存储的内容。

这是应用程序引擎数据存储的已知问题。它与您的代码或应用程序无关


App Engine团队正在进行修复,在您等待时,此处发布了一个解决方案:

它可能已损坏-类型与数据一起存储,而不是单独存储在模型定义中,因此模型中的更改将导致不同的错误。不过,将其加载到管理控制台是一个有用的测试。谢谢!我理解我们的怀疑某个特定实体中存在损坏。当试图通过管理控制台访问它时,GQL将无法工作。我将再次尝试,看看是否可以找到损坏。我遇到了相同的问题。谷歌似乎与第三方openid提供商有一些问题。
\u auth\u domain=os.environ.get('auth\u domain'))
来自appengine sources
users.py
。使用谷歌自己的联合登录服务,一切都很好。认识Andrey很有趣。谢谢你的评论。
class Ad(GeoModel,search.SearchableModel):   
    primary_image = blobstore.BlobReferenceProperty() 
    ip=db.StringProperty(indexed=False,verbose_name="ip")
    ipcountry=db.StringProperty(indexed=False,verbose_name="origin")
    tags=db.ListProperty(db.Category)
    category=db.CategoryProperty(choices=('0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'),default='1',verbose_name="Category") #numeric for now    
    title=db.StringProperty(verbose_name="title")#required
    type=db.StringProperty(choices=('w','s','r','l','b'),default='s',verbose_name="ContentType")#sell,wanted,rent,lease,buy
    company_ad=db.BooleanProperty(default=False,verbose_name="company_ad")#false or nothing
    user=db.UserProperty(verbose_name="userid") 
    facebookID=db.IntegerProperty(verbose_name="facebook id") 
    twitterID=db.IntegerProperty(verbose_name="twitter id")
    im=db.IMProperty(verbose_name="nickname")#optional, xmpp
    place=db.StringProperty()# postaladdress should work
    url=db.StringProperty(verbose_name="url")
    link=db.LinkProperty(verbose_name="Link")#enable
    geopt=db.GeoPtProperty(verbose_name="geopt") 
    geohash=db.StringProperty(indexed=False,verbose_name="geocode")#should we use this? 
    rating=db.RatingProperty()
    text=db.TextProperty(verbose_name="text")
    currency=db.StringProperty(choices=('EUR','ARS','AUD','BRL','GBP','CAD','CZK','DKK','HKD','HUF','ILS','INR','JPY','MXN','NZD','NOK','PLN','PHP','SGD','SEK','SGD','CHF','USD', 'THB','TWB'),verbose_name = "Currency")
    price=db.StringProperty(verbose_name="price")#floatfree, digits, decimals, regexable or integer valid8able
    phonenumber=db.PhoneNumberProperty(indexed=False,verbose_name="phonenumber")#viewbit
    postaladress=db.PostalAddressProperty(indexed=False,verbose_name="postaladdress")
    phoneview=db.BooleanProperty(default=False,verbose_name="phoneview")#add2phone
    email=db.EmailProperty(indexed=False,verbose_name="Email")#optional
    name=db.StringProperty(verbose_name="Name") 
    #owner=db.UserProperty(verbose_name="Owner") 
    published=db.BooleanProperty(default=True,verbose_name="published")
    #submitted=db.BooleanProperty(default=False,verbose_name="submitted")#edit
    #montao=db.BooleanProperty(default=False,verbose_name="montao")#migr8
    #moderated=db.BooleanProperty(default=False,verbose_name= "moderated")#edit
    added=db.DateTimeProperty(verbose_name="added",auto_now_add=True)#readonly
    modified=db.DateTimeProperty(verbose_name="modified",auto_now_add=True)   
    last_modified = db.DateTimeProperty(required=True, auto_now=True)
    crypted_password=db.StringProperty()#set default true random
    salt=db.StringProperty()# merge with passwrd, set default true random or why even store? counterexample
    timestamp=db.DateTimeProperty(auto_now=True)#backupsystem
    def __unicode__(self):
        return self.title
    def to_json(self):
        data={}
        for prop in self.properties().values():
            data[prop.name] = prop.get_value_for_datastore(self)
        return simplejson(data)    
    def __encrypt(self, plaintext, salt=""):
        """returns the SHA1 hexdigest of a plaintext and salt"""
        phrase = hashlib.sha1()
        phrase.update("%s--%s" % (plaintext, salt))
        return phrase.hexdigest()
    def set_password(self, new_password):
        """sets the user's crypted_password"""
        #from datetime import datetime, timedelta  
        import datetime
        if not self.salt:
            self.salt = self.__encrypt(str(datetime.datetime.now()))
        self.crypted_password = self.__encrypt(new_password, self.salt)
    def check_password(self, plaintext):
        return self.__encrypt(plaintext, self.salt) == self.crypted_password
    def next(self):#enable
        return Ad.all().filter("published =", True).filter("modified >", self.modified).get()    
    def prev(self):#enable
        return Ad.all().filter("published =", True).filter("modified <", self.modified).get()
return levenshtein(self.text,self.prev().text)
    '''
    def uri2view(self):#enable get_serving_url
        return images.get_serving_url(str(self.matched_images.get().primary_image.key()))+'=s100'
    def kmluri2view(self):#enable get_serving_url
        return self.matched_images.get()
    def to_dict(self):
        tempdict1 = dict([(p, unicode(getattr(self, p))) for p in self.properties()])
        tempdict2 = {'key':unicode(self.key())}
        tempdict1.update(tempdict2)
        return tempdict1